<aside> 😎 백엔드의 Git, test 등 그 외의 컨벤션을 기록한 페이지입니다. (24.01.17 최신화)

</aside>

🍷 test convention (24.1.20 최신화)

구분 @DisplayName Method
성공 상품 생성 요청이 들어오면 데이터가 기본 상태로 저장된다. createProduct_Success_WithNormalState
실패 존재하지 않는 카테고리로 생성 요청을 하면 예외를 던진다. createProduct_Fail_ByNotExistCategory
Name Discription
MonkeySupport Fixture Monkey만 지원하는 Abstract Class.
sut로 Monkey에 접근한다.
WebMvcTestSupport Mock Controller 테스트를 지원하는 Abstract Class.
Context가 여러번 올라오지 않도록 Bean들을 Caching.
보안 대상인 URI는 @ApiTest를 사용해야 한다.
MockTestSupport Monkey와 Mockito를 지원하는 Abstract Class.
JpaTestSupport Jpa를 테스트를 지원하는 Abstract Class.
Monkey도 지원한다.
Name Discription
@ApiTest Security을 위한 Controller 테스트용 Annotation.
ApiTestSecurityContextFactory를 사용해서 가짜 유저를 생성한다.
@RedisBasedTest Embedded Redis가 적용된 통합 테스트.
테스트는 클래스마다 랜덤한 포트에서 동작한다.
@OpenFeignTest Feign 설정이 적용된 통합 테스트

🍷 package convention

# Layerd (Old, 240313 modified)
root
	├── global
	├── infra
	└── module
				├── plan
				├── ...
				└── user
							├── presentation
							├── application
							├── dto
							└── domain (Repository는 같이 위치한다)
# Hexagon (New)
root
	├── global
	├── infra
	└── module
				├── plan
				├── ...
				└── user
					   ├── adapter
						 │		 ├── in
						 │					├── ...
						 │		 │    └── web (package-private)
						 │		 └── out
						 │					├── ...
						 │					└── persistence (package-private)
						 ├── application
						 │	   ├── service (package-private)
						 │		 └── port
						 │					├── in  (public)
						 │					└── out (public)
						 ├── domain
						 └── mapper

🍷 git message convention

태그 명세
Add 새로운 기능 추가 (기능이 추가될 때 테스트 코드 작성 필수)
Update 구현된 기능 수정
Refactor 구현된 기능 리팩토링 (동일한 Input & Output)
Docs 애플리케이션 문서 수정
Test 추가적인 테스트 반영
Delete 클래스, 파일 삭제
Fix 버그 수정
Chore 빌드 업무 수정, 의존성 추가 & 수정, 패키지 이동, 실제 코드 변경 없음
Rename 클래스, 메서드, 변수 이름 변경