본문으로 건너뛰기

1. 코드품질

고품질 코드는 일반적으로 좀 더 신뢰할 수 있고, 유지보수가 쉬우며, 버그가 적은 소프트웨어를 생산한다.

코드 품질을 높이는 것에 관한 많은 원칙들은 소프트웨어가 처음에 만들어지는 방식을 보장하는 것뿐만 아니라, 이후에 요구 사항이 진화하고 새로운 상황이 등장하더라도 그 방식을 계속 유지할 수 있도록 하는 것에 관심을 둔다.

1. 코드는 어떻게 소프트웨어가 되는가?

코드베이스 → 코드 리뷰 → 배포 전 테스트(pre commit check) → 배포 → 프로덕션

2. 코드 품질의 목표

코드를 작성할 때 다음과 같은 네가지 상위 수준의 목표를 달성하려고 한다.

  • 코드는 작동해야 한다.
  • 코드는 작동이 멈추면 안된다.
    • 당장 돌아가는 코드를 만들기는 쉽지만, 변화하는 환경과 요구 사항에도 불구하고 계속작동하는 코드를 만드는 것은 어렵다.
  • 코드는 변경된 요구사항에 적응할 수 있어야 한다.
  • 코드는 이미 존재하는 기능을 중복 구현해서는 안된다.
    • 코드 베이스의 중복코드 뿐만아니라, 기존에 증명된 솔루션이 있다면 사용하는게 좋음.

3. 코드 품질의 핵심 요소 6가지

  • 코드는 읽기쉬워야 한다.
    • 코드의 가독서잉 떨어진다면, 다른 개발자가 그 코드를 이해하는 데 많은 시간을 들여야 한다.
    • 또한 코드의 기능에 대해 잘못 이해하거나 몇 가지 중요한 세부 사항을 놓칠 가능성이 크다.
  • 코드는 예측 가능해야 한다.
    • 우리의 코드를 사용하는 다른 개발자는 이름, 데이터 유형, 일반적인 관행과 단서를 사용해 코드가 입력값으로 무엇을 예상하는지, 코드가 무슨 일을 하는지, 그리고 무엇을 반환하는지에 대한 정신 모델을 구축한다.
    • 이 정신 모델과 어긋나는 어떤 일이 코드에서 일어나면, 이로 인해 버그가 아무도 모르게 코드 내로 유입되는 일이 많아진다.
  • 코드를 오용하기 어렵게 만들어라.
  • 코드를 모듈화하라
    • 인터페이스가 잘 정의되어 서로 다른 구성요소 간 상호작용하는 지점이 최소화 된다.
    • 모듈화된 시스템은 일반적으로 이해하기 쉽고 추론하기 쉬운데, 기능이 관리 가능한 단위로 나누어지고 기능 단위 간 상호작용이 잘 정의되고 문서화되기 때문이다.
    • 코드가 모듈화되어 작성되면 처음에 작동이 시작되고 그 후에도 계속해서 잘 작동할 가능성이 커진다. 코드가 하는 일을 개발자들이 오해할 소지가 적기 때문이다.
  • 코드를 재사용가능하고 일반화할 수 있게 작성하라
  • 테스트가 용이한 코드를 작성하고 제대로 테스트하라

4. 고품질 코드 작성은 일정을 지연시키는가?

유지보수까지 생각한다면 코드 품질에 신경쓰는게 시간을 절약하는 방법임.