워밍업 클럽 4기 - 4주차 발자국
이번 주는 어떻게 학습 하고 미션을 수행했는가? 이번 주는 마지막 주여서 약간 여유로웠습니다. 잘 하려고 하는 것보단, 저의 최선을 다해서 학습했습니다. 이번 주에 학습했던 섹션은 나은 테스트를 작성하기 위한 구체적 조언 섹션이었습니다. 이 섹션을 들으면서 평소 테스트 코드를 작성하면서 위의 상황을 고려했는지, 한번 되돌아보았습니다. 주로 테스트 간의 독립...
- 좋아요수
- 0
이번 주는 어떻게 학습 하고 미션을 수행했는가? 이번 주는 마지막 주여서 약간 여유로웠습니다. 잘 하려고 하는 것보단, 저의 최선을 다해서 학습했습니다. 이번 주에 학습했던 섹션은 나은 테스트를 작성하기 위한 구체적 조언 섹션이었습니다. 이 섹션을 들으면서 평소 테스트 코드를 작성하면서 위의 상황을 고려했는지, 한번 되돌아보았습니다. 주로 테스트 간의 독립...
@Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 의 차이를 한번 정리해 봅시다. @Mock 단순한 가짜(mock)객체를 만듭니다. 테스트할 때 객체의 행위를 제어할 수 있습니다. @MockBean SpringBoot에 등록된 Bean을 실제 객체가 아닌 mock 객체로 등록합니다. @Spy 반가짜 객체입니다. 일부 메서드...
Controller Layer 특징 클라이언트와 통신을 담당하는 계층입니다. 테스트 방법 @WebMvcTest 를 사용하여 Controller Bean만 등록한 뒤 테스트 합니다.(Service Layer 부터는 mock을 사용합니다.) Request Body의 값이 유효한지를 체크합니다. Service Layer 특징 핵심 비즈니스 로직을 수행하는 계층입...
학습편 무엇을 학습했는가? 테스트 코드에 관한 관점, 테스트 코드 범위에 대한 생각을 학습했습니다. 개인적으로 좋았던 부분은 JPA를 사용하면서 코드 자체가 JPA에 귀속되어 Hexagonal 아키텍처가 등장한 배경을 설명해주신 부분이었습니다. 어떻게 학습했는가? 이전 강의(Readable Code)의 경우에는 강의에서 치는 코드를 같이 쳐가면서 학습했습니...
학습 부분 무엇을 배웠는가?(학습 중 아하 모먼트 위주) 1. 인터페이스 이름 짓기 섹션 7의 48강 리팩토링(3) - 관점의 차이로 달라지는 추상화에서 인터페이스 네이밍에 관해서 아래와 같은 기준이 있습니다. - 어떤 데이터를 가져와야 하는가? - 데이터를 어디에서부터 어떻게 가져올 것인가? 이 부분이 인상 깊었는데, 인상 깊었던 이유는 제가 인터페이스를...
학습 회고 무엇을 학습했는가? 진도로는 섹션 4 SOLID의 중간까지 수강을 마쳤습니다. 잘 읽히는 코드(Readable Code, 읽을 때 뇌를 덜 쓰는 코드)가 어떤 코드를 의미하는지를 배웠습니다. early return 부분이 인상 깊었습니다. 메서드 추출을 통해 early return을 적용한다면, 코드의 로직이 깔끔해지겠다는 인사이트를 얻었습니다....
1. 코드 리팩토링 public boolean validateOrder(Order order) { if (order.isEmpty()) { log.info("주문 항목이 없습니다."); return false; } if (order.hasZeroOrNegativeTotalPrice()) { log.info("올바르지 않은 총 가격입니다."); return ...
유튜브 참고 링크( https://youtu.be/C_3w8UVUCKo?si=P4rySBHQgQMlKmWS&t=149 ) 추상: 미식 축구의 쿼터백이 패스를 던져서 46야드를 전진하고 터치다운을 한다. 구체: 1. 빨간 팀(공격팀)의 쿼터백이 공을 받으면서 플레이가 시작된다. 2. 플레이가 시작되자 하얀 팀(수비팀) 중 왼쪽에서 4명, 오른쪽에서 1명이 쿼...