관리 메뉴

공부 기록장 💻

Clean Code(클린 코드) 개발 서적 읽기 시작 본문

# Tech Studies/Clean Code

Clean Code(클린 코드) 개발 서적 읽기 시작

dream_for 2023. 1. 5. 09:29


인턴 4일차,
회사 생활을 하며 무수하게 많은 코드를 읽는 시기가 언젠가는 오지 않을까 싶다. 내가 작성한 코드가 아닌 다른 누군가가 작성한 코드를 말이다.
둘째 날 선배님께서 읽어보라며 주신 클린 코드(Clean Code) 개발 서적을 틈틈히 읽어 보려고 한다.
현재 배정된 부서 팀에서 Java Spring Boot 를 이용한 백엔드 개발이 진행된다고 하여,
마침 클린 코드 를 읽는 것이 앞으로 업무를 배워 나가는데 있어 Java 코드들을 잘 이해하고(꼭 Java 언어가 아니더라도), 새로운 개발 업무를 맡게 될 때 읽기 좋은 쉬운 코드를 작성하는데 큰 도움이 되지 않을까 싶다.




우아한 테크코스 프리코스를 참여하면서도 가독성이 좋은 깨끗한, 효율적인 코드를 작성하는 방법에 대해 찾아본 바가 있지만, 사실상 각 미션을 진행하기 바빴지, 다른 사람들의 코드를 볼 기회와 시간이 충분하지는 않았던 것 같아 아쉬움이 있었다.
자율 공부 시간이 주어질 때마다 틈틈히 읽고 기억하고 싶은 부분을 정리해보고자 한다.




번역판 옮긴이 서문 중 기억에 남는 부분 정리

이 책은 자바 프로그래밍 언어를 사용해 프로그램을 작성할 때 자기도 만족스럽고 남도 만족스럽도록 깨끗한 코드를 작성하는 방법을 소개하고 있다.

코드를 하나하나 짚어가며 저자가 코드를 고쳐간 방식을 이해하고 납득해야 가치를 발휘하는 책이다.

많이 고민하고 생각하는 만큼 여러분이 프로그래밍 실력이 늘어나리라 믿는다. 항상 깨끗한 코드를 짜려고 노력하는 개발자 여러분에게 응원을 보낸다.





추천사 중 기억에 남는 부분 정리

그럼에도 세세함에 주의를 기울이는 태도는 (그 어떠한 비전보다) 전문가에게 더더욱 필수적인 자질이 되었다. 첫째, 큰 실무에서 실력을 쌓고 긴뢰를 얻으려는 전문가는 먼저 작은 실무부터 실력을 쌓고 신뢰를 얻어야 하는 탓이다. 둘째, 꼭 맞게 닫히지 않는 문이나 비뚤어진 바닥 타일이나 지저분한 책상 등 아주 사소한 것들이 전체의 매력을 깎아 먹기 때문이다. 깨끗한 코드가 중요한 이유는 바로 여기에 있다.

1951년 TPM(Total Productive Management)이라는 품질 관리론이 일본 업계에 등장했다. TPM은 생산이 아니라 유지보수에 초점을 맞췄다. TPM을 지탱하는 기둥 하나가 소위 5S라는 원칙이다. 5S는 린(Lean, 서양 개발 문화가 내놓은 또다른 유행어이자 SW개발자들 사이에서 점차 주목 받는 유행어)의 토대인데, 5가지 규율을 가리킨다: 정리, 정돈, 청소, 청결, 생활화

훌륭한 소프트웨어 기법은 집중, 침착, 사고라는 규율을 요구한다. 행동이 전부가 아니다.
작은 것에도 충실한 사람이 큰 것에도 충실하다.
오늘 할 수 있는 일을 내일로 미루지 마라.
깨끗한 코드는 세세함에 신경 쓰는 문화에서 우러나온 지혜를 충실히 신봉한다.

우리는 우리 코드를 숭고한 설계 노력이 낳은 아름다운 산물로 봐야 한다. 설계는 과정이지 고착된 종착점은 아니다.
결합력과 응집도라는 아키텍처 척도는 바로 코드로 표출된다.

코드에 정직하고, 코드의 상태에 관하여 동료들에게 정직하고, 무엇보다도 자기 코ㄷ에 대해서 자신에게 정직하라
아키텍처도, 깨끗한 코드도, 완벽을 주장하지는 않는다. 단지 최선을 다해 정직하라 요구할 뿐이다.
류는 인간의 본성이고 용서는 신의 본성이다. 스크럼에서 우리는 모든 것을 드러낸다. 더러운 빨래를 기꺼이 공개한다.
코드는 결코 완벽하지 않으므로 자신의 코드 상태를 정직하게 말한다. 좀 더 인간적이 되고, 좀 더 신의 용서를 받을 자격을 갖추며, 좀 더 세세함에 깃든 위대함에 가까워진다.



들어가면서 중 기억에 남는 부분 정리


장인 정신을 익히는 과정은 두 단계로 나뉜다. 바로 이론과 실전이다.
첫째, 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다.
둘째, 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.

깨끗한 코드를 작성하는 방법은 배우기 어렵다. 단순히 원칙과 패턴을 안다고 깨끗한 코드가 나오지 않는다.
고생을 해야 한다. 스스로 연습하고 실패도 맛봐야 한다.
남들이 시도하다 실패하는 모습을 봐야한다. 그들이 넘어지고 일어서는 모습도 봐야 한다.
결정을 내리느라 고민하는 모습, 잘못된 결정으로 대가를 치르는 모습도 봐야 한다.

열심히, 아주 열심히 독파해야 하는 책이다.
읽을 코드가 많다. 코드를 읽으며 무엇이 옳은지 무엇이 그른지 생각을 해야 한다.
모듈을 분해했다 다시 조립하는 과정도 이해해야 한다. 이 모든 활동에는 시간과 노력이 들지만 그만한 값어치가 있다고 생각한다.



이 책은 세 부분으로 나뉘어 진다.

1. 깨끗한 코드를 작성하는 원칙, 패턴, 실기를 설명하는 부분 (코드가 많다고 한다..!)
2. 문제가 있는 코드를 분석하여 문제가 더 적은 코드로 바꾸는 연습을 하는 여러 사례 연구를 소개하는데, 복잡도는 점점더 높아진다. 집중력을 가지고, 코드를 분석하고 이해하며 코드에 가하는 변경과 이유를 납득해야 한다.
3. 마지막은 결말이다. 사례 연구를 통해 코드를 짜고, 읽고, 정리하는 관점에서, 생각한 방식을 묘사한 지식 기반(휴리스틱)을 구축했다고 한다.

시간을 들여 사례 연구를 검토하고, 모든 결정과 단계를 이해하고, 저자들의 입장에 서서 저자들이 생각한 방식을 이해하려 애쓴다면, 이 책에서 제시하는 원칙과 패턴과 실기, 휴리스틱을 자신의 지식으로 만들 수 있게 된다고 말하고 있다.

728x90
반응형
Comments