← Back to All Projects
CASE STUDY 06/2023.10 — 2023.12
룸메이트의 일정·공동 지출·소통을 한곳에서 관리하는 React Native·NestJS 기반 공동생활 앱.

Harmony

비친족 가구에서 발생하는 일정 공유, 생활비 관리, 룸메이트 간 소통의 불편을 줄이기 위해 기획한 모바일 서비스다. 방 참여, 공유 캘린더, 공동 가계부, 채팅 등의 화면을 구성하고 Kakao OAuth 인증과 주요 백엔드 API를 개발했다. 발표 당시 프런트엔드와 백엔드의 전체 연동은 완료되지 않았다.

Period2023.10 — 2023.12
Role & Contribution팀장 · 백엔드 설계·개발·인증·API·서버 배포4명
Tech Stack
NestJSTypeScriptTypeORMKakao OAuthSwaggerDockerGitHub ActionsReact NativeReact Query
01Harmony의 공유 일정·가계부·공동생활 화면 구성
02공유 캘린더의 주간·월간 일정 화면
03공동 가계부의 지출 조회·등록 화면
04방 참여와 공동생활 공간 설정 화면
05룸메이트 대화·소통 화면
01 / Project Details

만들게 된 배경

비친족 가구의 증가와 달리 실제 동거 생활의 불편은 충분히 해소되지 않는다는 문제의식에서 출발했다. 룸메이트와 동거 중인 10~20대 대상 설문에서는 원활하지 않은 소통, 공동 물품·비용 정산, 일정 공유 등의 어려움이 제기되었다. 이를 개별 앱이 아닌 하나의 모바일 서비스에서 관리하도록 기획했다.

개발 기간

2023.10 — 2023.12

02 / Project Details

해결하려던 문제와 목표

룸메이트마다 따로 관리하던 일정, 할 일, 공동 지출과 대화 내용을 하나의 생활 공간에 묶는 것이 목표였다. 초대 링크나 방 비밀번호로 같은 공간에 참여하고, 구성원별 일정과 지출을 확인하며, 채팅으로 생활 관련 내용을 공유할 수 있도록 설계했다.

03 / Project Details

주요 기능

  1. 소셜 로그인·방 참여: Kakao 로그인과 방 비밀번호·초대 링크를 이용한 공동생활 공간 참여 흐름. 백엔드에는 OAuth 인증과 접근 제어 Guard 구성.
  2. 공유 캘린더·할 일: 날짜별 일정·할 일 등록, 담당 구성원 지정 및 주간·월간 캘린더 UI.
  3. 공동 가계부: 주간·월간 지출 조회, 소비 내역 추가 및 카테고리 분류 화면.
  4. 룸메이트 소통: 대화·사진 첨부 화면과 게시글 작성·관리용 백엔드 모듈.
  5. 공동생활 대시보드: 오늘의 일정·할 일·월간 지출을 모아 보여주는 홈 화면.

앱 UI와 백엔드를 각각 개발했으며, 발표 당시 전체 프런트엔드–백엔드 연동은 완료하지 못했다.

04 / Project Details

내가 직접 구현하거나 담당한 부분

  • 팀 리딩: 4인 팀의 팀장으로 참여하고 백엔드 개발 담당.
  • 데이터 모델링: Room, Member, Calendar, 가계부 관련 TypeORM 엔티티·스키마 설계.
  • 백엔드 API: NestJS Controller–Service 구조로 요청과 비즈니스 로직을 분리하고 게시글·가계부 등 API 구현. Swagger 문서화.
  • 인증·인가: Kakao OAuth 로그인 및 KakaoGuard 기반 접근 제어.
  • 개발·배포 환경: TDD 방식 적용, Docker 서버 환경과 GitHub Actions 테스트·빌드·배포 파이프라인 구성.

React Native 프런트엔드는 다른 팀원이 담당했다.

팀 구성과 역할

4인 팀 / 팀장, 백엔드 개발 담당 — 백엔드 기술 설계 및 구현, 인증·API·서버 배포 관련 작업. 프런트엔드 개발은 다른 팀원이 담당.

05 / Project Details

설계 구조와 기술

React Native·TypeScript 앱 → NestJS·TypeScript 서버 → TypeORM 데이터 모델로 구성했다. 컨트롤러가 요청을 받고, 서비스 계층이 비즈니스 로직을 처리하며, 엔티티로 방·구성원·일정 등 데이터를 모델링했다.

NestJS는 프런트엔드와 TypeScript를 공유해 API·엔티티 명세를 맞추기 쉽고, 데코레이터로 스키마와 컨트롤러를 구조화할 수 있어 선택했다. Kakao OAuth와 Guard로 인증·접근 제어를 구성하고, Docker·GitHub Actions로 검증·배포를 자동화하도록 설계했다.

기술 구성

  • Frontend (팀원 담당): React Native, React Query, TypeScript
  • Backend (직접 담당): NestJS, TypeScript, TypeORM, Kakao OAuth, KakaoGuard, Swagger
  • Infrastructure / 협업: Docker, GitHub Actions, Git/GitHub
  • 데이터 모델링: TypeORM 기반 엔티티·스키마 설계
06 / Project Details

주요 개발 과제

개발 과제: 정해진 일정 안에 프런트엔드와 백엔드를 모두 연결하는 것.

진행 과정: 양측의 TypeScript API·엔티티 명세를 준비하고 서버 API·Swagger 문서와 앱 화면·기본 구조를 각각 개발했다.

결과: 인증·게시글 모듈, 주요 앱 화면, 서버와 CI/CD를 구성했으나 개발 시간 부족으로 전체 기능의 종단 간 연동은 완료하지 못했다.

07 / Project Details

최종 결과 / 실제 사용 여부

React Native 핵심 UI와 NestJS 인증·게시글 등 백엔드 기능, 자체 서버와 CI/CD 자동 배포 환경을 구성했다. 발표 당시 프런트엔드–백엔드 전체 연동은 미완료였으며, API 연결과 사용자 흐름 검증이 후속 과제로 남았다.

08 / Project Details

배운 점

공동생활 문제를 설문과 인터뷰로 구체화한 뒤, 앱 화면과 서버 데이터 모델·API로 연결하는 개발 과정을 경험했다. NestJS의 엔티티·컨트롤러·서비스 분리와 Kakao OAuth/Guard 기반 인증을 구현하고, Swagger와 CI/CD를 활용한 협업·배포 과정을 다뤘다. 동시에 백엔드 기능 구현만으로는 사용 가능한 서비스가 완성되지 않으며, 프런트엔드와의 연동 및 종단 간 검증에 별도 일정이 필요하다는 점을 확인했다.

09 / Project Details

개선 방향

프런트엔드의 비동기 API 연결과 사용자 흐름 검증을 우선 보완할 수 있다. 백엔드 문서 보강, 온보딩·홈 화면 개선, 채팅 기능 확장도 개선 방향이다.