Skip to content

객체 및 메서드 생성 규칙

mat edited this page Sep 18, 2022 · 1 revision

객체 생성 규칙

  • 불가능한 경우를 제외하고는 Entity(도메인)에 맞추어 ControllerService를 생성한다. ex) 엔티티명: Category 컨트롤러명: CategoryController 서비스명: CategoryService
  • Service 객체는 여러개Repository를 의존 할 수 있다.
  • 단일 Entity 집합에 대한 예외 발생은 Repository 객체에서 발생 시킨다.
  • 불가피하게 필요한 경우를 제외하고 Repository에서 데이터 존재 여부 검증을 ⇒ Boolean이 필요한 경우 existXXX() 를 사용하고, 존재하지 않을때 예외를 던져야할 경우 validateXXX() 디폴트 메소드를 만들어 구현한다.

레이어별 메서드 네이밍

Presentation 레이어

  • CUDsave, update, delete로 메서드 네이밍을 통일한다.

  • 단건에 대한 Read의 경우에는 파라미터에 따라 네이밍을 정한다. ex) findById(final long Id)

  • 복수개에 대한 Read의 경우 메서드 네임에 도메인 복수명파라미터에 대해서 작성한다. ex) findByMemberId(final long memberId)

  • Read를 할 때 URL이 /me로 끝나는경우 My로 시작하는 메서드 네이밍으로 작성한다. ex) url : /api/category/mefindMyCategories(final long MemberId)

    예외: Member 도메인은 findMe()로 한다.

Service 레이어

  • CUD는 컨트롤러 메서드와 네이밍을 통일한다.
  • Read의 경우에는 파라미터에 따라 네이밍을 정한다. ex) findByIdAndMemberId(final long Id, final long memberId)
  • 검증에 대한 로직을 Repository에서 처리하고 불가피하게 검증을 하는 로직이 필요한경우 validate로 시작하고 검증하려는 로직에 대해서 적는다. ex) validateExistCategory(final long Id)

Repository 레이어

도메인 또는 DTO

  • 형변환을 하는 경우 to 전치사로 시작한다. ex) toEntity, toDto
  • 외부에서 사용하는 Boolean을 반환하는 검증 메서드는 is/has/can으로 시작한다.
  • 객체 내부에서 사용하는 예외를 던지는 검증은 validate로 시작한다.

이외의 경우

  • 새로운 객체를 만든 후 리턴해주는 경우 create로 네이밍을 시작한다.
Clone this wiki locally