가독성 높은 코드를 작성하라-1

2025. 2. 15. 12:58·📚 개발자의 서재/Good Code, Bad Code
해당 포스팅은 톰 롱의 Good Code, Bad Code (P.123~134)를 읽고 정리한 글입니다.

 

서술형 명칭 사용

클래스, 함수, 변수의 이름은 자체적으로 의미를 명확히 전달할 수 있도록 직관적으로 지어야 한다. 

 

서술적이지 않은 이름은 코드의 가독성을 떨어뜨린다. 이를 보완하기 위해 주석이나 문서를 추가할 수 있지만, 완전한 해결책이 되지는 않는다. 반면, 서술적인 이름을 사용하면 코드가 직관적으로 이해하기 쉬워지고, 불필요한 주석이나 문서를 줄여 코드가 더욱 깔끔해진다.

 

주석문의 적절한 사용

클래스와 같이 큰 단위의 코드가 무엇을 하는지 요약하는 높은 수준에서의 주석문은 유용하다. 그러나 하위 수준에서 한 줄 한 줄 코드가 무엇을 하는지 설명하는 주석문은 가독성을 높이기 위한 효과적인 방법이 아니다. 반면에 코드가 왜 그 일을 하는지에 대한 이유나 배경을 설명하는 주석문은 유용할 때가 많은데, 코드만으로는 이를 명확히 할 수가 없기 때문이다.

 

중복된 주석문은 좋지 않다.

주석문을 사용해서 코드가 하는 일을 설명하는 것이 아닌 코드 자체로 이해할 수 있어야 한다.

 

주석문으로 가독성이 높은 코드를 대체할 수 없다.

코드의 가독성이 낮을 경우 주석으로 보완할 수 있지만, 코드 자체를 가독성 높게 작성하는 것이 더욱 효과적이다.

 

주석문은 코드의 이유를 설명하는 데 유용하다.

코드가 그 일을 왜 수행하는지는 코드 자체로는 설명하기 어렵기 때문에 주석문을 통해 코드가 존재하는 이유를 설명하면 좋다.

  • 제품 또는 비즈니스 의사 결정
  • 이상하고 명확하지 않은 버그에 대한 해결책
  • 의존하는 코드의 예상을 벗어나는 동작에 대처

주석문은 유용한 상위 수준의 요약 정보를 제공할 수 있다.

코드 기능에 대한 상위 수준에서의 개략적인 문서는 다음과 같은 경우 유용하다.

  • 클래스가 수행하는 작업 및 다른 개발자가 알고 있어야 할 중요한 세부 사항을 개괄적으로 설명하는 문서
  • 함수에 대한 입력 매개변수 또는 기능을 설명하는 문서
  • 함수의 반환값이 무엇을 나타내는지 설명하는 문서

주석과 문서도 지속적인 유지·보수가 필요하며, 제때 업데이트되지 않으면 코드와 불일치하여 오히려 혼란을 초래할 수 있다. 따라서 주석과 문서화를 효과적으로 사용하기 위해서는 균형 잡힌 접근법이 필요하다.

 

코드 줄 수를 고정하지 마라

코드는 일반적으로 줄 수가 적을수록 좋지만, 줄이기에만 집착해서는 안 된다. 가독성을 높이기 위해 정말로 신경 써야 할 것은 코드의 줄 수가 아니라 다음과 같은 요소들이다.

  • 이해하기 쉬운가
  • 오해하기 어려운가
  • 실수로 작동이 안 되게 만들기가 어려운가

간결하지만 이해하기 어려운 코드는 피하라

모든 세부 사항과 가정을 매우 간결한 단 한 줄의 코드로 압축할 때 다음과 같은 문제가 생긴다.

  • 코드의 세부사항과 가정을 파악하는 데 시간이 많이 걸리면, 수정 시 오해로 인해 코드가 정상적으로 동작하지 않을 가능성이 커진다.
  • 이러한 가정은 다른 코드에서도 일관되어야 하며, 일치하지 않으면 오류가 발생할 수 있다. 이를 해결하기 위해 코드를 분리하여 하위 문제로 구성하고, 해당 로직을 유일한 최종 원천으로 재사용하는 것이 더 효과적인 방법이다.

해결책: 더 많은 줄이 필요하더라도 가독성 높은 코드를 작성하라

 

 

저작자표시 비영리 변경금지

'📚 개발자의 서재 > Good Code, Bad Code' 카테고리의 다른 글

[Good Code Bad Code] 가독성 높은 코드를 작성하라-3  (0) 2025.02.17
가독성 높은 코드를 작성하라-2  (0) 2025.02.16
복구 가능성에 따른 적절한 오류 전달 기법  (2) 2025.02.14
오류전달기법-2  (0) 2025.02.13
오류 전달 기법 - 예외  (0) 2025.02.12
'📚 개발자의 서재/Good Code, Bad Code' 카테고리의 다른 글
  • [Good Code Bad Code] 가독성 높은 코드를 작성하라-3
  • 가독성 높은 코드를 작성하라-2
  • 복구 가능성에 따른 적절한 오류 전달 기법
  • 오류전달기법-2
l'avenirJun
l'avenirJun
  • l'avenirJun
    오늘도 꾸준히 개발
    l'avenirJun
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 📚 개발자의 서재 N
        • 객체지향의 사실과 오해
        • Good Code, Bad Code
        • 도메인 주도 개발 시작하기 N
      • 🔧 트러블 슈팅
      • Java
      • Spring
      • 운영체제
        • 공룡책 학습
      • 알고리즘
      • GIT
      • 면접 지식
      • Spring 단기심화 2기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    추상화
    코딩트리조별과제
    티스토리챌린지
    일반화
    매핑 구현
    코딩테스트
    인터페이스
    오블완
    책임
    객체
    모듈화
    협력
    specification
    도메인 주도 개발 시작하기
    타입
    역할
    캡슐화
    리포지터리
    책임-주도 설계
    애그리거트 루트
    가독성
    코드 계약
    애그리거트
    유스케이스
    객체지향의 사실과 오해
    도메인 모델
    메시지
    DIP
    good code bad code
    코드트리
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
l'avenirJun
가독성 높은 코드를 작성하라-1
상단으로

티스토리툴바