Skip to content

2주차 회고

jj1kim edited this page Jun 6, 2026 · 1 revision

2주차 회고

이번 주에 한 일

1주차에 세운 기획을 바탕으로 TravelMapper의 핵심 기능을 본격적으로 구현한 한 주였다. 사용자가 여행 일정을 만들고, 가고 싶은 곳을 모아두고, 실제 일정으로 확정해서 경로까지 확인할 수 있는 흐름을 한 사이클 완성하는 것이 목표였다. 결과적으로 9개의 feature 브랜치를 거쳐 dev로 PR을 올리는 방식으로 작업을 진행했고, 인증부터 공유 링크 생성까지 서비스로서 최소한 말이 되는 형태까지는 만들 수 있었다.

각각의 PR은 가능한 한 수직 슬라이스로 끊었다. 백엔드 API, 프론트엔드 UI, 그리고 상태 관리까지 한 PR 안에 묶어서 그 기능 하나가 끝나면 실제로 동작하는 결과물을 확인할 수 있도록 했다. 스택은 Next.js 16의 App Router 위에 React 19와 TypeScript, Tailwind CSS 4를 올리고, 데이터는 로컬에서는 SQLite로, 배포 환경에서는 Supabase로 분리해 다루는 방식을 택했다. 막판에는 Vercel과 Supabase로 배포까지 시도해 보면서 1주차에 그렸던 그림이 어느 정도 실체가 되는 모습을 확인했다.

잘된 점

가장 만족스러웠던 것은 수직 슬라이싱이라는 원칙이 실제 PR 단위에 비교적 깔끔하게 들어맞았다는 점이다. 예를 들어 캘린더에서 여행 날짜를 고르는 기능이나, 위시리스트의 카테고리를 다루는 PR, 드래그로 일정을 확정하는 PR 모두 그 PR만 머지하면 그 기능에 한해서는 사용자가 처음부터 끝까지 경험할 수 있는 상태가 됐다. 덕분에 리뷰 시점에 "이게 어디까지 동작해야 하는가"가 모호하지 않았고, 머지 후에도 회귀 테스트가 비교적 쉬웠다.

워크플로우 측면에서는 feature 브랜치 → dev PR 흐름이 혼자 작업하는 입장에서도 도움이 됐다. 브랜치를 끊는 순간 그 기능의 스코프를 강제로 한 번 더 정의하게 되고, PR을 올릴 때 자기 자신에게 한 번 더 설명하는 과정이 생기다 보니, 작업이 산만해지는 것을 막아주는 장치가 되어 주었다. 1주차에 세운 기획이 너무 추상적이지 않게 잘 잘려 있던 덕도 컸다고 본다.

어려웠던 점

쉽지 않았던 부분도 분명히 있었다. 가장 손이 많이 갔던 것은 인터랙션이 복잡하게 얽히는 컴포넌트들이었다. 타임라인에 다크모드까지 얹는 작업, 드래그로 일정을 확정하는 동작, 그리고 위시리스트에서 카테고리를 오가는 흐름 같은 것들은 상태가 여러 곳에 흩어지기 시작하면서 의도하지 않은 사이드 이펙트가 자주 발생했다. 처음에는 가볍게 보고 시작했다가 의외로 시간을 많이 쓴 PR이 한두 개가 아니었다.

Google Maps 연동도 만만치 않았다. 경로 탐색을 지도 위에 자연스럽게 얹는 부분에서 SDK의 라이프사이클과 React 19, 그리고 App Router의 클라이언트 컴포넌트 경계가 미묘하게 충돌하는 지점이 있었다. 키 관리, 로딩 타이밍, 그리고 지도 인스턴스를 어디서 들고 있을지 같은 결정들이 처음에는 명확하지 않았다. 결과물은 어찌어찌 동작하게 만들었지만, 코드 품질 측면에서는 아직 정리할 여지가 많이 남아 있다고 느낀다.

배포 단계도 예상보다 손이 갔다. 로컬의 SQLite와 배포 환경의 Supabase 사이에 스키마와 권한 모델이 정확히 같게 유지되도록 신경 써야 했고, 환경 변수 관리도 처음 해 보다 보니 시행착오가 있었다. 한 번에 깔끔하게 셋업되는 일이 거의 없다는 것을 다시 체감했다.

Agent 활용에 대한 소감

1주차에 세웠던 Agent 워크플로우는 실전에서 대체로 유효했다고 느낀다. 작업을 시작하기 전에 어떤 슬라이스를 자를지 정리하고, 그 슬라이스 단위로 Agent에게 맥락을 주고, 결과를 PR 단위로 받아서 직접 검토하는 흐름이 한 주 내내 큰 틀에서는 잘 굴러갔다. 특히 백엔드 API와 프론트엔드를 동시에 다뤄야 하는 PR에서 Agent가 양쪽을 함께 잡아 주는 것이 시간 절약에 크게 도움이 됐다.

다만 한계도 분명히 봤다. 컴포넌트가 커지거나 상태가 복잡해지는 순간, 한 번에 너무 많은 것을 맡기면 결과물의 품질이 눈에 띄게 떨어졌다. 결국 큰 작업을 다시 잘게 쪼개서 맥락을 정리해 다시 던지는 과정이 필요했고, 이 부분에서 1주차의 계획이 다소 낙관적이었다는 점도 인정하게 됐다. 다음 주에는 "어떤 단위로 끊어 줘야 Agent가 가장 잘 일하는가"에 대한 감을 더 다듬어 보고 싶다.

다음 주 계획

3주차에는 이번 주에 만든 기능들 위에 살을 붙여 서비스를 한 단계 더 발전시키는 방향을 생각하고 있다. 어떤 기능을 어떻게 더할지는 한 주의 일정과 우선순위를 다시 점검하면서 정리할 예정이지만, 큰 줄기는 지금까지 만든 흐름을 더 매끄럽게 다듬고, 그 위에 사용자가 실제로 한 번 더 쓰고 싶어질 만한 요소들을 얹어 보는 것이다. 동시에 이번 주에 미뤄 두었던 코드 정리와 테스트 측면도 함께 챙겨, 마지막 주에 결과물이 안정적으로 마무리될 수 있도록 만들고 싶다.

Clone this wiki locally