kimjingyu 2023. 9. 5. 21:49
728x90

의미있는 이름(Meaningful Names)

독자의 입장에서 고려하자.

gubun, gbn, sabun, yuji 등 변수명만을 보고 어떤 데이터를 저장하고 있는지 예측이 되는가?

  • 첫 번째 규칙: 의도를 분명히 밝혀라.
    • 코드의 저자의 의도가 명확하게 파악된다.
    • 코드가 위에서 아래로 술술 읽힌다.
    • 코드의 맥락이 명시적이다.
  • 두 번째 규칙: 그릇된 정보를 피하라.
  • 세 번째 규칙: 의미있게 구분하라.
  • 네 번째 규칙: 발음하기 쉬운 이름으로 정하자.
  • 다섯 번째 규칙: 검색하기 쉬운 이름을 사용하자.
    • 로그 검색 용이성
  • 여섯 번째 규칙: 타입과 관련된 문자열을 넣지 말아라.
  • 일곱 번째 규칙: 한 개념에 한 단어를 사용하라.
    • 일관성있는 어휘를 선택해서 이름을 붙이자.
    • ex) Controller-fetch, Service-get
  • 여덟 번째 규칙: 의미 있는 맥락을 추가하라.
    • 맥락을 좀 더 분명하게 하기위해서 addr이라는 접두어를 붙인다.
  • 아홉 번째 규칙: 불필요한 맥락을 없애라.
    • 의미없는 접두사를 붙이지 말자.
    • 의미가 명확하게 전달되는 긴 변수명으로 변경하자.

Function: 한 가지만 해라

  • 명령과 조회를 분리해라
    • isExistedDirectory
    • makeDirectory
  • 오류 코드보다 예외를 사용하라
    • Enum 클래스로 코드를 정의해서 분기 처리를 하는 것보다 try catch 문을 이용해서 예외를 처리하는 것이 좋다.

Object & Structure: 객체와 자료 구조

  • 캡슐화
    • DTO가 아닌 이상, getter, setter 사용은 지양해야 한다.
    • 외부 객체에서 접근하는 메서드만 열어놓고, 내부 상태를 변경하는 행동은 내부 객체에서만으로 접근 제어하자.
728x90