728x90

 

 팀 프로젝트를 진행하던 중에 자주 들었던 생각이 있습니다. ‘내가 제대로 코드를 짜고 있는 걸까?’ 기능적으로는 원하는 방향으로 작동했기 때문에 문제는 없었지만 팀과 같이 협업할 때와 유지보수를 해야 할 때 문제가 없을까 하는 의문도 같이 들었습니다. 이런 의문을 해결하고자 찾아보았던 책이 클린 코드와 마틴 파울러의 ‘리팩토링’이란 책이었습니다. 다른 주제를 다루는 것 같으면서도 비슷한 내용 같아 무슨 책을 먼저 구매할까 고민하다가 표지가 마음에 들어 클린 코드를 먼저 구매했습니다.

 

 다 읽은 후에는 팀 프로젝트를 마무리할 즈음에 구매한 책이라 설계 단계부터 적용을 하지 못해 아쉽다는 생각이 들었습니다. 작게는 이름을 정하는 규칙부터 크게는 어떻게 구조적으로 코드를 짜야 하는지까지 알려주는 책입니다. 그리고 실제로 저자가 코드를 수정하고 어떤 사고의 과정을 거쳐 그렇게 수행했는지 알려주기 때문에 이해하는데 더욱 쉬웠습니다. 저자가 많은 원칙을 강조하는데 그중 단일 책임 원칙과 OCP 그리고 TDD가 기억에 남습니다. TDD는 원칙은 아니지만 일단 ㅎㅎ.

 

 단일 책임 원칙이 기억나는 이유는 프로젝트를 진행하면서 클래스를 제대로 구분하지 않아 한 가지가 아닌 여러 이유에서 같은 클래스를 수정한 경험 때문에 그렇습니다. 팀 프로젝트를 리팩토링 할 예정인데 거기서 이 원칙에 알맞게 수정을 해봐야겠습니다. OCP는 추상화를 잘 사용하는 방법인 것 같아서, 그 방법을 자유자재로 사용하고 싶은 마음에 기억에 남습니다. 하지만 이 방법을 잘 사용하려면 추상화 단계를 구분하여 클래스나 모듈을 구성해야 하는데, 책에 쓰여있는 것처럼 딱 봐서는 추상화 단계를 구분하기가 어려워 이해하는데 시간이 좀 걸릴 것 같습니다. TDD는 책에서 정말로 강조를 많이 하기 때문에 궁금함이 생겼습니다. ‘왜 이렇게 강조를 할까?’라는 생각이 들었는데 테스트 코드를 작성하는 방법도 찾아보고 해서 적용해봐야겠습니다.

 

 그런데 책이 이해하기 쉽다고는 했지만 제가 모르는 원칙이나 개념들이 많아서 그런 단어들이 나오면 찾아보면서 읽느라 좀 오래 걸리긴 했습니다. 단어를 찾아봐도 정확히 이해하지 못하는 부분들도 있었습니다. 때문에 일정 주기를 두고 계속해서 읽어 봐야 할 책 같습니다.

 

 그리고 공감하기 어려운 부분도 있었습니다. 책에서 클래스나 변수, 메서드의 이름을 짓는 부분은 영어를 사용하는 문화에서는 바로 이해해도 한국에서는 바로 와 닿기는 힘들겠다 생각했습니다. 예를 들어 함수가 하는 일을 잘 표현하도록 서술적인 이름을 사용하라 하면서 includesetupAndTeardownPage라는 이름의 함수를 짓습니다. 근데 한국어로 하면 ‘설정과 해제 페이지를 넣어라’라는 뜻인데 이게 영어로 작성되어 있을 경우 영어를 한 번 인식하고 한국어로 해석하는 과정을 거치기 때문에 책에 작성된 것처럼은 공감하기 어려웠습니다.

 

 하지만 개발에서는 영어가 주요 언어이고 많은 공식 문서나 커뮤니티 또한 영어를 사용하기 때문에 제가 공부를 해야겠다고 생각이 들었습니다. 허헣..

728x90

'잡담 > 리뷰' 카테고리의 다른 글

[독후감] CODE  (0) 2022.10.02

+ Recent posts