1. 한 가지만 해라!
- 함수는 단 하나의 일만 수행해야 하며, 그 일을 잘 수행해야 함.
- 함수가 여러 가지 일을 수행하면 유지보수나 테스트가 어려워지고 코드의 가독성이 떨어질 수 있음. 단일 책임 원칙(SRP)을 따르면 함수가 명확하고 이해하기 쉬워짐.
- 추가 설명: 잘 설계된 함수는 간단하고 명확하여 코드의 유지보수가 용이함. 함수가 여러 가지 역할을 수행하게 되면 디버깅이나 확장이 어려워지므로, 단일 기능에 집중하는 것이 중요함.
2. 단일 책임 원칙(SRP)
- 함수는 하나의 책임만 가져야 함.
- SRP는 유지보수를 쉽게 하고, 코드의 수정 없이 기능을 확장하기 쉽게 만듦. SRP를 적용하면 코드가 모듈화되어 특정 기능의 변경이 다른 부분에 영향을 미치지 않게 됨.
- 추가 설명: SRP는 객체지향 설계의 기본 원칙 중 하나로, 변경의 이유가 하나뿐인 모듈을 만드는 것이 목표임. 이는 코드가 유연하고 확장 가능하며 테스트하기 쉽게 만듦.
3. 개방-폐쇄 원칙(OCP)
- 코드 수정 없이 기능을 확장할 수 있어야 함.
- OCP를 지키면 기존의 코드를 수정하지 않고 새로운 기능을 추가할 수 있어 코드의 안정성을 높이고 오류 발생 가능성을 줄일 수 있음. 이를 위해 인터페이스나 추상 클래스를 활용하여 유연한 설계를 할 수 있음.
- OCP는 코드의 유지보수성을 높이는 중요한 원칙으로, 시스템에 새로운 기능을 추가할 때 기존 코드를 변경하지 않도록 하는 것을 목표로 함. 이는 잘 정의된 인터페이스와 상속을 통해 이루어질 수 있음.
4. 의미 있는 이름 사용
- 함수와 변수에 의미 있는 이름을 사용해야 함.
- 의미 있는 이름을 사용하면 코드의 가독성이 높아지고, 다른 개발자가 코드를 쉽게 이해할 수 있음. 함수의 이름은 그 함수가 하는 일을 정확히 나타내도록 해야 함.
- 코드를 읽는 사람은 이름을 통해 함수나 변수가 어떤 역할을 하는지 쉽게 이해할 수 있어야 함. 이름이 의미가 없다면 코드를 해석하는 데 시간이 걸리며, 이는 생산성을 저하시킴.
5. 인수의 수와 이름
- 함수의 인수는 적을수록 좋으며, 인수의 이름도 명확하게 지정해야 함.
- 인수가 많아지면 함수의 복잡성이 증가하고, 테스트 및 유지보수가 어려워짐. 가능하다면 인수의 수를 줄이고, 객체를 사용하여 관련 인수를 묶어서 전달하는 것이 좋음.