에러발생 발생원인 분명 서버 실행하고 진행하면 잘 되는데 왜 이러한 에러가 발생할까? Jwt SecretKey를 어떻게 받고있는지 한 번 살펴보겠습니다. 저같은 경우에는 환경변수를 이용해서 key값을 받고있습니다. 그래서 서버가 실행되면 key값이 들어가야 되는데 테스트 코드를 작성하는 곳에는 환경 변수를 세팅하거나 yml이 존재하지 않기 때문에 @Value에서 에러가 발생한 것이였습니다. 해결방법 해결할 수 있는 방법은 2가지가 존재합니다. 첫번째: 환경변수 설정 모든 테스트 환경에 환경변수를 적용하는 방법입니다. 이건 테스트 클래스가 많아질 수록 귀찮고 놓칠 수 있는 부분이기 때문에 비효율적이라고 판단했습니다. 두번째: 테스트 전용 yml 생성 테스트 전용 yml을 생성하는 방법입니다. 이렇게 설정해..
이번 포스팅의 목적은 왜 공식문서를 볼 줄 알고 왜 봐야 되는지에 대한 제 생각을 적은 글입니다. 블로그검색을 통해 구현한 OAuth2 이 글을 쓰기 전에는 그냥 구글에 다 나와있고 내가 이미 해놨던 정보들이 있기 때문에 OAuth2에 대해 깊게 알지 않아도 복붙해서 사용만 할 줄 안다면 내가 그 기능을 완벽히 알고있다고 판단했었습니다. 이 말도 틀린 말은 아니라고 생각합니다. 결국 기능을 사용할 수 있으면 충분하니까요. 요구사항에 맞는 자료가 존재하지 않는다면 사소한 거 하나 구현할 수 없는 제 모습을 보고 다시 하나하나 구현했습니다. 처음 구글에서 본 OAuth2 코드입니다. OAuthAttributes 이 코드를 작성할 때 그냥 이렇게 쓰면 되는 거고 이렇게 만들어서 나누면 돼 ~ 이런 식으로 구현..
Spring Security에서 토큰 검증 과정 검증 흐름 먼저 제가 작성한 코드가 어떤식으로 검증이 되는지 보겠습니다. 로그인 성공 토큰 생성 로그인 성공 -> 토큰을 생성하는 로직입니다. 토큰 검증 토큰을 검증하는 흐름을 보겠습니다. getUsername() 여기까지 로그인 후 토큰을 생성하고, 그 토큰을 검증하는 과정입니다. 이제부터 이 흐름에 왜 의문을 품었는지더 좋은 방법을 하나 하나 생각한 내용을 적겠습니다. 의문 발생 토이프로젝트를 하다가 받은 리뷰입니다. 인터넷과 강의에있는 내용을 그대로 받아들인 후 토큰 검증 과정을 구현했었는데 이러한 리뷰를 통해 왜 이렇게 해야 되는건지 고민하는 계기가 되었습니다. DB에 접근하지 않아도 User객체를 생성한다거나, 권한 정보만 들고와서 ContextH..
여기에서 사용된 코드는 실제 토이프로젝트에 사용한 코드이며, 어떻게 활용하였는지 나타내기 위해 작성했습니다. 들어가며 Enum을 통해 얻는 기본적인 장점? 문자열과 비교해, IDE의 적극적인 지원을 받을 수 있습니다. 자동완성, 오타검증, 텍스트 리팩토링 등등 허용 가능한 값들을 제한할 수 있습니다. 리팩토링시 변경 범위가 최소화 됩니다. 내용의 추가가 필요하더라도, Enum 코드외에 수정할 필요가 없습니다. 이외에도 데이터들 간의 연관관계 표현, 상태와 행위를 한 곳에서 관리, 데이터 그룹 관리, 관리 주체를 DB에서 객체로 등 활용할 수 있는 부분이 정말 많았습니다. 제가 이 때 진행한 프로젝트는 정말 간단한 프로젝트이며 당근마켓처럼 물품이 등록되어있으며 그 물품을 Buyer가 구매 요청을 하는 시스..
Page 안에 있는 값을 먼저 살펴보자. Postman으로 조회했을 때 볼 수 있는 값이다. 이러한 형태는 어떻게 Rest Docs를 이용해서 나타낼 수 있을까? 엄청난 시간을 썼다. 저 모든 값을 다 필드로 나타내야 되는 건가? content 안에 있는 값에 접근해야 되는 건가? 어떻게 $.??.?? 이런 식으로 어떻게 접근해야 될까 시도를 엄청 많이했다. @RequestParam 값을 어떻게 처리해야 될까 전체 조회(페이징) 컨트롤러 먼저 내가 작성한 controller를 살펴보자. @GetMapping("/items") public Page readItemList(@RequestParam(value = "page", defaultValue = "0") Integer page, @RequestPara..
https://docs.spring.io/spring-restdocs/docs/3.0.0-SNAPSHOT/reference/htmlsingle/#documenting-your-api-query-parameters Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test or WebTestClient. docs.spring.io 2.x 버전에서 param 사용법 3.0.0 부터 param 사용법 나처럼 삽질하는 사람이 없길....