코드 컨벤션
- [인텔리제이 네이버 코드 컨벤션] ⭕️
- <https://bestinu.tistory.com/64>
- 가독성 향상 & 오류를 발생시키는 잠재적 위험 요소를 줄여준다. (이유)
- 정적 팩터리 메서드 ⭕️
- (record) 2표 레코드의 장점 (getter, Lombok) ⭕️
- post : request, response → request : (createDto)
- comment
- 매개변수 4개 이상일 때 빌더사용 2표 → 솔문 님 무조건 빌더 1표 예은님 솔문님 장점이 있나요? (보류)
- 주석 보다는 메서드 명을 명확하게 작성하기 → findByComment_IdAnd //진짜 알아보기 힘들 떄
1. 의미없는 주석을 달지 말자는 말입니다.
2. 메서드 명을 통해 의도를 드러내기 어려운 경우에만 작성하자.
- 함수 명 작성할 때 동사 + 명사 (당연)
- 리턴 값이 boolean일 때 is로 시작하기. (당연)
- 검증 관련 메서드는 validate로 시작하기. 굿
- 코드길이가 120자를 넘기지 않는다. : 굿
- 클래스는 상수, 멤버 변수, 생성자, 메서드 순으로 작성한다. (너무 당연한거죠)
- enum → Hash로 enum 최적화 해주기 (풀스캔 x / O(1)) → 동의하시나요 ? 과반수 동의
- 아키텍처 구조 (계층형)
- 하나의 메서드가 하나의 책임을 갖도록 노력해 주세요. if문 남발 X (하지만 하나의 메서드 역할이 많은 If문을 요하는건 괜찮습니다)
- ( 프로젝트 셋팅 할 줄 아시는분 yml파일 분리하기, 깃 이그노어 추가하기, )
- BaseTimeEntity → createdAt → 이것만 하겠습니다.
- createdAt → Auditing 적용해주기 (날짜 정보를 받지 않아도 엔티티 createdAt( 실제 지금 날짜가 저장됩니다. 설정만 해두면)
- local yml 파일 → h2(디벨롭 브렌치) 추후 메인브렌치 (MySQL)
- 1:N, 다대다 관계에서 (양방향을 선호하시는 분이 있는지)
→ N에 외래키 넣어주시고 다대다 연관관계테이블 만들어 주세요
1:1 경우는 회의를 통해 어디다 넣을지 정하면 될 것 같아요
( 메서드를 만들지 않아도 findById( ) 가능 ) save, delete
의존성
- Validation
- Lombok
- Sequrity
- JWT
- H2
- starter JPA
폴더구조
com.thinktank
├── api
│ ├── controller
│ ├── dto
│ │ ├── post
│ │ │ ├── request
│ │ │ └── response
│ │ ├── user
│ │ │ ├── request
│ │ │ └── response
│ │ ├── comment
│ │ │ ├── request
│ │ │ └── response
│ │ ├── judge
│ │ │ ├── request
│ │ │ └── response
│ │ └── like
│ │ ├── request
│ │ └── response
│ ├── entity
│ ├── repository
│ └── service
└── global
├── common
│ └── util
├── error
│ ├── exception
│ ├── handler
│ └── model
├── auth
│ ├── filter
└── config
2. git branch 이름
main : 메인 -> organization main
feat/#이슈번호 : 개발 브랜치 -> 원격
3. git commit message
feat: 기능개발
refactor: 리팩토링, 간단 수정
fix: 버그 수정
test: 테스트 코드
docs: 문서 수정
4. 메서드 명
null 이 있을 수 있다. → findMember
null이 없고 무조건 값이 있다. → getMember
5. 이슈 템플릿
<!-- assignee는 본인으로, milestone 링크하기, 라벨 달기 잊지마세요-->
## 기능 설명
<!-- 추가하려는 기능에 대해 간결하게 설명해주세요-->
-
## 작업 상세 내용
- [ ]
- [ ]
- [ ]
## 주요 포인트
-
## 기타 사항 (선택)
-