팀 프로젝트 · 2026.05 - 진행 중

Unplan

스마트 스케줄러 모바일 앱

React NativeExpoTypeScriptTanStack QueryZustand
기간
2026.05 - 진행 중
형태
팀 프로젝트
역할
Mobile Frontend

프로젝트 개요

Unplan은 사용자의 일정 관리와 계획 수립을 돕는 스마트 스케줄러 모바일 앱입니다. React Native와 Expo 기반으로 개발 중이며, 현재는 API 연동, 인증, 상태 관리, 프로젝트 구조를 정리하며 확장 가능한 앱 기반을 만드는 단계입니다.

문제 정의

스케줄러 앱은 단순히 일정을 입력하고 보여주는 것보다 사용자 맥락, 일정 변경, 추천 결과, 인증 상태를 함께 다뤄야 합니다. 모바일 앱에서는 화면 전환과 상태 변화가 자주 발생하기 때문에 서버 상태와 클라이언트 상태의 책임을 분리하고, API 스펙 변경에도 흔들리지 않는 구조가 필요합니다.

아직 모든 기능이 완성된 것은 아니지만, 초기 구조를 명확히 잡아두는 것이 이후 구현 품질과 협업 속도에 중요하다고 판단했습니다.

담당 역할

React Native와 Expo 기반 화면 구현, API 연동 구조, 인증 흐름, 상태 관리 기준을 정리하는 데 기여하고 있습니다.

팀 프로젝트에서는 각자의 구현 범위가 나뉘어 있기 때문에, 화면을 빠르게 만드는 것만큼 팀이 같은 기준으로 개발할 수 있는 구조와 문서를 함께 정리하는 것을 중요하게 보고 있습니다.

주요 구현

  • React Native와 Expo 기반 모바일 앱 구조 정리
  • Axios와 TanStack Query 기반 API 연동 흐름 구성
  • Orval을 활용한 OpenAPI 기반 API 클라이언트 생성 구조 적용
  • 인증 및 소셜 로그인 흐름을 확장 가능한 형태로 정리
  • Zustand를 활용해 화면 간 공유가 필요한 클라이언트 상태 분리
  • 폴더 구조, API 연동 방식, 상태 관리 책임을 문서로 정리

기술적 판단

TanStack Query는 서버 상태의 로딩, 에러, 캐싱, 재요청 흐름을 일관되게 다루기 위해 사용하고, Zustand는 화면 전환 사이에 유지해야 하는 클라이언트 상태를 가볍게 관리하기 위해 사용합니다.

API 연동은 Axios와 Orval을 함께 사용해 스펙 기반으로 타입과 요청 함수를 관리하는 방향을 선택했습니다. API 스펙이 바뀌더라도 요청 함수와 타입 정의를 일관되게 갱신할 수 있고, 직접 작성하는 API 코드의 반복을 줄일 수 있기 때문입니다.

개발 과정에서는 Codex, Claude Code, Gemini Code Assist, Cursor를 함께 사용하고 있습니다. AI 도구가 일관된 방향으로 구현할 수 있도록 먼저 구조와 기준을 문서로 정리하고, 생성된 코드가 팀의 컨벤션과 설계 의도에 맞는지 검토한 뒤 반영하는 방식을 실험하고 있습니다.

결과 및 회고

현재는 서비스 완성보다 앱 기반과 협업 기준을 만드는 단계입니다. API 연동, 인증, 상태 관리 구조를 정리하며 모바일 앱에서 확장 가능한 프론트엔드 구조를 만드는 경험을 쌓고 있습니다.

이 프로젝트를 통해 AI 도구를 잘 쓰기 위해서는 더 구체적인 문서, 더 명확한 컨벤션, 더 엄격한 검토 기준이 필요하다는 점을 배우고 있습니다. 앞으로 실제 담당 화면과 기능 구현이 확정되는 대로 결과와 트러블슈팅을 더 구체적으로 보완할 예정입니다.