코드 최적화
주어진 코드를 변경하지 않으면서 실행속도를 개선하거나 메모리 사용을 최소화하는 과정
코드 스멜(Code Smell)
- 코드의 문제점을 나타내는 지표
- 구체적인 버그가 아니지만, 개선이 필요한 코드의 징후
스파게티 코드(Spaghetti Code)
외계인 코드(Alien Code)
(20.6)
- 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 프로그램 코드
리팩토링(Refactoring)
- 코드의 외부 동작을 변경하지 않으면서 내부구조를 개선하는 방법
- 목적: 가독성, 유지보수성 향상
- 리팩토링의 코드스멜: 읽기 어려운/복잡한/중복되는 코드
클린코드(Clean Code)
- 명확하고, 읽기 쉬운 코드를 작성하는 원칙과 기법에 기반한 코드
- 특징: 의존성 최소화, 가독성 향상, 중복 최소화
클린코드 구현방법
- 클래스명, 메서드명, 변수명은 명사를 사용하며 의미있는 이름으로 작성
- 불필요한 주석을 제거하고 의도를 명확히 기술한 주석을 작성
- 리팩토링을 통해 점진적인 개선을 통해 코드의 복잡도를 낮춤
클린코드 작성원칙
(20.8)
- 가독성
- 누구든지 코드를 쉽게 읽을 수 있도록 작성
- 코드 작성 시 이해하기 쉬운 용어 사용
- 단순성
- 코드는 가급적 기능별로 간단하게 작성
- 한 번에 한 가지 처리
- 클래스/메서드/함수 등을 최소단위로 분리
- 의존성 배제
- 코드가 다른 모듈에 미치는 영향 최소화
- 코드 변경 시 다른부분에 영향이 없도록 작성
- 중복성 최소화
- 코드의 중복을 최소화
- 중복된 코드는 삭제하고 공통된 코드 사용
- 추상화
- 상위객체는 간랴가게 기능적 특성을 나타내고
- 상세내용은 하위객체에서 구현