☁️ 책에서 인상 깊었던 내용
클린 코드란 : 가독성, 유지보수성, 테스트 가능성이 높은 코드
클린 코드를 만들기 위해서 : 코드를 짤 때에도 주의를 기울이며, 시간이 지나고 언제나 깨끗하게 유지, 끊임없이 연습
- 의도를 분명이 하는 변수 / 메서드 명 짓기
- 메서드는 한가지만을 잘 해야 함
- 주석은 필요악이다. 최대한 코드 자체로 설명이 가능하게 작성하여야 함
- 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치 (호출하는 쪽이 먼저)
- 자료를 세세하게 공개하기 보다는 추상적인 개념으로 표현해야 함
- 새로운 자료 타입이 필요한 경우 -> 객체 지향 기법 적합 / 새로운 함수가 필요한 경우 -> 절차적인 코드와 자료구조가 적합
- null 은 인자 전달 X / 반환 X
- 한 테스트 당 한 개념
- 클래스는 작아야 함 (SRP)
☀️ 좋았던 점
명쾌하다는 생각이 들었다. 방법론적인 내용에 대해 뚜렷하게 나와있어 이렇게 하면 된다! 라는 식의 내용과 예시가 이해하기 쉬웠다. 코드를 짜면서 고민했던 부분들을 개념적으로 파악할 수 있어서 내가 지금까지 잘 해왔던 점과 잘 하지 못한 점에 대해서도 명확히 알 수 있었다. 아직은 SOLID 원칙을 응용하는 것에 대해 100% 이해했다고 생각하진 않지만 꾸준히 학습하려한다.
🌧️ 아쉬웠던 점
아쉬웠던 점보다는 실제 적용에 관련된 이야기이다.
클린 코드라는 책을 읽지 않은 사람들도 분명히 많고, 이 책에서 나오는 이야기가 오로지 정답인 것만은 아니다. 이 책만을 읽고 이 책에 나와있는 방법론들이 정답이라고 확신하기보다는 클린 코드의 주안점인 '가독성', '유지보수성' '테스트 가능성이 높은 코드' 의 개념과 그 상황에 맞는 대처를 하여 맞춰나가는 유연성이 필요하다고 생각한다.
🌈 기타 느낀점 & 향후 계획
클린 시리즈 두번째 책도 스터디를 통해 끝을 내렸다. 개발을 하면서 팀원들과 갈등이 있었던 적이 있었지만, 뚜렷하게 그 이유를 알지 못해서 의견을 어필하기 부족했던 적이 많았다. 그때마다 찾아보긴 했지만 와닿지 않았었다.
이번 기회를 통해 박혀있던 클린 코드를 읽어보았다. 너무나도 당연한 이야기를 할 것이라고 예상하였지만 오히려 그 반대였다. 특히 "늘 객체지향이 옳은 것은 아니다. 어떤 방식으로 확장하냐에 따라 객체 지향적인 방법을 사용하지 않아야 할 시기가 온다." 라는 내용이 가장 크게 와닿았던 것 같다. 대학교 시절부터 객체지향의 중요성에 대해서만 강조하여 들었지만 실제 업무를 처리하면서는 오히려 '이 방식이 옳은가?', '코드를 짜기에 쉬운가?' 라는 의심이 늘 있었다. 그때마다 내가 객체지향을 제대로 이해하지 못해서 사용자가 편한 코드를 못 짜는 것이라고 생각해왔었는데 이 책을 읽으면서 '가독성'과 '확장성' 이라는 키워드에 좀 더 집중하여 유연한 사고를 가지게 되었다.
현재 새로운 아키텍처로 기존의 프로젝트를 리펙터링하는 업무를 회사에서 진행하고 있다. 이번 클린코드에서 배웠던 테스트 코드 작성법, 추상화, 주석, 메서드와 변수를 가독성있게 짓는 법등을 좀 더 고려하여 다시 고쳐보고 있다. 이전에 막연히 객체지향과 분리만을 강조했던 방식보다 아키텍처도 훨씬 단순해졌고, 누구에게 설명하기 쉬운 방식으로 가고 있다는 생각이 든다. 아직 부족한 부분이 많지만 '가독성', '확장성' 에 맞는 코드와 아키텍처를 갖도록, 처음 본 누군가에게 설명했을 때 쉽게 컨벤션에 맞춰 다음 서비스를 추가할 수 있는 프로젝트를 만드는 것이 목표이다.
'BOOK Review' 카테고리의 다른 글
[스프링입문을위한 자바 객체지향의 원리와 이해] 3장 ~ 5장 객체 지향 (0) | 2024.09.11 |
---|---|
[스프링입문을위한 자바 객체지향의 원리와 이해] 1장 ~ 2장 (1) | 2024.09.11 |
[클린코드] TIL - 10장 클래스 (0) | 2024.07.08 |
[클린코드] TIL - 9장 단위 테스트 (1) | 2024.07.05 |
[클린코드] TIL - 7장 오류 처리 (0) | 2024.07.02 |