-
월간 멘토링 - 2개월차학습로그 2022. 2. 28. 23:15
진행기간
2022년 01월 31일 ~ 2022년 02월 27일 학습로그
📝 멘토링 6주차 ( 01월 31일 ~ 02월 06일 )
인수테스트 미션 2단계 , 3단계
- 정확한 값을 요할때는( ex) 금액, 값 ) BigDecimal 사용하기
public class Product { private BigDecimal price; }
- 인수테스트
https://dodop-blog.tistory.com/289
📝 멘토링 7주차 ( 02월 07일 ~ 02월 13일 )
인수테스트 미션 4단계, 인수테스트와 TDD 1단계
- IllegalStateException vs IllegalArgumentException
https://dodop-blog.tistory.com/290
📝 멘토링 8주차 ( 02월 14일 ~ 02월 20일 )
인수테스트와 TDD 2단계 완료 및 3단계
- 연관관계의 id를 직접 비교하기보다 연관관계의 객체에게 메세지 보내기
// NOT GOOD Member.getId() == id // OK Member.isIdEqual(id) public class Member{ public boolean isIdEqual(Integer id){ return this.id == id ; } }
📝 멘토링 9주차 ( 02월 21일 ~ 02월 27일 )
인수테스트와 TDD 4단계
- 비로그인에 대한 처리 (Controller에서AuthenticationPrincipal 어노테이션의 옵션 required값 설정하기)
// @AuthenticationPrincipal required 옵션 만들기 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface AuthenticationPrincipal { boolean required() default true; } public class AuthenticationPrincipalArgumentResolver implements HandlerMethodArgumentResolver { //... @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { String credentials = AuthorizationExtractor.extract(webRequest.getNativeRequest(HttpServletRequest.class)); boolean required = parameter.getParameterAnnotation(AuthenticationPrincipal.class).required(); return authService.findMemberByToken(credentials, required); } } // 사용 @GetMapping public ResponseEntity<PathResponse> findShortestPath(@AuthenticationPrincipal(required = false) LoginMember loginMember, @RequestParam("source") Long source, @RequestParam("target") Long target) { return ResponseEntity.ok(pathService.findShortestPath(loginMember, source, target)); }
- service에서 다른 service 의 메서드 활용하기 : 중복되는 작성되는 메서드를 다른 서비스에서 사용할 수 있도록 설정하기
https://dodop-blog.tistory.com/303
- 테스트 어플리케이션 컨텍스트 : Mock 객체의 경우 생성비용이 많이 들기 때문에 생성된 Mock은 재사용하도록 하여 생성 비용을 줄인다.
- CascadeType.REMOVE vs orpahnRemoval = true
https://dodop-blog.tistory.com/295
- cascade=”all-delete-orphan” was no longer referenced by the owning entity instance 오류
https://dodop-blog.tistory.com/294
- @ParameterizedTest 사용시 java.lang.NoSuchMethodException 예외
https://dodop-blog.tistory.com/292
🌱 멘토링 2개월차 학습 후기
이번달에는 인수테스트에 대해서 학습하고 인수테스트와 TDD미션을 진행하게 되었다. 인수테스트가 무엇이며 어떻게 작성해야하는지 모르고 있었기 때문에 미션을 진행하면서 이에 관련하여 자세히 학습 할 수 있있다. 지난달 월간 멘토링 내용과 비교해보니, PR보낸 횟수, 블로그 글 작성수가 줄어든 것을 보며 학습량이 매우 부족했고 진행속도도 느려진 것을 확인할 수 있었다. 추가적으로 인수테스트와 관련하여 학습한 내용도 블로그에 작성해야 한다. ( 나태지옥 ! ) 😣
'학습로그' 카테고리의 다른 글
월간 멘토링 - 4개월차 (0) 2022.04.28 월간 멘토링 - 3개월차 (0) 2022.04.28 2개월차 모의면접 (0) 2022.03.20 월간 멘토링 - 1개월차 (0) 2022.02.28 프로젝트 공방 멘토링 (Feat. NextStep) (0) 2022.02.28