> For the complete documentation index, see [llms.txt](https://ssosso.gitbook.io/study/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ssosso.gitbook.io/study/dev-build-up/undefined/2..md).

# 2. 코드단위를 짧게하라

## 가이드라인

* 코드 단위는 **15라인**을 넘어가지 않게 작성
* 단위(메서드, 생성자)는 **15라인**을 넘지 않게 하고, 큰 단위는 15단위 이하의 작은  단위로 나눔
* `작은 단위`는 **이해**하고, **테스트**하고, **재사용**하기 쉬워 **유지보수성을 높임**

> 컴퓨터가 이해할 수 있는 코드는 바보라도 짤 수 있다.
>
> 유능한 프로그래머는 **인간이 이해할 수 있는 코드를 짠다.**
>
> \- 마틴 파울러

### **1. 필요성**

단위를 작게하면 테스트, 분석, 재사용 모두 쉬워지는 장점!!

#### **짧은 단위는 테스트하기 쉽다.**

* 보통 한 가지일만 한다.
* 한 가지 기능만 테스트하면 된다

#### **짧은 단위는 분석하기 쉽다.**

* 긴 단위보다 더 빨리 읽고, 분석할 수 있다
* 수정시에 차이점이 드러남

#### 짧은 단위가 재사용하기 쉽다.

* 긴 단위는 짧은 단위의 조합으로 이루어진다
* 이런 긴 단위는 짧은 단위에 비해 기능이 집중된 편
* 이런 기능을 재사용하기는 어렵지만, **짧은 단위는 좀 더 일반적인 형태 이므로 다른 요건에 이식이 잘되거나 재사용될 가능성이 높음**
* 코드 재사용은 전체적인 코드의 양을 줄이는데 이바지 함

&#x20;

### 2. 적용가이드

메서드 추출

메서드를 메서드 객체로 대체 (클래스 분할)

구체적이고 적절한 이름(메서드명)으로 주석을 대체할 수 있다.

&#x20;
