개발 흐름과 네이밍 팁
자바 프로젝트 개발에서 효율적인 개발 흐름과 일관된 네이밍 컨벤션을 적용하는 방법을 설명하는 가이드입니다.
개발흐름
개발과정
- 요구사항 분석(대략적 기능)
- 기능 목록(상세한 기능)
-
도메인 설계
- 도메인 모델 분석(간략히)
- 테이블 설계(DB) + 엔티티 설계(JPA)
-
ERDCloud
툴을 사용한 설계 => 테이블, 엔티티 설계를 여기서 한번에
-
기능 구현 -> TDD 기법 활용 권장
- 도메인 구현 -> 엔티티를 의미하며, 모든 계층에서 사용
- 레퍼지토리 구현 -> DB와 상호작용
- 서비스 구현 -> 비지니스 로직 & 트랜잭션
-
도메인 모델 패턴
: 서비스 계층은 단순히 엔티티에 필요한 요청을 위임하는 방식-
참고로 본인은
도메인 모델 패턴
방식을 주로 사용 -> JPA 와 잘 맞음
-
참고로 본인은
-
트랜잭션 스크립트 패턴
: 엔티티에는 비지니스 로직이 거의 없고 서비스 계층이 담당하는 방식- MyBatis와 잘 맞겠다고 생각
-
- 컨트롤러 구현 -> 웹 계층과 상호작용 (+API 포함)
네이밍 방식
Database
- 테이블명 형식으로
ORDER 또는 order
사용 => 대문자 or 소문자 - 컬럼명 형식으로
order_id
사용 => 스네이크 케이스- 보통 PK인 컬럼명을
테이블명_id
형태로 쓰지만, 나머지 컬럼명들은테이블명
을 안붙이는 편 (ex:member_id, name)
- 보통 PK인 컬럼명을
JPA -> ORM(객체 관계 매핑)
- 엔티티명 형식으로
OrderItem
사용 => 파스칼 케이스-
스프링 부트 JPA는 엔티티명을
OrderItem -> ORDERITEM
처럼 “대문자”로 바꿔서 매핑
-
스프링 부트 JPA는 엔티티명을
- 필드명 형식으로
orderId
사용 => 카멜 케이스-
스프링 부트 JPA는 필드명을
orderId -> order_id
로 컬럼명 찾아서 매핑
-
스프링 부트 JPA는 필드명을
- JPA는 테이블 자동 생성 시 “대문자”로 자동 변경
- 실제로 스프링 부트의 JPA로 DB(H2) 테이블 자동 생성시 “대문자” 이름 확인
댓글남기기