[개발 도서] 나도 이제 '클린코드' 완독자

자자쟌·2023년 10월 27일
1

Book

목록 보기
2/2
post-thumbnail

개발 도서로는 아주아주아주아주 유명한 클린코드를 완독하였다. 개발 독서 스터디를 통해서 이 책을 읽게 되었는데 개발 독서 스터디가 아니었다면 다 읽는 데에 훨씬 많은 시간이 소요되었을 것 같다.
이번 포스팅의 영광은 네이버 개발자를 2명이나 배출한 "명문 개발 독서 스터디"에 돌리도록 하겠습니다. 🤓👍

이때까지 독서 스터디에서 읽은 책은 객체 지향 시스템의 설계 관점에서 정보를 전달하는 내용이 많았다. 그래서 이번에는 좀 더 세부적인 코드 레벨의 내용을 다루는 책을 읽어보고 싶었다.

스터디원들도 모두 이 의견에 공감했고 스터디 내에서 만장일치로 동의를 얻은 클린 코드 책을 다음 책으로 선정해 읽게 되었다.

클린 코드 훑어보기

클린 코드는 한 챕터 내에 소주제의 갯수가 많고 하나의 소주제를 가지고 가는 흐름이 짧기때문에 책 전체적인 내용을 훑는다는 것은 의미가 크게 없을 것 같아서 기억에 남는 몇가지만 정리해보려고 한다.
(세부적인 내용은 아래 첨부한 노션 정리 링크를 참고해주세요.)

보이스카우트 규칙

캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.

이것이 바로 보이스카우트 규칙이다. 이것을 코드에 적용해보자면 처음보다 더 깨끗한 코드로 만들고 떠나라 정도가 되겠다. 보이스카우트 규칙만 지켜도 시간이 지날수록 코드는 점점 더 좋아진다. 보이스카우트 규칙은 책의 1장에서 소개되는 내용인데 뒤로 가서 보이스카우트 규칙을 지키기 위한 추가 내용들이 나오니 기억해두는 것이 좋다.
우리 모두 보이스카우트 규칙을 지키는 개발자가 되도록 하자!!

자료 추상화

변수를 private으로 선언하더라도 각 값마다 조회 함수 설정 함수를 제공한다면 구현을 외부로 노출하는 셈이다.
변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다.

이 부분은 처음 객체지향을 접했을 때 자주 했던 실수이다. 그래서 더 공감이 갔다.
처음 자바를 배울 당시 기계적으로 변수를 private으로 설정하고 getter, setter 만들었다. 함수로 객체들과 메시지를 주고 받아야 한다고 하는 법칙을 무조건적으로 따르면서 속으로는 이럴 거면 왜 굳이 변수를 private으로 선언하는 거지? 라는 의문을 품었었다.
그 의문이 사실은 맞았던 것이다.
getter, setter는 private으로 선언된 멤버변수를 public으로 변경한 것이나 다름 없고 객체 지향의 반대 방향으로 걸어가는 길이다.

이제는 getter, setter가 아닌 세부 구현이 캡슐화된 메서드를 통해서 메시지를 주고받으며 객체들과 협력해야 한다는 것을 안다.

읽기 쉬운 코드

새 코드를 짜면서 우리는 끊임없이 기존 코드를 읽는다.
주변 코드가 읽기 쉬우면 새 코드를 짜기도 쉽다.

읽기 쉬운 코드를 짜야 한다 라는 말은 너무 당연하게 들려서 깊게 와닿지 않았었다. 당연히 읽기 어려운 코드보다는 쉬운 코드가 나으니까!
위 문구는 그런 나에게 읽기 쉬운 코드를 짜야하는 강력한 이유를 알려주었다. 읽기 쉬운 코드를 짜야 하는 것은 동료들을 위한 것도 아니고 사용자를 위한 것도 아니고 바로 나 자신을 위한 것이었다!

미래의 나 자신을 위해 그리고 이 코드를 읽을 모든 사람들을 위해 읽기 쉬운 코드를 짜는 데에 노력을 기울여야 한다는 것을 깨달았다. 그리고 과거의 이러한 노력들이 현재 새 코드를 짜는 데에 영향을 미친다는 것만으로 읽기 쉬운 코드를 짤 이유는 충분하다.

클린 코드를 읽는 법

클린 코드를 읽다보면 아마 다들 한 번쯤은 들어봤거나 이미 알고 있는 내용들도 많이 접할 것이다. (기본적인 내용들도 한 번씩 모두 짚어준다.)
그리고 큰 하나의 주제를 전달하는 것이 아니라 코드를 작성할 때 좋은 팁을 알려주는 느낌에 가깝기 때문에 몰랐던 부분들이 나오면 메모장에 조금씩 메모하면서 읽는 것이 좋다고 생각한다!

클린 코드를 읽으면서 개인적으로 노션에 정리한 내용입니다. 감사합니다!!
노션 링크

profile
읽자! 쓰자! 배우자!

0개의 댓글