[도서 리뷰] 코드 작성 가이드

본 게시물은 길벗 출판사 24차 개발자 리뷰어로 선정되어 도서를 제공받아 작성하였습니다.

 

정말 운이 좋게도 23, 24차 연속으로 길벗 개발자 리뷰어로 선정되어 도서를 리뷰해 볼 수 있었습니다!🥺

이번 도서는 e-book으로 제공받아 읽어보았습니다😄

 

코드 작성 가이드(길벗)

 

본 도서는 아래 목차를 기반으로 설명이 이뤄집니다.

  • 가독성 높은 코드를 위한 요건과 주의점, 활용하기 쉬운 프로그래밍 원칙
  • 네이밍 방법 및 클래스간의 의존 관계까지 실무에서 어떻게 적용할지?
  • 코드 리뷰의 진행 방법과 가이드 제시
  • 나쁜 코드, 좋은 코드를 예시로 어떻게 개선하는지
  • 코틀린 위주의 설명이지만, 객체 지향 언어 사용 경험이 있다면 이해할 수 있도록 구성

 

파이썬을 이용한 어플리케이션 개발 서비스를 제작하는 프로젝트를 진행중에 있습니다.

제대로 된 개발 프로젝트는 이번이 처음인데요 😅

여러명과 함께 협업하며 개발을 진행하고 작업물을 공유하다보니 코드 컨벤션을 설정하는 것 부터, 클린코드를 작성하기 위한 공부가 꼭 필수적이라는 생각을 하게 된 것 같습니다.

 

 

"코드 작성 가이드" 도서는 현직 라인 개발자인 이시가와 무네토시가

코틀린 언어를 위주로, 클린코드를 작성하기 위한 방법들을 제시해준 도서입니다. 코틀린 언어를 예제로 설명이 기술되어 있지만,

전체적인 틀을 염두해두며 읽는다면, 클린코드 작성에 있어 언어 종류와 상관없이 좋은 코드를 작성할 수 있는 팁을 얻을 수 있다고 생각합니다 ㅎㅎ

코드 작성가이드 목차

 

목차는 위와 같습니다.

2챕터에서는 변수 / 클래스의 네이밍 규칙

3챕터에서는 주석과 문서화

4챕터에서는 상태

5챕터에서는 함수

6챕터에서는 의존

7챕터에서는 코드리뷰에 대해 설명합니다.

 

목차에서도 볼 수 있듯이 꼭 코틀린 언어에만 한정된 것이 아니라,

개발, 혹은 복잡한 코드를 작성해야만하는 많은 상황에서 유용하게 접목시킬 수 있는 정보들이 포함되어 있습니다.

 

가독성 높은 코드를 작성하기 위한 요건

 

이번에 개발 프로젝트를 진행하면서 느낀 것이,

 

저는 개발을 하는데 있어 기능별로 클래스로 계속 쪼개고 싶어하는(..?) 습관이 있는 것 같습니다.

제 나름의 코드 가독성을 높이고 싶은 마음에서 함수와 코드를 세분화하는 것이지만

오히려 너무 쪼개는 것이 전체구조를 파악하기 어려운 코드가 될 수 있다는 것이 당연하지만 또 새롭게 와닿으면서

 

함수의 기능을 쪼개는 것과 가독성을 높일 수 있는 정도의 적당한 trade-off 관계의 threshold를 찾는 것이 쉽지만은 않겠다는 생각을 하게 되었습니다.

 

구조화된 코드

 

가끔 어떨 때 보면 indentation, 띄어쓰기 등과 같은 코드의 외형에 집착하는 경우도 있었던 것 같습니다.

깔끔한 외형은 당연히 코드의 가독성을 높여주지만, 책에서는 외형 뿐 아니라 모듈의 구조에 더욱더 집중해야한다는 것을 말해줍니다.

 

논의 빈도

 

팀프로젝트를 경험해 본 개발자라면 공감할만한 문장들이라고 생각됩니다. 

많은 기업들에서 채용을 위한 자기소개서 문항으로 소통과 협력이 강조되는 경험들을 요구합니다.

바로 이 때문이 아닐까 하는 생각이 듭니다.

 

해당 도서를 리뷰하면서 파이썬 클린코드 작성 에 관한 도서도 함께 읽어보았는데, 파이썬의 대표적인 코드 컨벤션 규칙인 PEP-8을 굳이 따르려고 하지 않아도 좋다는 말이 적혀있습니다. 결국 중요한 것은 협력하고 함께 개발해나갈 개발자들간의 소통의 질을 높이기 위해 코드를 구조화하고, 가독성을 높이기 위해 노력하는 것이니까요.

 

본 도서에서도 논의 빈도를 강조한 이유가 그 때문이라고 생각됩니다.

제가 하이라이트 친 부분처럼, 구현하기 전에 설계에 대해 미리 논의한다면 뒤늦게 대처하며 복잡해지는 상황들을 미연에 방지하고

결과적으로 생산성을 높일 수 있는 것이겠죠.

 

저도 프로젝트를 진행함에 있어서 가장 1순위로 염두해두는 것이 함께 개발하는 과정에 대한 꾸준한 논의인데,

설계에서 어긋날 수 있는 부분들을 미리 구조화하고 규칙화하여 문제점들을 미리 방지하여 효율성을 극대화 한다는 점이 가장 공감되는 부분이었던 것 같습니다 ㅎㅎ

 

대표적인 프로그래밍 원칙

 

코드 컨벤션 규칙을 지정하는 것 부터,

함께 개발을 하면서 설정해나가야할 프로그래밍 규칙을 지정하는데 가이드가 되는 기본 원칙들이 있습니다.

위처럼 책에서는 다소 지나치게 적용하더라도 비교적 부작용이 적은 대표적인 프로그래밍 원칙 5가지에 대해 설명합니다.

원칙에 대한 설명부터 방법에 대한 설명까지 쭉 이어지기에, 참고하면 좋은 예시들을 잘 보여주고 있다고 생각되었습니다.

 

2장 네이밍 규칙

 

2장 네이밍 규칙에서는 네이밍에 사용되는 영문법부터 문법을 무시하고 네이밍을 하는 이유,

어떤 기준으로 네이밍 단어들을 정해야하는지 등을 설명해줍니다.

 

인수 이름 설정 예시

 


앞서 목차 설명에서처럼,

 

챕터별로 어떤 분야에 코드 규칙을 적용해야하 하는지 구분하여 설명하고 있기 때문에, 필요한 부분들만 골라서 읽으며 스터디를 해도 좋을 것 같다는 생각이 들었습니다. 또 마지막 챕터에서는 앞선 챕터에서 배운 내용들을 바탕으로 올바른 코드리뷰를 작성하는 방법 또한 제공되고 있으니, 코드 리뷰에 관심이 있다면 마지막 챕터도 눈여겨 보시는 것이 좋을 것 같습니다.

 

저는 아직 많이 배워나가는 부분이기도 하고

제가 짠 코드가 당연히 완벽하지도 않고 오히려 부족함 투성이라는 생각이 항상 있어 코드 리뷰를 받는 것에 대해 항상 부끄러움(?) 비슷한 것이 있었는데 피드백을 통해 성장할 수 있는 부분과,

 

제가 보지 못하는 부분들에 대한 부족한 부분을 깨달을 수 있다는 점에 코드 리뷰의 중요성에 대해 더 깨닫게 된 것 같습니다😅

 

혼자 스터디하며 읽어보기에도 너무 좋은 책이니,

코틀린언어라는 장벽에 포기하지마시고, 효율적이고 생산성이는 개발을 위해 공부하시는 분이라면 적극적으로 읽어보시라고 추천드리고 싶습니다.😄