📂 server/
├── 📂 core/ # 핵심 비지니스 로직 디렉토리
│ ├── 📂 example/
│ │ ├── 📂 api/ # API 관련 코드
│ │ ├── 📂 application/ # 서비스 계층 로직
│ │ ├── 📂 domain/ # 비즈니스 도메인 정의
│ │ ├── 📂 infrastructure/ # 외부 시스템 연동 관련 코드
│ │ └── 📂 payload/ # 요청 및 응답 데이터 정의
│ └── 📂 support/
│ ├── 📂 entity/ # BaseEntity 정의
│ ├── 📂 exception/ # 예외 처리 코드
│ └── 📂 response/ # 공통 응답 데이터 포맷 정의
└── 📂 global/
├── 📂 config/ # 글로벌 설정 클래스
└── 🌱 ServerApplication.java # 애플리케이션 진입점
- Setter 메서드 사용을 지양하고, 생성자나 빌더 패턴을 활용합니다.
- 단, 매개변수 이름이 모호해 실수가 발생할 가능성이 있는 경우 사용합니다.
- DTO 역할을 하는 클래스에서는
record를 필수적으로 사용합니다.
- 애노테이션은 피라미드 형식으로 정리합니다.
- 글자수가 적은 애노테이션이 위에 위치하며, 아래로 갈수록 길이가 길어집니다.
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/2-frame")
- 코드 한 줄의 길이는 최대 120자를 초과하지 않습니다.
- 클래스 선언부 아래는 한 줄의 공백을 추가해 가독성을 향상합니다.
public class Two2Frame{
private final String two2Frame;
}
- GitHub 이슈를 통해 작업과 문제를 관리합니다.
- 이슈와 라벨을 사용하여 작업 유형과 상태를 구분합니다.
- 프로젝트 주요 목표를 마일스톤(milestone)으로 정의합니다.
- 해당 마일스톤과 관련된 이슈(issue)를 연결합니다.
- 작업은 이슈 번호를 기반으로 브랜치를 생성하여 진행합니다.
