카테고리 없음

[개발독서] 내 코드가 그렇게 이상한가요 (1~2장 잘못된 구조의 문제 깨닫기 & 설계 첫걸음)

보리시스템 2024. 3. 19.
1장 잘못된 구조의 문제 깨닫기
 1.1 의미를 알 수 없는 이름
 1.2 이해하기 어렵게 만드는 조건 분기 중첩
 1.3 수많은 악마를 만들어 내는 데이터 클래스
 1.4 악마 퇴치의 기본

2장 설계 첫걸음
 2.1 의도를 분명히 전달할 수 있는 이름 설계하기
 2.2 목적별로 변수를 따로 만들어 사용하기
 2.3 단순 나열이 아니라, 의미 있는 것을 모아 메서드로 만들기
 2.4 관련된 데이터와 로직을 클래스로 모으기

 

1장 잘못된 구조의 문제 깨닫기

가독성과 유지보수성!
  • 2명 이상 개발 시 필요한 것?
    • 프로그램 설계
  • 2명 이상 개발 시 코드 작성 방법?
    • 가독성: 이해하기 쉬운 코드
    • 유지보수정: 코드 추가/수정이 쉬운 코드
  • 가독성과 유지보수성이 떨어지는 코드?
    • 의미를 알 수 없는 이름
    • 중첩이 많은 코드
    • public 변수가 많은 클래스
      • 함수로 코드에 이름 붙여 코드의 가독성 높이기!
        • 이해하는데 시간 단축
        • 입력 중 발생하는 실수를 줄임
        • 함수로 만들어 모든 개발자가 함께 관리하면 문제를 빨리 찾고 해결할 수 있음
        • 중복 코드로 분산되어 있으면 찾거나 해결하기 어려움 있음
      • 각 인스턴스가 갖는 변수들을 private으로 만들기!
        • 외부에서는 private 변수에 접근할 수 없기에 클래스가 갖는 함수에 더 주목하게 될 것임
        • 중복 코드를 막을 수 있음

 

2장 설계 첫걸음

이름 붙이기의 중요성!

1. 변수

  • 변수 이름 잘 붙이기, 계산식마다 변수 만들기
  • 이렇게 변수를 선언하는 것이 성능에 영향을 주지는 않을까?
    • 알고리즘의 전체적인 복잡도는 전체적인 반복 횟수에 의존하는 것뿐 변수 이름을 붙인다고 프로그래밍 성능에 크게 영향을 주지는 않음
    • 지금의 컴파일러들은 최적화를 잘하기 때문에 성능 상의 영향은 거의 없음
    • 단 성능이 정말 중요한 프로그램이라면 '상수'를 활용하면 됨
      • 상수/변수 사용에 따른 속도 차이는 특정 프로그래밍 언어의 컴파일러 최적화 수준에 따라서 유효하기도 그렇지 않기도 함

2. 메서드

  • 주석(퇴화 주석)보다는 함수/메서드
    • 문서를 만들기 위한 주석, 매우 복잡한 계산식 설명하는 주석 외에는 주석 사용 지양

 

[참고] private 변수의 적용 범위

  • 대부분의 프로그래밍 언어에서는 private 등의 접근 제한자는 '인스턴스' 단위가 아닌 '클래스' 단위임