아키텍처 결정 기록

아키텍처 결정 기록 문서

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

아키텍처 결정 기록 (ADR)


📋 개요


이 문서는 CheonYakPlanet 개발 과정에서 이루어진 주요 아키텍처 결정 사항들을 기록하여, 향후 참조를 위해 맥락, 근거 및 결과를 제공합니다.


📚 목차


  1. ADR-001: 클린 아키텍처 채택
  2. ADR-002: 데이터베이스 저장 방식의 JWT 인증
  3. ADR-003: 소프트 삭제 패턴 구현
  4. ADR-004: 한국 비즈니스 도메인 모델링
  5. ADR-005: 실시간 채팅을 위한 WebSocket
  6. ADR-006: 외부 API 통합 전략
  7. ADR-007: 데이터베이스 카탈로그 분리
  8. ADR-008: 데이터 동기화를 위한 비동기 처리
  9. ADR-010: 뉴스 콘텐츠 필터링 파이프라인



ADR-001: 클린 아키텍처 채택



배경

다수의 외부 통합 및 복잡한 비즈니스 규칙을 가진 복잡한 한국 부동산 플랫폼을 위한 확장 가능하고 유지보수 가능한 아키텍처를 구축해야 했습니다.


결정

다음과 같은 명확한 계층을 가진 클린 아키텍처(육각형 아키텍처)를 채택합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-002: 데이터베이스 저장 방식의 JWT 인증



배경

토큰을 폐지하고 사용자 세션을 추적할 수 있는 기능을 지원하며, 웹 및 모바일 클라이언트를 모두 지원하는 보안 인증 시스템이 필요했습니다.


결정

데이터베이스 저장 방식의 JWT(JSON 웹 토큰)를 구현합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-003: 소프트 삭제 패턴 구현



배경

감사 목적을 위해 이력 데이터를 유지하도록 요구합니다. 사용자 데이터 및 구독 정보는 사용자가 "삭제"하더라도 보존되어야 합니다.


결정

포괄적인 소프트 삭제 패턴을 구현합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-004: 한국 비즈니스 도메인 모델링



배경

한국 부동산 청약 시스템은 시스템에 정확하게 모델링되어야 하는 복잡한 규칙과 용어를 가지고 있습니다.


결정

도메인별 엔터티 및 값 객체를 생성합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-005: 실시간 채팅을 위한 WebSocket



배경

한국 부동산 질문에 대한 사용자에게 실시간 AI 채팅 지원이 필요했습니다. 보안을 유지하면서 낮은 지연 시간 통신을 지원해야 했습니다.


결정

WebSocket 기반 채팅 시스템을 구현합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-006: 외부 API 통합 전략



배경

청약 데이터, 뉴스, 지도, 금융 정보를 위해 여러 한국 정부 및 상업 API와 통합해야 했습니다.


결정

탄력적인 API 통합 전략을 구현합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-007: 데이터베이스 카탈로그 분리



배경

데이터베이스 객체의 명확한 구성과 다양한 한국 지역 또는 사업부를 위한 잠재적인 미래 다중 테넌시 지원이 필요했습니다.


결정

catalog = "planet"을 사용하여 MySQL 카탈로그 분리를 사용합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-008: 데이터 동기화를 위한 비동기 처리



배경

정부 API 데이터 동기화 프로세스는 대량의 데이터를 처리하며 사용자 대면 작업을 차단해서는 안 됩니다. 한국 정부 API는 가용 시간대가 제한적입니다.


결정

포괄적인 비동기 처리를 구현합니다:


근거


결과

긍정적:


부정적:


중립적:




ADR-010: 뉴스 콘텐츠 필터링 파이프라인



배경

한국 부동산 뉴스 집계는 스팸 및 홍보 자료를 피하면서 고품질의 관련 콘텐츠를 제공하기 위해 정교한 필터링이 필요합니다.


결정

다단계 콘텐츠 필터링 파이프라인을 구현합니다:


근거


결과

긍정적:


부정적:


중립적:




🔄 결정 검토 프로세스


검토 일정


평가 기준


결정 수정 프로세스

1. 문제 식별: 현재 접근 방식의 문제점 문서화

2. 대안 분석: 대안 솔루션 평가

3. 영향 평가: 변경의 결과 이해

4. 팀 합의: 관련 이해관계자의 동의 얻기

5. 구현 계획: 필요한 경우 마이그레이션 전략 생성

6. 문서 업데이트: 새로운 결정을 포함하여 ADR 수정


📚 관련 문서





아키텍처 결정 버전: 1.0

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

다음 검토: 2025-07-19