동건의 컨벤션

극락코딩·2021년 10월 14일
0

Convention에 대하여

지금까지 프로젝트를 진행하면서, 나만의 컨벤션에 대해 고민해 보지 않은 것 같습니다..
그렇기 때문에 항상 구글링 또는 다른 사람들의 코드를 보며 맞춰서 작성한 것 같아요

공부를 하면 할수록, 내 주장이 들어간 코드를 작성하고 싶은 욕구가 뿜뿜했습니다!!

그래서 이번 기회에 나만의 Convention!을 정해보자! 생각했습니다!

물론, 어떤 집단에 들어간다면 팀원과 함께 정해야겠지만요~

DATABASE

  1. DATABASE의 쿼리는 전부 소문자로 작성한다!
select * from member;
  1. DATABASE의 TABLE 네이밍 전략은 단수형을 사용한다!
create table member(
)
  1. DATABASE의 컬럼 네이밍 전략은 TABLE_COLUMN을 사용한다!
create table member(
	member_id int,
    member_name varchar
)

Spring Layer

기본적인 Layer 규칙은 아래와 같다! Member를 예시로!

- config
- error
    + exception
- common
- util
- member
    + application
    + presentation
    + infrastructure
    + domain
    	+ vo
    + converter
    + dto
        + request
        + response
        + bundle

Layer간 Data 통신

  1. View -> Controller (원시값을 가진 requestDTO) -> MemberSignRequestDto
  2. Controller -> Service (requestDto -> dto (원시값을 VO로 바꾼 DTO, 또는 원시데이터를 valid한 데이터!) -> MemberSignServiceDto
  3. Service -> Controller (dto -> responseDto) -> MemberSignResponseDto

아래의 방향대로~~

view -> controller
MemberSignRequestDto.java

MemberSignRequestDto(){
	private String name;
    private String age;
}
controller -> service
MemberSignServiceDto.java

MemberSignServiceDto(){
	private Name name;
    private Age age;
}
service -> controller
MemberSignResponseDto.java

MemberSignResponseDto(){
	private String name;
    private String age;

네이밍 전략!

  1. Controller
  • sign, edit, insert, delete
  1. Service
  • create, delete, update, find, findAll
  1. Repository
  • JPA Naming 전략을 따른다.

허용되는 Lombok 사용

  • @RequiredArgsConstructor
  • @AllArgsConstructor
  • @Builder (필드가 3개 이상이면!)
  • @NonNull
profile
한 줄에 의미를, 한 줄에 고민을

0개의 댓글