[Clean Code] 클린 코드(Clean Code) 5장 '형식 맞추기' 요약

jiveloper·2023년 11월 19일
0

Clean Code

목록 보기
5/6
post-thumbnail

5장 형식 맞추기

뚜껑을 열었을 때 독자들이 코드가 깔끔하고, 일관적이며, 꼼꼼하다고 감탄하면 좋겠다. 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다.


형식을 맞추는 목적

무엇보다 먼저, 한 가지를 분명히 짚고 넘어가자. 코드 형식은 중요하다! 너무 중요해서 무시하기 어렵다. 코드 형식은 의사소통의 일환이다.

오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다.

맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.

👩🏻‍💻 💡 끼어들기
너무너무 공감한다. 나도 코드를 작성할 때, 유지보수를 고려하여 누군가가 내 코드를 보았을 때 해석이 가능하고 수정이 가능할 수 있도록 작성하려고 노력한다.
코드 품질을 생각하는 것은 나중이 될 수 없다. 무조건 코드를 작성할 때 고려해야한다!

그렇다면 원활한 소통을 장려하는 코드 형식은 무엇일까?



적절한 행 길이를 유지하라

세로 길이부터 살펴보자. 소스 코드는 얼마나 길어야 적당할까? 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다.

신문 기사처럼 작성하라

아주 좋은 신문 기사를 떠올려보라. 독자는 위에서 아래로 기사를 읽는다. 최상단에 기사를 몇 마디로 요약하는 표제가 나온다.

소스 파일도 신문 기사와 비슷하게 작성한다. 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다.
소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다.

👩🏻‍💻 💡 끼어들기
신문기사로 아주 좋은 예시를 들어주었다. 코드는 위에서부터 아래로 책 읽듯이 술술 읽힌다면 그 코드는 정말 잘 작성된 코드라고 생각한다.

개념은 빈 행으로 분리하라

거의 모든 코드는 왼쪽에서 오른쪽으로 그리고 위에서 아래로 읽힌다. 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다.

생각 사이는 빈 행을 넣어 분리해야 마땅하다. 빈 행은 새로운 개념을 시작한다는 시각적 단서다.

수직 거리

서로 밀접한 개념은 세로로 가까이 둬야 한다.

변수 선언

우리가 만든 함수는 매우 짧으므로 지역 변수는 각 함수 맨 처음에 선언한다.

개념의 유사성

어떤 코드는 서로 끌어당긴다. 개념적인 친화도가 높기 때문이다. 친화도가 높을수록 코드를 가까이 배치한다.

친화도가 높은 요인
1. 한 함수가 다른 함수를 호출해 생기는 직접적인 종속성
2. 변수와 그 변수를 사용하는 함수
3. 비슷한 동작을 수행하는 일군의 함수



가로 형식 맞추기

프로그래머는 명백하게 짧은 행을 선호한다.

들여쓰기

소스 파일은 윤곽도와 계층이 비슷하다. 계층에서 각 수준은 이름을 선언하는 범위이자 선언문과 실행문을 해석하는 범위다.

클래스 내 메서드는 클래스보다 한 수준 들여쓴다. 메서드 코드는 메서드 선언보다 한 수준 들여쓴다. 블록 코드는 블록을 포함하는 코드보다 한 수준 들여쓴다.

프로그래머는 이런 들여쓰기 체계에 크게 의존한다. 왼쪽으로 코드를 맞춰 코드가 속하는 범위를 시각적으로 표현한다. 들여쓰기한 파일은 구조가 한눈에 들어온다.



팀 규칙

좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다. 스타일은 일관적이고 매끄러워야 한다. 한 소스 파일에서 봤던 형식이 다른 소스 파일에도 쓰이리라는 신뢰감을 독자에게 줘야 한다.




-알라딘 eBook <클린 코드 Clean Code> (로버트 C. 마틴 지음, 이해영.박재호 옮김) 중에서

profile
👩🏻‍💻 Clean Code와 Refactoring에 관심이 많은 개발자 입니다.

0개의 댓글