Harmony
비친족 가구에서 발생하는 일정 공유, 생활비 관리, 룸메이트 간 소통의 불편을 줄이기 위해 기획한 모바일 서비스다. 방 참여, 공유 캘린더, 공동 가계부, 채팅 등의 화면을 구성하고 Kakao OAuth 인증과 주요 백엔드 API를 개발했다. 발표 당시 프런트엔드와 백엔드의 전체 연동은 완료되지 않았다.
만들게 된 배경
비친족 가구의 증가와 달리 실제 동거 생활의 불편은 충분히 해소되지 않는다는 문제의식에서 출발했다. 룸메이트와 동거 중인 10~20대 대상 설문에서는 원활하지 않은 소통, 공동 물품·비용 정산, 일정 공유 등의 어려움이 제기되었다. 이를 개별 앱이 아닌 하나의 모바일 서비스에서 관리하도록 기획했다.
개발 기간
2023.10 — 2023.12
해결하려던 문제와 목표
룸메이트마다 따로 관리하던 일정, 할 일, 공동 지출과 대화 내용을 하나의 생활 공간에 묶는 것이 목표였다. 초대 링크나 방 비밀번호로 같은 공간에 참여하고, 구성원별 일정과 지출을 확인하며, 채팅으로 생활 관련 내용을 공유할 수 있도록 설계했다.
주요 기능
- 소셜 로그인·방 참여: Kakao 로그인과 방 비밀번호·초대 링크를 이용한 공동생활 공간 참여 흐름. 백엔드에는 OAuth 인증과 접근 제어 Guard 구성.
- 공유 캘린더·할 일: 날짜별 일정·할 일 등록, 담당 구성원 지정 및 주간·월간 캘린더 UI.
- 공동 가계부: 주간·월간 지출 조회, 소비 내역 추가 및 카테고리 분류 화면.
- 룸메이트 소통: 대화·사진 첨부 화면과 게시글 작성·관리용 백엔드 모듈.
- 공동생활 대시보드: 오늘의 일정·할 일·월간 지출을 모아 보여주는 홈 화면.
앱 UI와 백엔드를 각각 개발했으며, 발표 당시 전체 프런트엔드–백엔드 연동은 완료하지 못했다.
내가 직접 구현하거나 담당한 부분
- 팀 리딩: 4인 팀의 팀장으로 참여하고 백엔드 개발 담당.
- 데이터 모델링: Room, Member, Calendar, 가계부 관련 TypeORM 엔티티·스키마 설계.
- 백엔드 API: NestJS Controller–Service 구조로 요청과 비즈니스 로직을 분리하고 게시글·가계부 등 API 구현. Swagger 문서화.
- 인증·인가: Kakao OAuth 로그인 및 KakaoGuard 기반 접근 제어.
- 개발·배포 환경: TDD 방식 적용, Docker 서버 환경과 GitHub Actions 테스트·빌드·배포 파이프라인 구성.
React Native 프런트엔드는 다른 팀원이 담당했다.
팀 구성과 역할
4인 팀 / 팀장, 백엔드 개발 담당 — 백엔드 기술 설계 및 구현, 인증·API·서버 배포 관련 작업. 프런트엔드 개발은 다른 팀원이 담당.
설계 구조와 기술
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 기반 엔티티·스키마 설계
주요 개발 과제
개발 과제: 정해진 일정 안에 프런트엔드와 백엔드를 모두 연결하는 것.
진행 과정: 양측의 TypeScript API·엔티티 명세를 준비하고 서버 API·Swagger 문서와 앱 화면·기본 구조를 각각 개발했다.
결과: 인증·게시글 모듈, 주요 앱 화면, 서버와 CI/CD를 구성했으나 개발 시간 부족으로 전체 기능의 종단 간 연동은 완료하지 못했다.
최종 결과 / 실제 사용 여부
React Native 핵심 UI와 NestJS 인증·게시글 등 백엔드 기능, 자체 서버와 CI/CD 자동 배포 환경을 구성했다. 발표 당시 프런트엔드–백엔드 전체 연동은 미완료였으며, API 연결과 사용자 흐름 검증이 후속 과제로 남았다.
배운 점
공동생활 문제를 설문과 인터뷰로 구체화한 뒤, 앱 화면과 서버 데이터 모델·API로 연결하는 개발 과정을 경험했다. NestJS의 엔티티·컨트롤러·서비스 분리와 Kakao OAuth/Guard 기반 인증을 구현하고, Swagger와 CI/CD를 활용한 협업·배포 과정을 다뤘다. 동시에 백엔드 기능 구현만으로는 사용 가능한 서비스가 완성되지 않으며, 프런트엔드와의 연동 및 종단 간 검증에 별도 일정이 필요하다는 점을 확인했다.
개선 방향
프런트엔드의 비동기 API 연결과 사용자 흐름 검증을 우선 보완할 수 있다. 백엔드 문서 보강, 온보딩·홈 화면 개선, 채팅 기능 확장도 개선 방향이다.