기능 명세서

기능 명세서 문서

CheonYakPlanet 백엔드 관련 문서입니다.

기능 문서

🎯 제품 개요

청약플래닛은 사용자들이 복잡한 한국 공공 주택 청약 시스템을 탐색할 수 있도록 돕는 포괄적인 한국 부동산 청약 플랫폼입니다.

🏠 핵심 기능

1. 사용자 관리 및 인증

1.1 사용자 등록 및 로그인
  • 네이티브 등록: 비밀번호 암호화를 통한 이메일 기반 계정 생성
  • 카카오 OAuth 통합: 카카오 계정을 통한 소셜 로그인
  • JWT 인증: 액세스/리프레시 토큰 쌍을 통한 무상태 인증
  • 비밀번호 복구: 인증 코드를 통한 이메일 기반 비밀번호 재설정

기술 세부 사항:

  • 액세스 토큰: 60분 수명
  • 리프레시 토큰: 24시간 수명
  • 안전한 로그아웃을 위한 블랙리스트 기능을 포함한 데이터베이스 토큰 저장
  • BCrypt 비밀번호 암호화
1.2 사용자 프로필 관리
  • 재정 프로필: 소득, 자산, 부채, 주택 소유 여부 추적
  • 인구 통계: 청약 자격 계산을 위한 결혼 여부, 자녀 수
  • 관심 지역: 맞춤형 콘텐츠를 위한 최대 5개의 한국 행정 구역
  • 계정 상태: 소프트 삭제를 지원하는 활성/철회 상태

비즈니스 규칙:

  • 재정 데이터는 청약 자격 매칭에 사용됩니다.
  • 관심 지역은 청약 기회를 필터링합니다.
  • 프로필 완성도는 추천 정확도에 영향을 미칩니다.

2. 한국 주택 청약 시스템 (청약)

2.1 청약 검색
  • 정부 데이터 통합: LH 공사 API와의 실시간 동기화
  • 포괄적인 범위: 모든 한국 공공 주택 공고
  • 지역별 구성: 시/도, 시/군/구, 읍/면/동 계층으로 구성
  • 일정 추적: 청약 기간, 당첨자 발표, 계약 날짜

데이터 출처:

  • LH 공사 (한국토지주택공사) API
  • 국토교통부 API
  • 행정 구역 코드 (시군구 코드)
2.2 청약 자격 매칭
  • 순위 시스템: 1순위/2순위 우선순위 계산
  • 지역 자격: 해당지역/기타지역 자격 요건
  • 특별 공급 유형: 다자녀 가구, 신혼부부, 생애최초, 노부모 부양, 청년, 신생아 가구

매칭 알고리즘:

  • 사용자 재정 프로필 vs. 청약 요건
  • 지역 선호도 매칭
  • 특별 공급 유형 자격
  • 우선 순위 계산
2.3 청약 세부 정보
  • 가격 정보: 공급 가격, 납부 일정, 계약금 요건
  • 공급 대상: 단위 유형, 평면도, 가구 수
  • 일정 정보: 청약 과정의 모든 중요 날짜
  • 시행사 정보: 건설 회사, 연락처

3. 위치 인텔리전스

3.1 인프라 분석
  • 교육 시설: 1km 이내 학교 (초, 중, 고등학교)
  • 교통: 지하철역, 버스 정류장, 접근성 분석
  • 공공 시설: 관공서, 병원, 공원, 문화 센터
  • 거리 계산: 지리적 거리를 위한 정밀한 하버사인 공식

데이터 출처:

  • 한국 학교 정보 데이터베이스
  • 대중교통 네트워크 데이터
  • 정부 시설 위치 데이터
  • 지오코딩을 위한 카카오맵 API
3.2 지리 서비스
  • 주소 파싱: 한국 행정 계층 파싱
  • 좌표 매핑: 모든 위치에 대한 위도/경도 변환
  • 근접 검색: 경계 상자 최적화를 통한 1km 반경 검색
  • 지역 분석: 인기 있는 위치 및 인프라 밀도

4. 금융 상품 통합

4.1 주택 대출 상품
  • 은행 통합: 주요 한국 은행 대출 상품
  • 금리 비교: 최소/최대/평균 대출 금리
  • 자격 매칭: 사용자 소득 vs. 대출 요건
  • 상품 분류: 주택 담보 대출 vs. 전세 대출

데이터 출처:

  • 금융감독원 (FSS) API
  • 주요 한국 은행 (국민은행, 신한은행 등)
  • 실시간 금리 업데이트
4.2 금융 분석
  • 감당 능력 계산기: 소득 기반 대출 가능 금액
  • 금리 동향: 과거 금리 분석
  • 추천 엔진: 사용자 프로필에 맞는 최적의 대출 상품

5. 시장 정보 및 뉴스

5.1 자동 뉴스 집계
  • 다중 소스 크롤링: 20개 이상의 부동산 키워드를 사용한 네이버 뉴스 API
  • 콘텐츠 필터링: 고급 스팸 방지 및 품질 필터링
  • 신뢰할 수 있는 소스: 30개 이상의 검증된 뉴스 도메인
  • 일일 요약: 마크다운 형식의 자동화된 일일 보고서

모니터링되는 키워드:

  • 부동산, 청약, 분양, LH, 아파트
  • 주택정책, 임대차, 재건축, 재개발
  • 국토교통부, 가계대출, 주담대
5.2 콘텐츠 분류
  • 정책 뉴스: 정부 정책 및 규제 업데이트
  • 청약/분양: 청약 및 분양 공고
  • 시장 동향: 시장 동향 및 가격 분석
  • 자동 게시: 분류된 콘텐츠를 포함한 일일 커뮤니티 게시물
5.3 품질 보증
  • 다단계 필터링: 7단계 콘텐츠 품질 파이프라인
  • 광고 감지: 강력/약한 광고 키워드 필터링
  • 관련성 점수: 부동산 관련성 vs. 광고 점수
  • 중복 제거: 제목 기반 중복 방지

6. 커뮤니티 플랫폼

6.1 토론 시스템
  • 계층적 구조: 게시물 → 댓글 → 답글 (3단계)
  • 카테고리: 후기, 청약 정보, 자유 토크, Q&A
  • 반응 시스템: 중복 방지 기능이 있는 좋아요/싫어요
  • 조회수 추적: 게시물 인기 및 참여도 지표
6.2 콘텐츠 관리
  • 리치 텍스트 지원: 마크다운 스타일 콘텐츠 서식
  • 게시물 관리: 콘텐츠 신고 및 블라인드 게시물 시스템
  • 검색: 게시물 및 댓글 전체 텍스트 검색
  • 페이지네이션: 성능 최적화된 목록 보기
6.3 사용자 참여
  • 게임화: 좋아요 수, 조회수, 인기 게시물
  • 사용자 프로필: 사용자 이름 기반 신원 시스템
  • 활동 추적: 사용자 기여 내역

7. AI 기반 채팅 도우미

7.1 실시간 상담
  • Gemini 2.0 통합: Google의 최신 대화형 AI
  • WebSocket 연결: 실시간 양방향 통신
  • 사용량 제한: 사용자당 일일 15개 메시지
  • 세션 관리: 대화 컨텍스트 및 메모리
7.2 도메인 전문성
  • 한국 부동산 지식: 청약 시스템 규칙에 대해 학습됨
  • 개인화된 조언: 사용자 재정 프로필 및 선호도 기반
  • 다국어: 한국어 및 영어 지원
  • 컨텍스트 인식: 사용자 청약 관심사와의 통합
7.3 기술 구현
  • JWT 인증: 보안 WebSocket 핸드셰이크
  • 메모리 관리: 효율적인 대화 기록 처리
  • 속도 제한: 남용 방지 메커니즘
  • 폴백 처리: API 실패에 대한 정상적인 기능 저하

8. 데이터 처리 및 자동화

8.1 예약된 데이터 업데이트
  • 일일 업데이트: 정부 청약 데이터 (한국 시간 오전 1시)
  • 좌표 동기화: 주소 지오코딩 업데이트 (한국 시간 오전 1시 15분)
  • 뉴스 처리: 일일 집계 및 요약 (한국 시간 오전 12시 30분)
  • 월간 업데이트: 부동산 거래 데이터 (마지막 날, 한국 시간 오전 2시)
8.2 외부 API 통합
  • 정부 API: 재시도 메커니즘을 통한 탄력적인 통합
  • 속도 제한: 구성 가능한 지연을 통한 API 사용 준수
  • 점진적 처리: 중복 방지 및 델타 업데이트
  • 오류 처리: 포괄적인 로깅 및 폴백 메커니즘
8.3 성능 최적화
  • 비동기 처리: CompletableFuture를 통한 비차단 I/O
  • 배치 작업: 효율성을 위한 대량 데이터베이스 작업
  • 캐싱: 자주 액세스하는 데이터에 대한 전략적 캐싱
  • 데이터베이스 최적화: 적절한 인덱싱 및 쿼리 최적화

🎮 사용자 여정

1. 신규 사용자 온보딩

1. 등록: 이메일 또는 카카오 소셜 로그인

2. 프로필 설정: 재정 정보 및 인구 통계

3. 관심 지역 선택: 최대 5개의 관심 지역 선택

4. 첫 추천: 개인화된 청약 제안

2. 일일 사용 패턴

1. 대시보드 보기: 관심 지역의 최신 청약 정보

2. 뉴스 소비: 일일 부동산 뉴스 요약

3. 커뮤니티 참여: 게시물 탐색, 질문하기

4. AI 상담: 개인화된 청약 조언 받기

3. 청약 검색

1. 목록 탐색: 지역, 날짜, 가격별 필터링

2. 상세 분석: 청약 세부 정보 및 요건 확인

3. 자격 확인: 개인 프로필과 요건 매칭

4. 인프라 검토: 인근 학교, 역, 시설 확인

5. 즐겨찾기 저장: 나중에 볼 흥미로운 청약 저장

4. 재정 계획

1. 대출 탐색: 사용 가능한 대출 상품 탐색

2. 금리 비교: 은행별 금리 비교

3. 감당 능력 분석: 소득 기반 대출 가능 금액 계산

4. 신청 안내: 은행 웹사이트로 안내 받기

🔒 보안 기능

인증 보안

  • 데이터베이스 저장 방식의 JWT: 토큰 블랙리스트를 통한 향상된 보안
  • 비밀번호 암호화: 구성 가능한 복잡성을 가진 BCrypt
  • 세션 관리: 토큰 무효화를 통한 안전한 로그아웃
  • 역할 기반 접근: 메서드 수준 보안이 적용된 사용자/관리자 역할

데이터 보호

  • 소프트 삭제 패턴: 감사 추적을 통한 데이터 보존
  • 금융 데이터 암호화: 민감한 정보의 안전한 처리
  • API 보안: 모든 엔드포인트에 대한 속도 제한 및 인증
  • CORS 구성: 유연한 교차 출처 자원 공유

WebSocket 보안

  • JWT 핸드셰이크: 보안 실시간 연결 설정
  • 사용량 제한: 채팅 기능에 대한 남용 방지 메커니즘
  • 연결 관리: 자동 정리 및 세션 관리

📱 API 디자인

RESTful 아키텍처

  • 리소스 기반 URL: 명확하고 직관적인 엔드포인트 구조
  • HTTP 메서드 사용: 적절한 GET, POST, PUT, DELETE 작업
  • 일관된 응답:표준화된 ApiResponse 래퍼
  • 오류 처리: 포괄적인 오류 코드 및 메시지

문서화

  • OpenAPI 3.0: 예제가 포함된 완전한 API 사양
  • Swagger UI: 대화형 API 문서

🚀 성능 기능

확장성

  • 비동기 처리: 외부 API 호출을 위한 비차단 I/O
  • 스레드 풀 관리: 데이터 처리를 위한 최적화된 동시성
  • 데이터베이스 최적화: 전략적 인덱싱 및 쿼리 최적화

모니터링

  • 상태 점검: 포괄적인 애플리케이션 상태 모니터링
  • 메트릭 수집: Prometheus 통합을 통한 성능 메트릭
  • 오류 추적: 상세한 로깅 및 오류 보고
  • Auditing 추적: 디버깅을 위한 완전한 활동 추적


최종 업데이트: 2025-06-26

기능 버전: 1.0

플랫폼: 웹 API + WebSocket