코드를 작성하는 것만큼이나 중요한 것이 바로 다른 사람이 작성한 코드를 이해하고 평가하는 능력입니다. 특히 협업 프로젝트나 코드 리뷰를 진행할 때, 코드의 품질을 정확히 판단하는 것이 필수적이죠. 그럼 어떤 기준으로 코드를 잘 짰는지, 아니면 개선이 필요한지 확인할 수 있을까요? 이번 글에서는 좋은 코드를 판단하는 핵심 기준들을 소개합니다.
1. 가독성 (Readability)
가독성은 좋은 코드의 가장 기본적인 조건입니다. 아무리 기능이 완벽하더라도 읽기 어려운 코드는 유지보수하기 어렵습니다.
- 명확한 변수명/함수명: 이름만 봐도 역할이 명확해야 합니다.
- 나쁜 예시: calc1(), temp
- 좋은 예시: calculateTotalPrice(), orderList
- 적절한 주석 사용: 불필요한 주석은 피하고, 필요한 부분만 명확하게 설명합니다.
- 코드 구조: 함수나 클래스는 한 가지 역할만 수행해야 하며, 너무 길어지지 않도록 적절히 나눠야 합니다.
2. 간결성 (Simplicity)
코드가 복잡하면 실수와 버그가 생길 확률이 높아집니다. 불필요한 중복과 복잡한 로직은 간결하게 다듬어야 합니다.
- 불필요한 중복 제거: 같은 코드가 반복되면 DRY (Don't Repeat Yourself) 원칙을 적용해야 합니다.
- 불필요한 조건문 최소화:
// 나쁜 예시
if (isActive == true) {
doSomething();
}
// 좋은 예시
if (isActive) {
doSomething();
}
3. 확장성 (Scalability)
코드는 시간이 지남에 따라 수정되거나 새로운 기능이 추가될 수 있습니다. 좋은 코드는 확장성과 유연성이 뛰어납니다.
- 변경에 유리한 구조: 새로운 기능을 추가할 때 기존 코드를 많이 수정하지 않아도 되는가?
- 객체지향 설계 원칙: SOLID 원칙을 잘 지키고 있는지 확인하세요.
- SRP (단일 책임 원칙): 하나의 클래스나 함수는 단 하나의 책임만 가져야 합니다.
- OCP (개방-폐쇄 원칙): 코드는 확장에는 열려있고, 수정에는 닫혀
4. 성능 (Performance)
성능은 코드의 실행 시간과 자원 사용량을 평가하는 기준입니다.
- 효율적인 알고리즘 사용: 시간 복잡도와 공간 복잡도를 확인하세요.
- 예: 반복문이 O(n^2)인 경우, O(n)으로 최적화할 수 있는지 검토합니다.
- 불필요한 반복 최소화: 캐싱과 같은 최적화 기법을 활용하세요.
5. 일관성 (Consistency)
코드 스타일이 일관되지 않으면 협업 시 혼란이 생깁니다.
- 코딩 컨벤션 준수: 팀에서 정한 규칙이나 언어의 Best Practice를 따릅니다.
- 들여쓰기와 스타일: 들여쓰기, 괄호 사용, 공백 처리 등을 통일합니다.
- 린터(Linter) 도구 사용: 자동으로 코드 스타일을 점검해 주는 도구를 활용하세요.
6. 테스트 코드 (Testing)
좋은 코드에는 테스트 코드가 필수입니다.
- 단위 테스트 존재 여부: 함수나 클래스의 단위 테스트가 작성되어 있는지 확인합니다.
- 엣지 케이스 검토: 예외 상황에 대한 테스트가 포함되어 있는가?
- 테스트 커버리지: 주요 로직이 테스트 코드로 커버되고 있는지 확인합니다.
7. 보안 (Security)
보안이 고려되지 않은 코드는 큰 문제를 일으킬 수 있습니다.
- 입력값 검증: 외부 입력값에 대한 철저한 검증이 이루어졌는가?
- SQL Injection 방지: 쿼리 실행 시 Prepared Statement를 사용했는가?
- 비밀번호/키 하드코딩 금지: 민감한 정보가 코드에 하드코딩되지 않았는지 확인합니다.
8. 재사용성 (Reusability)
코드가 모듈화되어 다른 곳에서도 재사용될 수 있는가?
- 함수와 클래스의 모듈화: 하나의 함수나 클래스는 한 가지 역할만 수행하도록 설계합니다.
- 중복 제거: 반복되는 로직은 공통 함수나 유틸리티 클래스로 분리합니다.
9. 의존성 (Dependencies)
외부 라이브러리나 프레임워크에 지나치게 의존하면 코드의 유연성이 떨어질 수 있습니다.
- 과도한 라이브러리 사용 지양: 정말 필요한 경우에만 외부 라이브러리를 추가합니다.
- 유지보수 용이성 검토: 외부 라이브러리가 더 이상 지원되지 않을 경우 대체할 수 있는 계획이 있는지 확인합니다.
마무리하며: 좋은 코드를 위한 핵심 원칙
자신의 코드를 평가할 때 위의 9가지 기준을 체크리스트처럼 활용해 보세요.
- 가독성: 읽기 쉬운가?
- 간결성: 불필요한 부분이 없는가?
- 확장성: 변경이나 추가가 쉬운가?
- 성능: 효율적인가?
- 일관성: 코드 스타일이 통일되어 있는가?
- 테스트: 단위 테스트가 있는가?
- 보안: 보안 리스크가 없는가?
- 재사용성: 다른 곳에서도 활용 가능한가?
- 의존성: 과도하게 외부에 의존하지는 않는가?
코드 리뷰는 단순히 오류를 찾는 과정이 아닌것 같습니다. 더 나은 코드와 협업 문화를 만들어가는 중요한 과정이라고 생각합니다. 좋은 코드란 유지보수하기 쉽고 확장 가능하며, 읽기 쉬운 코드입니다. 이 글이 좋은 코드와 나쁜 코드를 구분하는 데 도움이 되기를 바랍니다! 읽어주셔서 감사합니다!
