스프링부트에서 자주 사용되는 객체중에 ObjectMapper 객체가 있습니다. 저는 개인적으로 많이 쓰지는 않지만 Util로 만들어서 Json String으로 만들어서 디비에 저장하거나 혹은 Json String을 특정 객체로 매핑시킬 때 사용하게 되는데요. 이 객체는 사실 기본조건일 때, 스프링 부트에서 직렬화/역직렬화(Serialize, Deserialize)를 담당합니다. 즉, ResponseEntity가 response body를 json으로 직렬화 할때, ObjectMapper가 사용되게 됩니다. 그러나 기본조건으로 java8에서 등장한 LocalDateTime, LocalDate, LocalTime과 같은 객체들을 아래와 같이 직렬화합니다. 기본조건으로 직렬화한 LocalDateTime { "..
안녕하세요. 오늘은 인터페이스와 ConstraintValidator를 활용해서 Enum 타입으로 정리된 Integer 파라미터를 유효성 검사하는 패턴을 공유해보고자 합니다. 상황은 유저를 등록하는 시점이고, 파라미터로 Integer gender라는 값이(0: 남성, 1: 여성) 넘어올 때 아래와 같은 Enum 으로 정리된 클래스가 존재했습니다. Controller Parameter로 매핑될 AddUserInfoParam 클래스 // lombok 어노테이션들.. 생략.. public class AddUserInfoParam { // .. 기타 생략.. private Integer gender; // 남 0 여 1 } GenderType Enum 클래스 public enum GenderType { MALE(..
더욱 RESTFul API를 개발하고있는 코딩하는 흑구입니다. 해당 시리즈의 모든 소스코드는 여기에서 확인하실 수 있습니다. 지난 시간에는 API Validation과 ExceptionHandler를 이용한 예외처리에 대해서 다뤄보았습니다. sas-study.tistory.com/368 [Spring Boot] 게시판 예제를 이용하여 더욱 RESTFul API 개발하기#2 (API Validation, ExceptionHandler) 지난 포스팅에서는 가장 기본적인 API (흔히 Rest라고 부르는)를 만들어보았습니다. Board 객체를 CRUD 기준으로 5가지의 API를 개발해보았는데요. 자세한 내용은 지난 포스팅을 확인해주시면 좋을 것 sas-study.tistory.com 그리고 마지막에 숙제로 7..
지난 포스팅에서는 가장 기본적인 API (흔히 Rest라고 부르는)를 만들어보았습니다. Board 객체를 CRUD 기준으로 5가지의 API를 개발해보았는데요. 자세한 내용은 지난 포스팅을 확인해주시면 좋을 것 같습니다! sas-study.tistory.com/366 [Spring Boot] 게시판 예제를 이용하여 더욱 RESTFul API 개발하기#1 (흔히 REST API라고 불리는 API 예제) 안녕하세요. 몇달전에 썻던 Board 게시판 예제를 이용하여 rest api를 작성했던 포스팅에 이어 두번째 더욱 restful api 개발 예제를 작성해보려고 합니다. 최근 백기선님의 REST API 강의를 보고 많은 영 sas-study.tistory.com 오늘 진행해볼 내용은 Add 또는 Edit 시에..
안녕하세요. 몇달전에 썻던 Board 게시판 예제를 이용하여 rest api를 작성했던 포스팅에 이어 두번째 더욱 restful api 개발 예제를 작성해보려고 합니다. 최근 백기선님의 REST API 강의를 보고 많은 영감을 받았으며 해당 강의를 수강하면서 얻은 저의 영감..? 을 공유해드리기 위해 또한 기선님의 강의내용에 대한 스포가 존재할까 염려하여 전혀 다른 저만의 코딩스타일로 진행하고자하니 이점 유의해주시기 바랍니다. 모든 소스코드는 여기에서 확인하실 수 있습니다. git branch 별로 stage를 나눠놓았으니 확인하실 수 있으실 겁니다. 더욱 RESTFul한 API를 제작하는데 들어가는 스펙은 아래와 같습니다. - Spring Boot 2.3.4 - Java8 - gradle - Sprin..
안녕하세요. 지난 시간에는 401(UnAuthorized)과 403(Forbidden) ExceptionHandler를 Spring Security에서 어떻게 처리하는지에 대해서 알아보았습니다. 이때 /auth 라는 Path에 대하여 인증과 권한(ROLE_AUTH)을 부여하여 성공적으로 스프링 시큐리티에서 인증하는 것을 볼 수 있었습니다. https://sas-study.tistory.com/362 Restful API 구현을 위한 Spring Security 설정해보기 #4 (AuthenticationEntryPoint, AccessDeniedHandler 구현) 안녕하세요. 지난 시간에는 /auth Path에 대하여 무조건 인증을 해보고 성공적인 Response를 반환받아보는 과정을 겪어보았습니다. ..
안녕하세요. 지난 시간에는 /auth Path에 대하여 무조건 인증을 해보고 성공적인 Response를 반환받아보는 과정을 겪어보았습니다. https://sas-study.tistory.com/360 Restful API 구현을 위한 Spring Security 설정해보기 #3 (인증 Filter) 안녕하세요.! 지난 시간에 UserDetails 와 UserDetailsService 인터페이스를 구현하여 인증대상객체와 인증 서비스 로직을 구현해보았습니다. 지난 포스팅을 먼저 확인해주시고 이번 내용을 따라와주시� sas-study.tistory.com 이제 /permit-all Path에 대해서는 사실 따로 적용해볼 설정은 없습니다. -> 완전 퍼블릭한 API이기 때문입니다. 누구나 접근 가능하지요. 근데..
안녕하세요.! 지난 시간에 UserDetails 와 UserDetailsService 인터페이스를 구현하여 인증대상객체와 인증 서비스 로직을 구현해보았습니다. 지난 포스팅을 먼저 확인해주시고 이번 내용을 따라와주시면 더 이해가 잘 될것 같습니다. https://sas-study.tistory.com/359 Restful API 구현을 위한 Spring Security 설정해보기 #2 (UserDetails, UserDetailsService 인터페이스 구현) 안녕하세요. 오늘은 이전 포스팅에서 다뤘던 Java 설정파일에 이어서 인증로직을 구현해보겠습니다. 흐름을 파악하시기 위해서 이전 포스팅 내용을 확인 후 진행하시는 편을 추천드립니다.! https sas-study.tistory.com 지난 두개의 스..