Skip to content

코딩 컨벤션

Jung Jongmin edited this page Jul 24, 2021 · 2 revisions

코딩 컨벤션

General, Clean Code

  1. 메소드의 네이밍은 의도를 분명히 알 수 있도록 작성해야 한다.
  2. 변수를 정의할 때에는 의미 있는 이름으로 정의해야 한다.
  3. 변수, 메소드는 CamelCase로 작성한다.
  4. 클래스의 첫 글자는 영어 대문자로 작성한다.
  5. 패키지명은 영어 소문자로 작성한다.
  6. 메소드는 동사가 앞에 와서 어떠한 행동을 하는지 명시한다.
  7. 컬렉션(List)는 복수형(members) 또는 컬렉션을 명시(memberList)해준다.
  8. 최대한 문자열의 하드코딩은 피해야 한다.(static String들을 관리하는 클래스을 사용)
  9. 불필요한 주석을 지양하고, 주석 대신 코드로 의도를 표현한다.
  10. 한 메소드의 길이가 너무 길어진다면, 내포된 여러 의도들을 각각의 메소드로 분리한다.

Structure, Testing

  1. Controller에서는 최대한 어떤 Service를 호출할지 결정하는 역할과 Exception 처리만을 담당한다.(비즈니스 로직이 포함되지 않도록 한다.)
  2. 하나의 메소드와 클래스는 하나의 목적을 두도록 한다.
  3. 메소드와 클래스는 최대한 작게 만든다.
  4. 서비스는 인터페이스로 작성하고 서비스를 구현하는 Impl 클래스를 정의하여 약한 결합력을 유지한다.
  5. Rest API의 반환형은 커스텀하게 정의한 ResponseDto를 사용한다.
  6. 데이터를 받고 보내는 객체는 무조건 엔티티가 아닌 Dto 혹은 일반 변수여야 한다.
  7. 엔티티와 Dto를 매핑할 때에는 Mapstruct의 Mapper를 이용한다.
  8. 컨트롤러에서 dto를 통한 validation을 하도록 한다.
  9. Controller와 Mapper는 반드시 개발 전에 테스트 코드를 작성해야 하며, Service 또한 테스트 코드를 작성하는 것을 권장한다.
  10. F.I.R.S.T. 규칙을 따르는 테스트코드를 작성한다.

출처: https://jobc.tistory.com/212, Clean Code(책)