2차 프로젝트 협업 연습한다 생각하고 즐거운 코딩 해보아요.
Repository
JpaRepository 인터페이스 구현해서 사용
클래스명
파스칼 표기법(PascalCase) : 첫 글자 대문자 + 이후 camelCase
BoardController, BoardService, UserRepository
BoardResponse 내부에 DTO클래스는 DTO를 끝에 ex) detailDTO
테스트 클래스명 & 테스트 메서드명
테스트 클래스 : 파스칼 표기법(PascalCase) + 끝에 Test
ContentRepository -> ContentRepositoryTest
테스트 메서드 : 카멜 표기법(camelCase) + 끝에 _test()
//given
//when
//then(혹은 //eye)
엔티티 테이블명&필드명
//엔티티 테이블 이름은 엔티티 클래스 이름끝에 _tb
@Table(name = "user_tb")
public class User {
//필드는 카멜 표기법(camelCase) 사용
private String userId;
private String userName;
}
메서드 명 & 함수명
동사 + 명사 ex) findAll(), findById(), deleteReply()
생성자 주입
클래스에 @RequiredArgsConstructor 붙이고
주입할 멤버변수에 final 붙이기
엔티티에는 가능하면 Setter 빼기
예를 들면 User 엔티티에 Setter를 넣어서
username을 변경하는 것이 아니라
username은 상태이므로 상태는 setter가 아닌 기능을 통해 변경.
changeName같은 메서드를 넣어놓고 이 기능을 통해 상태를 변경
//User엔티티 내부의 changeName 메서드
public void changeName(String username) {
this.username = username;
}
패키지 구조
A.B.C
global
-config
-interceptor
-error
-util
...
엔티티1
-Entity
-EntityController
-EntityService
-EntityRepository
-EntityResponse
-EntityRequest
엔티티2
.
.
URI 전략
URI전략 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용
(member -> members // order -> orders)
주소에는 camelCase를 사용하지 않으므로 필요시 하이픈 연결
(joinForm -> join-form)
• 회원 목록 조회(GET): /members
• 회원 등록(POST) : /members
• 회원 조회(GET) : /members/{id}
• 회원 수정(PUT) : /members/{id}
• 회원 삭제(DELETE) : /members/{id}
• 회원 등록 폼(GET) : /members/new
• 회원 수정 폼(GET) : /members/{id}/edit
Share article