본문으로 건너뛰기
JournalTORIS / FIELD NOTES

← 블로그 프로젝트 기록

LOVETRIP에서 외부 응답을 그대로 화면에 보내지 않은 이유

여행 정보의 여러 데이터 소스를 내부 장소 모델로 변환했던 경험. 수집과 서비스의 경계를 나눠 외부 변경을 다루는 방법을 돌아본다.

약 2분 읽기

#회고 #LOVETRIP #API #데이터모델링

유주환 · Founder, Full Stack Developer

토리스(Toris) · 발행

프로젝트를 돌아보는 30일 · 18/30
과거 프로젝트 경험을 날짜별로 엮은 회고입니다. 표시 날짜는 연재 기준일이며, 실제 작업일과 다를 수 있습니다.

이 글의 목차
외부 형식을 내부 모델로 바꾸기. 출처별 응답의 필드와 누락값을 변환 경계에서 판단해 내부 장소 모델로 다룬다. 수집 작업과 사용자 요청 서비스를 구분하며, 가격 정보가 없다는 상태를 무료로 바꾸지 않는다.
개념도 · 본문에서 설명한 데이터 변환 경계입니다. 실제 API 응답이나 현재 장소 정보를 재현한 화면이 아닙니다.

LOVETRIP은 흩어진 여행 정보를 한 화면의 계획 흐름으로 모으려는 제품이었다. 사용자에게는 장소와 코스로 보이지만, 내부에서는 여러 출처의 데이터를 다뤄야 했다. 같은 장소를 설명하는 필드도 출처마다 다르고 갱신 시점도 같지 않았다.

외부 형식이 내부 규칙이 되는 순간

외부 API 응답을 그대로 컴포넌트에 전달하면 처음에는 빠르다. 하지만 화면마다 누락값과 다른 필드 이름을 처리하기 시작하면 외부 형식이 코드 곳곳에 퍼진다. 출처 하나가 바뀌었을 때 추천 로직과 지도, 상세 화면을 함께 수정해야 할 수 있다.

LOVETRIP에서는 외부 데이터를 변환 경계를 거쳐 내부 모델로 다루는 방향을 택했다. 수집 작업과 사용자 요청을 처리하는 서비스도 실행 단위로 구분했다. 수집 실패가 사용자 요청의 실패로 곧바로 연결되지 않도록 하려는 판단이었다.

변환은 이름 바꾸기 이상이었다

주소 문자열을 옮기는 것과 위치가 유효한지 확인하는 것은 다르다. 값이 없을 때 기본값을 넣을 것인지, 추천 후보에서 제외할 것인지도 제품의 결정이다. 지금 다시 만든다면 출처, 갱신 시각, 변환 실패 이유를 모델과 운영 기록에서 추적할 수 있게 하겠다.

특히 정보가 없다는 것과 비용이 무료라는 것은 같은 값으로 표현하면 안 된다. 가격을 모른다고 0을 넣으면 예산 추천이 실제보다 낙관적으로 보일 수 있다. 변환 계층이 이런 불확실성을 지워 버리면 화면은 깔끔하지만 판단은 부정확해진다.

데이터 출처를 보이게 한 이유

기존 회고에는 데이터 출처를 명시하게 된 배경도 남겼다. 여러 정보가 섞여 있을 때 사용자는 최신 정보인지 궁금해한다. 추천 결과만 보여 주기보다 원문을 확인할 수 있게 하는 것이 신뢰를 유지하는 데 필요했다. 다만 출처 링크가 있다는 사실만으로 현재 운영 시간이나 가격이 보장되는 것은 아니다.

이 경험으로 외부 데이터를 받아오는 일과 제품에서 사용할 수 있게 만드는 일을 나눠 보게 됐다. API 연결은 시작이었다. 데이터의 의미를 정하고, 모르는 부분을 모른다고 남기고, 변경을 한 경계에서 다루는 작업이 실제 유지보수의 중심이었다.

관련 기록: LOVETRIP 설계와 트레이드오프

READERS / LIVE

읽고 난 뒤의 대화

조회 —

댓글 삭제 시 필요합니다. 8–128자로 입력해 주세요.

댓글은 바로 공개됩니다. 개인정보와 공격적인 표현은 남기지 말아주세요.

    댓글 삭제

    댓글 작성 시 설정한 비밀번호를 다시 입력해 주세요. 삭제한 댓글은 복구할 수 없습니다.

    더 읽어보기

    2026년 8월 31일1/N 정산에서 나머지 1원을 누가 갖는가2026년 8월 30일추천에 먼저 필요했던 것은 모델보다 설명 가능한 규칙이었다2026년 8월 27일전자서명을 직접 만들지 않고도 어려운 일은 남았다
    TORIS

    INDEPENDENT DEVELOPER
    BASED IN KOREA

    korea@toris.krEnglish home ↗