1. 코딩 테스트 입문
인덱스 바꾸기 :
새로 배운 기능
StringBuilder 클래스의 SetCharAt 메서드, Collection 클래스의 Swap 메서드, String 클래스의 Join 메서드
2. 테스트 코드
통합 테스트와 단위 테스트
Mock 객체 생성과 활용
강의 중 만난 오류 : Jwt 토큰 값이 Null이다 -> 로그 : JwtUtil이 noArgConstructor를 가지고 있어야 한다?
코드 스니펫을 그대로 따라해도 발생하는 오류
1) JwtUtil에 기본 생성자 어노테이션을 추가하고 기존의 @RequiredConstructor를 삭제후 테스트 실행
-> Key argument cant be null + 로그에서 오류에 break point를 설정할 수 있어 편리하게 디버깅
-> sun.security.util.PolicyUtil 클래스의 getKeyStore 메서드의 keyStoreName 인스턴스가 null값이다
: 이후는 어려워서 패스
1-1) 코드를 새로 받고 다시 break point를 설정 후 디버깅했더니, 이번엔 알아볼 수 있는 UserSerive 클래스에서 RefreshToken을 만드는 jwtUtil이 null
~ @NoArgConstructor를 설정하자, UserDetailsService 클래스의 초기화가 필요하다고 하여 final 값을 해제하자, 그 값을 받아오지 못해 생기는 이슈인 것 같다.
*** @RequiredConstructor 생성자 + 불변필드는 @Autowired와 동일한 역할 ~ jwtUtil이 제대로 초기화할 수 있게 만들어야 한다.
+ 결정타 : application.properties의 시크릿 키를 받아올 수 없다(처음엔 그 파일이 없었다, + 심화 프로젝트 피드백 복습)
이후 직접 키를 주입하면 테스트가 가능하지만, 의존성 문제가 있으므로 @Value를 통해 값을 받아오기 시도(실패)
내일 계속할 예정.
오늘의 포인트
1. @Spy vs @Autowired
2. @Spy vs @Mock
스프링 구동과정 복습하기
PostServiceTest의 오류 : Class 접근 제어자가 분명히 public으로 설정되어 있는데도 접근할 수 없다고 한다, 대체 왜?
3. 선발대 학습
JPA 연관관계 매핑 에러 잡기
4. 심화 프로젝트 피드백
- ResponseEntity 세팅을 시도하셨네요. 참고해 보실 만한 블로그도 남겨놓을게요.
- application properties에 key 값과 DB 정보 등 매우 중요한 정보가 많이 들어있습니다. AWS를 사용할 때 특히 절대로 노출되면 안 되는 정보이기 때문에 gitignore 처리를 해서 노출되지 않게 하고 팀원과 파일로 공유하셔야 합니다.
*JPQL
5. 후발대 수업
제너릭스 : 다양한 타입의 객체를 지향하는 클래스나 인터페이스, 또는 메서드를 정의하는 방법 ~
똑같은 동작을 여러 번 만들 필요 없이 딱 한번 정의하고 나서 여러 타입에 대해 지원해주도록 하는 것
*<T> : 꺾쇠 안 타입을 사용가능한 제너릭 클래스
*<T extends F> : F 클래스를 상속하는 T 타입만 사용가능하다
'내일배움캠프 4기 스프링 > 내배캠 TIL📘' 카테고리의 다른 글
01. 30 TIL (0) | 2023.01.30 |
---|---|
01. 27 TIL (0) | 2023.01.27 |
01. 25 TIL (1) | 2023.01.25 |
01. 23 심화 프로젝트/ 시퀀스 다이어그램 그리기 (0) | 2023.01.23 |
01. 20 심화 프로젝트/ 코딩 테스트 입문 (0) | 2023.01.20 |