프로그래밍 원칙 1-1

March 23, 2025

1. 보이스카우트 원칙

  • 코드를 변경할 때는 주변을 둘러보고 소소한 개선이 필요한 부분을 함께 살펴보아야 한다는 원칙.
  • 코드를 변경할 때는 변경 전보다 코드베이스를 더 나아진 상태로 만들려고 노력해야 한다.
  • 이렇게 점진적으로 코드를 조금씩 개선하는 일이 코드의 가독성과 작업 환경을 지속적으로 개선할 수 있는 방법.
  • 보이스카우트 원칙을 적용할 수 있는 대상
    • 추가: 누락된 주석이나 테스트 추가하기
    • 삭제: 불필요한 의존관계, 구성 요소, 조건문 삭제하기
    • 리네이밍: 클래스, 함수, 변수 등의 이름을 적절하게 바꾸기
    • 세분화: 너무 큰 클래스나 함수, 지나치게 깊은 계층 구조, 연쇄적인 호출을 잘게 나누기
    • 구조화: 의존 관계, 추상화 레이어, 상속의 계층 구조를 적절히 구성하기

2. YAGNI(You Aren’t Gonna Need It)

  • YAGNI는 그런건 필요하지 않아 를 뜻하는 영문 약자로, 익스트림 프로그래밍 원칙 중 하나이다.
  • 불확실한 미래를 위해 현재 필요하지 않은 기능을 미리 구현해도 정작 사용되지 않는 경우가 많다는 의미.
  • 사용되지 않는 코드 예시
    • 참조되지 않는 변수
    • 호출되지 않는 함수
    • 주석 처리된 코드
  • 과도하게 확장된 코드 예시
    • 정수 하나만 전달되는 가변 인수
    • 호출하는 곳이 단 하나뿐인 공개 유틸리티 함수
    • 자식 클래스가 하나뿐인 추상 클래스
  • YAGNI는 어디까지나 현재 사용하지 않는 기능의 구현 을 다루고 있다는 점 주의. 기능의 필요성에 대한 논의나 검증, 필요한 기능의 설계나 구현 방법은 YAGNI의 대상이 아니므로 YAGNI를 이유로 정작 필요한 과정까지 생략하는 일이 없도록 유의해야 한다.