inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[워밍업클럽3기] 클린코드-박우빈 발자국 1주차

정예은
1

학습내용

섹션1~4📝

 

 

 

학습정리 링크


👣회고👣

이번 주는 SOLID 원칙을 중심으로 코드 리팩토링을 진행하며, 보다 견고하고 유지보수하기 쉬운 구조를 고민하는 시간을 보냈다.

 

💡 잘한 점
메서드 추출을 통해 가독성을 높이고 코드의 역할을 명확히 함
기존 코드를 무조건 변경하기보다는, 확장 가능성을 고려하면서 구조를 잡아나감
인터페이스와 추상 클래스의 활용을 고민하며 유연한 설계를 연습함

 

아쉬운 점

🎯 다음 주 목표

 

 


 

📢미션📢

Day02

추상 : 눈사람을 만든다 구체 :

  1. 대기중에 떠다니는 먼지가 핵이 되어, 이 핵을 중심으로 수증기가 응결해가며 형성되는 결정체의 집합체를 손으로 뭉친다

  2. 2덩이로 둥글게 뭉쳐서 몸통과 머리로 붙여준다

  3. 주변에 굴러다니는 , 자연에서 산출되는, 생물이 아닌 단단한 고체 물질을 눈과 코에 붙여준다

 

 

Day04

SOLID원칙

  1. 단일책임원칙

클래스는 하나의 책임만 가져야 한다.

 

  1. 개방 폐쇄 원칙

기존 코드를 많이 변경하지 않고 확장할 수 있도록 설계하기 추후 유지보수나 조건들이 추가로 생겨날때 당황하지 않도록 너무 상수로만 값이나 데이터 정의 내리지 않기

  1. 리스코브 치환 원칙

자식은 부모를 대체해서 일할 수 있고, 부모는 자식을 대체할 수 없다. 부모 클래스를 사용하는 곳에 자식 클래스를 넣어도 문제가 없어야 함

  1. 인터페이스 분리 원칙

하나의 커다란 인터페이스 사용하는게 아니라, 여러개의 인터페이스로 분리하기 하나의 인터페이스에는 하나의 메서드만 , 관련된 메서드만 넣어야함

  1. 의존성 역전 원칙

구체적인 구현 클래스가 아니라, 인터페이스나 추상 클래스에 의존 하도록 설계

 


public boolean validateOrder(Order order) {
    if (isInvalidOrder(order)) {
        return false;
    }
    return true;
}

private boolean isInvalidOrder(Order order) {
    if (order.doesNotHaveAnyItem()) {
        log.info("주문 항목이 없습니다.");
        return true;
    }
    if (order.doesNotHaveCustomerInfo()) {
        log.info("사용자 정보가 없습니다.");
        return true;
    }
    if (order.hasNegativeTotalPrice()) {
        log.info("올바르지 않은 총 가격입니다.");
        return true;
    }
    return false;
}

 



👣회고👣

미션을 해결하면서 "추상화"의 중요성을 몸소 체감한 한 주였음
특히, 눈사람 만들기 예제를 통해 구체적인 행동을 추상화하는 연습을 했고, 이를 코드에도 적용하려 노력했다.

 

백엔드 워밍업클럽 워밍업클럽3기 박우빈 백엔드 백엔드스터디 지뢰찾기 클린코드 리팩토링

답변 1

0

장태근

안녕하세요 예은님 🙂

학습 정리와 회고가 나눠져 있어 더욱 재밌게 읽었습니다.

(정리에도 힘써주셔서 놀랐습니다)

저도 강의를 수강할 때 비슷한 고민을 해서 공감되네요.

결국 끝맺음을 맺어야 다음을 확장할 수 있더라고요.

완주하시고 아쉬움이 작은 성공으로 전환되길 바랍니다.

감사합니다.