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

워밍업클럽 3기 - BE 클린코드.테스트코드 1주차 발자국

워밍업클럽 3기 - BE 클린코드/테스트코드 1주차 회고

 

내용 요약

전반적으로 읽기 좋은 코드를 작성할 때 어떤 관점에서 코드를 바라봐야 하는지에 대한 시야를 넓힐 수 있었다.

변수명의 중요성과 목적에 따른 메서드 작성 및 나누기의 중요성을 다시 한번 느낄 수 있는 계기가 되었다.

회고

잘했던 점

미션을 해결할 때 지금까지 실무에서 내가 작성했던 방식들을 되돌아 보며 강의 내용을 내 것으로 소화할 수 있었던 것 같다.

아쉬웠던 점

이번 주에 면접이 많이 잡혀서 해당 면접 준비 때문에 꾸준히 학습을 진행하지 못하였다.

하지만 다음 주도 이어서 면접이 잡혔으면 좋겠다.. ㅋㅋㅋㅋㅋㅋ

면접이 잡혔다고 학습을 미루지 않고, 면접에 대한 준비를 평소에 꾸준히 진행하면서 개인 학습 또한 병행할 수 있도록 노력해야겠다.

 

미션 회고

중요하게 생각했던 것

개인적으로 웹 백엔드 분야에서 리소스 중심으로 소스를 작성하는 것이 중요하다고 생각한다.

좋은 REST API의 필수 요소 중 uri를 리소스 중심으로 디자인 하는 것이 있고 또한 애플리케이션 구조를 고려할 때도 리소스 중심의 패키지 설계를 많이 하기 때문이다.

전반적으로 백엔드 애플리케이션을 설계할 때 많은 요소들이 리소스를 중심으로 이루어져 있다보니, 소스 또한 리소스를 중심적으로 작성하는 것이 중요하다고 생각한다.

 

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

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

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

        return true;
    }

 

내가 제출한 미션 코드이다.

간단한 코드이지만 리소스 중심으로 작성한 코드의 좋은 예시라고 생각한다!

기존의 난해한 if-else로 이루어진 코드 보다 훨씬 읽기 좋고, 추가적인 검증을 작성하기도 편한 구조로 리팩토링 하였다.

만약 Service layer에서 해당 로직을 사용한다면 해당 클래스를 static으로 만들어서 EntityValidator.validateOrder(order); 와 같은 형태로 사용하면 충분히 실무적으로도 깔끔하고 유지보수 용이하게 관리할 수 있을 것 같다.

앞으로도 최대한 실무적인 관점에서 미션들을 풀어나가면 나에게 더욱 더 도움이 될 것 같다.

댓글을 작성해보세요.


채널톡 아이콘