🎁[속보] 인프런 내 깜짝 선물 출현 중🎁

[워밍업 클럽 3기 BE code] 1주차

워밍업 클럽 3기 BE를 시작한 이유

  • 최근 '내가 코드를 잘 작성하고 있는가'란 의문이 들었습니다. 최범균 개발자님의 도메인주도설계시작하기 책을 기반으로 정리하면서 어느 정도는 정리할 수 있었습니다.

  • 추가적인 자료나 실질적인 예제가 있을까 찾다가 readable code와 practical test 강의에 흥미가 생겼고, 우연찮게 워밍업 클럽이 있어서 신청하였습니다.

 

미션2. 추상과 구체

  • 추상: 드립 커피를 만든다.

  • 구체:

- 물을 끓인다.

- 원두를 간다.

- 컵 위에 드리퍼를 올리고, 드리퍼 위에 필터를 둔다.

- 필터 위에 원두 가루를 담고 평탄화 한다.

- 다 끓은 물을 드립 포트에 담고, 원두 가루가 파이지 않도록 조심스럽게 드립 포트의 물을 드리퍼에 가득 채운다.

- 물이 다 빠지면 다시 물을 채운다. 총 세 번 물을 채운다.

 

미션3-1 리팩토링

@Slf4j
public class Order {
    private List<Item> items;
    private Customer customer;

    public boolean validateOrder() {
        if (isEmptyItem()) {
            log.info("주문 항목이 없습니다.");
            return false;
        }

        if (isInvalidTotalPrice()) {
            log.info("올바르지 않은 총 가격입니다.");
            return false;
        }

        if (isCustomerInfoMissing()) {
            log.info("사용자 정보가 없습니다.");
            return false;
        }

        return true;
    }

    private boolean isCustomerInfoMissing() {
        return customer == null;
    }

    private boolean isInvalidTotalPrice() {
        return getTotalPrice() > 0;
    }

    private boolean isEmptyItem() {
        return items == null || items.isEmpty();
    }

    private int getTotalPrice() {
        return items.stream()
                .map(Item::getPrice)
                .reduce(0, Integer::sum);
    }
}

class Item {
    private int price;

    public int getPrice() {
        return price;
    }
}

class Customer {}

 

미션 3-2 SOLID

  • SRP(Single Responsibility Principle, 단일 책임 원칙): 하나의 클래스는 하나의 책임만을 가져야 한다. 해당 책임 이외의 이유로 인하여 변경되어서는 안된다.

  • OCP(Open Closed Priciple, 개방 폐쇄 원칙): 확장은 열려있고, 수정에는 닫혀있다. 기능 변경과 확장에 대해서는 유연하도록 구현해야 한다.

  • LSP(Listov Substitution Priciple, 리스코프 치환 원칙): 자식 타입은 부모 타입으로 교체 가능하다. 자식은 상속한 부모의 기능이 의도하는 방향대로 동작해야 한다.

  • ISP(Interface Segregation Principle, 인터페이스 분리 원칙): 클라이언트가 자신이 이용하지 않는 인터페이스에 의존하지 않도록 적정한 수준의 메서드를 가진다.

  • DIP(Dependency Inversion Principle, 의존 역전 원칙): 인터페이스에 의존하며 유연하게 변경할 수 있다.

 

이번 주 소감

  • 생각보다 바쁘고 강의 양도 많아 여유 있게 진행하지는 못하고 있다.

  • 그래도 한 달 간 열심히 해서 잘 마무리해야지^^

 

댓글을 작성해보세요.


채널톡 아이콘