• Jackson Infinite Recursion Issue With JPA Entity

    이번 포스팅에서는 프로젝트 진행 중 JPA Entity 객체를 JSON으로 Serialize시킬 때 발생하는 Jackson Infinite Recursion Issue에 대해서 알아보고 이를 어떻게 해결했는지에 대해서 포스팅 하도록 하겠다. JPA Entity JSON Serialize JSON으로 Serialize하고 싶은 JPA Entity Class는 다음과 같다. [Self Reference] @Entity...


  • Spring Security + JWT를 통해 프로젝트에 인증 구현하기

    Spring Security와 JWT를 활용해서 프로젝트에 인증을 어떻게 구현했는지에 대해서 포스팅 하려고 한다. 토큰을 사용한 인증은 처음이기도 하고, Google OAuth를 함께 사용하는 바람에… 개념이 해깔려 며칠간 계속 헤맸던 것 같다. 이제서야 조금 감을 잡으며 프로젝트에 인증 구현을 마쳤는데.. 아직 구현되지 않은...


  • @MockBean을 사용한 통합(Controller)테스트

    이 글에서는 @MockBean을 사용한 통합테스트에 관한 이슈에 대해서 다루어 보도록 하겠다. 이 이슈는 Google OAuth를 사용하는 Service레이어를 의존하는 Controller를 테스트하는 과정에서 발생되었다. Controller 코드는 다음과 같다. @RestController public class GoogleLoginController { GoogleLoginService googleLoginService; UserService userService; public GoogleLoginController(GoogleLoginService googleLoginService, UserService userService)...


  • @RequestParam, @RequestBody에 관한 이슈 (Conversion 관점)

    Conversion관점의 @RequestParam와 @RequestBody에 관한 이슈에 대해서 다루어 보도록 하겠다. 이 이슈는 서버로 Form Data를 보내서 Request handler 메소드의 인자로서 setter가 없는 클래스의 객체를 받고 싶은 욕구에서 시작 되었다. Form Data writer=abc&title=Spring&contents=Johnson domain @Getter @Entity public class Question { @Id @GeneratedValue(strategy...


  • Spring의 HiddenHttpMethodFilter에 관한 이슈

    이 포스팅에서는 HTTP Method의 처리 프로세스에 대한 서버단의 이슈에 관해서 설명하고자 한다. HTML Form에서는 GET과 POST방식의 Methods만 지원한다. HTML Form이 다른 Methods를 지원하지 않는 이유는 Form의 역할과는 거리가 멀기 때문이다. 왜 HTML Form이 GET과 POST방식의 Methods만 지원하는지에 대해서 궁금한 독자는...