Search
🛠️

객체지향 생활 체조

태그
객체지향 생활 체조
객체지향 생활 체조는 깨끗한 코드를 작성하기 위한 가이드라인 중 하나 입니다. 이 체조는 로버트 C. 마틴클린 코드 라는 책에서 제시된 원칙들을 기반으로 합니다.
목차

1. 한 메서드에 오직 한 단계의 들여쓰기만 한다.

반복문, 조건문 등을 중첩하지 않도록 주의합니다.
// 나쁜 예 for (Item item : items) { if (item.isValid()) { // 처리 } } // 좋은 예 items.stream() .filter(Item::isValid) .forEach(this::processItem);
Java
복사

2. else 예약어를 쓰지 않는다.

다형성을 이용하거나, 조건문이 반환되도록 메서드를 분리합니다.
// 나쁜 예 if (condition) { // 처리 A } else { // 처리 B } // 좋은 예 if (condition) { // 처리 A return; } // 처리 B
Java
복사

3. 모든 원시값과 문자열을 포장한다.

원시값이나 문자열을 객체로 만들어 해당 객체에서 처리할 수 있도록 합니다.
public class Age { private final int age; public Age(int age) { if (age < 0) throw new IllegalArgumentException("Age cannot be negative"); this.age = age; } // 나머지 메서드 }
Java
복사

4. 한 줄에 점을 하나만 찍는다.

메서드 체이닝을 지양하고, 객체에 메시지를 보내서 정보를 얻습니다.
// 나쁜 예 order.getItems().get(0).getName(); // 좋은 예 order.getFirstItemName();
Java
복사

5. 줄여쓰지 않는다.(축약 금지)

의미를 명확하게 전달하기 위해 이름을 줄여쓰지 않습니다.
예: userAuth 대신 userAuthentication 을 사용합니다.

6. 모든 엔티티를 작게 유지한다.

클래스나 메서드 크기를 작게 유지하도록 노력합니다.

7. 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.

클래스는 가능한 한 단일 책임만을 가져야 합니다.
예: UserUserAddress 두 클래스로 분리합니다.

8. first-class collection을 사용한다.

컬렉션을 포함하는 클래스는 컬렉션만을 필드로 가져야 합니다.
public class Users { private final List<User> users; // 나머지 메서드 }
Java
복사

9. getter/setter/property를 쓰지 않는다.

객체의 상태를 직접 노출시키는것 대신 객체에 메세지를 보냅니다.
// 나쁜 예 user.getName(); // 좋은 예 user.printName();
Java
복사