BangCheck
원룸 방문 기록, 체크리스트, 주소 검색, 지도, 도보 경로, 비교 기능을 통해 사용자가 매물을 더 꼼꼼하게 판단할 수 있도록 돕는 임대 매물 점검 웹 서비스입니다.
2026.04 - 2026.06
프로젝트 개요
BangCheck는 사용자가 원룸이나 임대 매물을 방문했을 때 확인해야 할 내용을 기록하고, 여러 매물을 지도와 체크리스트 기반으로 비교할 수 있도록 만든 풀스택 웹 애플리케이션입니다. 단순히 매물 정보를 저장하는 것을 넘어서, 방문 중 발견한 문제와 위치 정보를 함께 남길 수 있도록 설계했습니다.
사용자는 방 정보를 등록하고, 방문 체크리스트를 작성하고, 정부 제공 주소 API로 정확한 주소를 선택하고, 저장한 매물을 지도에서 확인하고, 기준 위치와의 거리 및 도보 경로까지 비교할 수 있습니다. PM, 디자이너, 프론트엔드, 백엔드가 함께 참여한 팀 프로젝트이며, 한국 사용자를 대상으로 개발되어 현재 서비스는 한국어를 지원합니다.
주요 기능
- 방 정보 관리: 사용자는 매물 정보를 생성, 조회, 수정, 삭제할 수 있고, 데이터 안정성을 위해 soft delete 흐름을 적용했습니다.
- 방문 체크리스트: 곰팡이, 누수, 냄새, 벌레, 결로 등 방문 중 확인해야 할 항목을 방별로 기록할 수 있습니다.
- 주소 검색: 사용자가 주소 키워드나 건물명을 입력하면 정부 제공 주소 API를 통해 관련 주소를 최대 10개까지 보여주고, 선택한 정확한 주소를 저장할 수 있습니다.
- 지도 기반 매물 확인: 저장된 방을 정확한 주소와 위도, 경도 기반으로 지도에 표시할 수 있습니다.
- 기준 위치: 역, 학교, 회사처럼 사용자가 중요하게 보는 위치를 저장하고, 각 매물과의 거리를 비교할 수 있습니다.
- 도보 경로: TMAP API를 사용해 지도 위에 도보 경로를 polyline으로 표시할 수 있습니다.
- 필터와 정렬: 전세, 월세, 보증금, 월세, 관리비 기준으로 매물 목록을 필터링하고 정렬할 수 있습니다.
- 인증과 배포: OAuth 로그인, JWT access/refresh token 흐름, AWS EC2 기반 배포와 GitHub CI/CD 흐름을 지원합니다.
내 역할
저는 백엔드 개발자로 참여해 Room과 Map API 영역을 주로 담당했고, 체크리스트 데이터와 방 정보가 자연스럽게 연결되도록 구현했습니다. 사용자가 방을 저장하고, 방문 내용을 기록하고, 지도에서 확인하고, 여러 매물을 비교하는 핵심 흐름의 API 기반을 만드는 데 집중했습니다.
- 방 생성, 상세 조회, 수정, 삭제, soft delete를 포함한 Room CRUD API를 구현했습니다.
- 방 생성 및 수정 과정에서 체크리스트 답변이 함께 저장되도록 하나의 트랜잭션 흐름으로 통합했습니다.
- 방 방문 체크리스트 답변 저장과 조회 기능을 구현했습니다.
- 저장된 방을 지도에 표시할 수 있도록 지도용 방 목록 조회와 geocoding 흐름을 개발했습니다.
- 정부 제공 주소 API를 연동해 사용자가 주소 키워드나 건물명으로 관련 주소를 검색하고, 정확한 주소를 선택해 방 정보에 저장할 수 있도록 했습니다.
- 사용자가 직접 저장하는 기준 위치 API를 구현했습니다. 저장, 목록 조회, 삭제 기능을 포함했습니다.
- 저장된 방과 기준 위치 사이의 거리 및 예상 도보 시간을 계산하는 기능을 추가했습니다.
- TMAP API를 연동해 지도 위에 도보 경로를 polyline으로 표시하는 기능을 구현했습니다.
- 프론트엔드 방 카드에 필요한 문제 요약 데이터를 방 목록 응답에 포함했습니다.
- 거래 유형, 보증금, 월세, 관리비 기준 필터링과 정렬 기능을 추가했습니다.
- 방, 체크리스트 결과, 지도 데이터와 관련된 Flyway 마이그레이션을 관리했습니다.
백엔드 안정성
기능 구현 외에도 프론트엔드 요구사항에 맞춰 request/response DTO를 정리하고, 입력값 검증, nullable 필드 처리, geocoding 실패 시 fallback 흐름, Room 관련 비즈니스 예외 처리를 개선했습니다. 덕분에 화면에서 필요한 데이터를 더 안정적으로 받을 수 있고, 예외 상황도 더 예측 가능하게 처리할 수 있었습니다.
백엔드 범위
API는 단순한 엔드포인트 나열이 아니라 사용자가 실제로 수행하는 흐름을 기준으로 구성했습니다. 방 등록, 체크리스트 저장, 지도 확인, 매물 비교, 개인화된 체크리스트 설정이 서로 이어지도록 백엔드 구조를 잡았습니다.
- Room APIs: 방 생성, 상세 조회, 수정, 삭제, 목록 필터링, 목록 정렬, 방과 체크리스트 통합 등록.
- Checklist APIs: 체크리스트 유형 선택, 항목 조회, 커스텀 항목, 사용자 체크리스트 설정, 방별 답변 저장.
- Map APIs: 주소 검색, 정확한 주소 선택, 지도용 방 목록, geocoded 좌표, 기준 위치 저장과 삭제, 도보 경로 polyline.
- Report APIs: 방 비교 기능과 사용자 방 요약 데이터.
- Auth APIs: OAuth 로그인, 게스트 접근, JWT refresh, 로그아웃.
개발 방식
개발 과정에서는 AI 도구를 보조적으로 활용해 컨벤션 파악, 이슈와 PR 문구 작성, 반복적인 문서 작업을 줄였습니다. 이를 통해 백엔드 기능 구현과 프론트엔드 연동에 더 많은 시간을 쓸 수 있었습니다.
기술 및 링크
Java
Spring Boot
MySQL
AWS EC2
GitHub CI/CD
React
TypeScript