[학습] 클린코드
- 국비지원 (스파르타)
- 2025. 3. 31. 23:24
클린코드.. 이거만큼 학습하긴 어려운건 없을거 같다. 쉬우면서 어렵고 알거 같으면서도 막상하려고 하면 쉽지 않는 뭐 그런느낌이다.
내가 생각할때, 고도화보다 더 중요하다고 생각한다. 왜냐하면 코드를 깨끗이 작성하게 되면 추후 확장성도 증가 할 수 있기 때문이다.
코드가 과도하게 비대해지면 결국엔 나중에 수정하려고 하면 어떤걸 수정을 해야 하는지 잘 모르는 경우도 많다고 생각한다.
그렇다고 해서 이게 습관화가 되어 있지 않기 때문에 나중에 해야지 하면 결국엔 또 안하게 될거 같다.
클린코드 책을 보면 다음과 같은 제안을 하였다.
1. 생성자를 중복 정의할 때는 정적 팩토리 메서드를 사용한다.
2. 함수는 작게 만들어라!
3. 함수는 한 가지만 해라!
4.함수 인수 - 플래그 인수는 추하다.
5.반복하지 마라! a.k.a DRY(Don’t Repeat Yourself)
6. 디미터 법칙 (Don’t Talk to Strangers/Principle of least knowledge/Tell, Don’t Ask)
7. 중복을 없애라
등이 존재한다고 한다. 이걸 알긴아는데.. 막상하려면 쉽지 않는다.
내가 알기로는 이러한 클린코드를 지킬수 있는 방법으로 객체지향 생활체조라는 것이 존재하는 걸로 알고 있다.
소트웍스 앤솔러지라는 책을 보면 다음과 같은 원칙이 존재한다고 한다.
- 한 메서드에 오직 한 단계의 들여쓰기(indent)만 한다.
- else 예약어를 쓰지 않는다.
- 모든 원시 값과 문자열을 포장한다.
- 일급 컬렉션을 쓴다.
- 한 줄에 점을 하나만 찍는다.
- 줄여 쓰지 않는다(축약 금지).
- 모든 엔티티를 작게 유지한다.
- 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
- getter/setter/프로퍼티를 쓰지 않는다.
이렇게 9개가 존재한다고 하고 요것들을 전부 지키면 좋겠지만, 고건 쉽지 않고 점차 줄이는 연습을 하다보면 클린코드를 작성할 수 있다고 한다. 물론 클린코드가 만능은 아니라고 생각한다. 그래도 마냥 더러운것보다는 깨끗한게 낫고
저게 성능에 크게 영향을 주는것도 아니고 뭐 커버리지 100%하는것도 아닌데 그냥 지키는게 실력향상에 도움이 된다고 생각한다.
'국비지원 (스파르타)' 카테고리의 다른 글
재고 시스템에 동시성 적용하기 (2) (0) | 2025.04.02 |
---|---|
[학습] 데드락이란 무엇일까? (0) | 2025.04.02 |
[학습] sql injection (0) | 2025.03.28 |
[학습] 도커- Dockerfile, docker-compose.yml (0) | 2025.03.27 |
[학습] 도커를 학습해보자!! (3) | 2025.03.26 |