패키지 구조 - 100-hours-a-week/2-hertz-wiki GitHub Wiki

📁 전체 패키지 구조

├── global
│    ├── config                # 글로벌 설정 (OAuth2, Redis, Kafka, Caffeine, WebSocket, SSE 등)
│    ├── auth                  # 인증/인가(OAuth2, JWT, RT 관리)
│    ├── exception             # 글로벌 예외처리
│    ├── common                # 전역적으로 모든 도메인에서 공유할 공통 상수
│    ├── util                  # 공통 유틸 클래스
│    ├── sse                   # SSE 전용 처리 모듈
│    └── websocket             # WebSocket(Socket.IO) 설정
│
├── domain
│    ├── auth                  # 인가(Rt, OAuth) 도메인
│    │    ├── client
│    │    ├── controller
│    │    ├── dto
│    │    │    └── request   
│    │    │    └── response 
│    │    ├── entity
│    │    │    └── enums   
│    │    ├── exception
│    │    ├── service
│    │    └── repository
│    │
│    ├── channel               # 채널 (1:1 채팅, N:N 채팅, 추천 시스템) 도메인
│    │    ├── controller
│    │    ├── dto
│    │    │    └── request   
│    │    │    └── response   
│    │    ├── entity
│    │    │    └── enums   
│    │    ├── exception
│    │    ├── repository
│    │    ├── service 
│    │    └── websocket        # 실시간 채팅 처리용 로직(Socket.IO)
│    │
│    ├── interests             # 취향 도메인
│    │    ├── controller
│    │    ├── dto
│    │    │    └── request   
│    │    │    └── response   
│    │    ├── entity
│    │    │    └── enums   
│    │    ├── exception
│    │    ├── repository
│    │    └── service
│    │
│    ├── alarm         # 알림 도메인
│    │    ├── controller
│    │    ├── dto
│    │    │    └── request   
│    │    │    └── response   
│    │    ├── entity
│    │    │    └── enums   
│    │    ├── exception
│    │    ├── repository
│    │    ├── service 
│    │    └── sse              # SSE 알림 송신 전용 처리
│    │
│    ├── tuningreport          # 튜닝 레포트 도메인
│    │    ├── controller
│    │    ├── dto
│    │    │    └── request   
│    │    │    └── response   
│    │    ├── entity
│    │    │    └── enums   
│    │    ├── exception
│    │    ├── repository
│    │    └── service
│    │
│    ├── user                  # 사용자 도메인
│    │    ├── controller
│    │    ├── dto
│    │    │    └── request   
│    │    │    └── response   
│    │    ├── entity
│    │    │    └── enums   
│    │    ├── exception
│    │    ├── repository
│    │    └── service
│
└── HertzBeApplication.java    # 메인 실행 파일

1. global 패키지

폴더명 설명
config OAuth2 인증, Redis, Kafka, WebSocket, SSE 등 전체 글로벌 설정
auth OAuth2 소셜 로그인, Access/Refresh Token 관리
exception 전체 공통 예외(GlobalExceptionHandler 등)
util 공통 유틸리티 클래스 (ex. 토큰 생성기, 암호화 유틸 등)
sse SSE 연결 설정 및 기본 흐름 관리
websocket WebSocket(Socket.IO) 연결 설정 및 핸들러
common 전역적으로 모든 도메인에서 공유할 공통 상수, Enum, 응답 포맷 등을 관리하는 패키지

2. domain 패키지

각 도메인은 controller, service, repository, entity, dto, exception으로 일관되게 구성

도메인명 설명
auth Rt, OAuth 관리
channel 채널 생성/참여 (1:1 채팅, N:N 채팅) 및 추천 시스템
alarm 알림 관리
tuningreport 튜닝 레포트 관리
interests 사용자 취향 관리
user 사용자 회원가입, 로그인, 프로필 관리
⚠️ **GitHub.com Fallback** ⚠️