본문 바로가기

전체 글

(87)
[ERROR] JSON parse error: Cannot deserialize value of type `java.time.LocalTime` from String [기본개념] deserialize : 역직렬화 - JSON을 Java 타입으로 변환하는 과정 [Jackson] spring-boot-starter-web dependency를 추가하면, 그 하위에 json객체를 파싱해주는 spring-boot-starter-json 라이브러리가 기본으로 탑재되어있다. 그 하위에는 jackson 라이브러리들 (jackson-datatype-jsr310 라이브러리 포함)이 존재한다. Jackson 라이브러리의 @JsonFormat 어노테이션을 활용해서, 해당 오류를 해결하면 된다. 1. RequestBody로 들어온 json을 파싱하기 컨트롤러에서는 @RequestBody를 통해 request 객체를 받는다 @PostMapping("/api/requested-store/re..
[Gradle] dependency의 version을 명시하기 vs 생략하기 스프링부트와 gradle을 사용할 때, dependency를 추가한다. 이때, 버전을 적는 경우가 있고 안적는 경우가 있다. 버전 적는 경우 특정 버전을 명시하고 싶을 때 애매하다 싶으면, 이렇게 적어야한다. (실제로 버전 안적어서 컴파일 오류 발생했었음) compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' 버전 안적는 경우 dependency를 가져오는 저장소에서 가장 최신 버전을 가져온다 annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
[Spring] AOP AOP 부가기능을 똑 떼어서, 재사용하기 위한 것이다. 인프라 로직 (부가기능) 애플리케이션의 전 영역에서 나타날 수 있다 중복 코드를 만들어 낼 가능성 - 유지보수 힘들어짐 비즈니스 로직과 함께 있으면, 비즈니스 로직을 이해하기 어려워진다 비즈니스 로직 위에 횡단으로(가로로) 같은 로직들이 위치해있기 때문에, 인프라 로직은 횡단 관심사라고도 불린다. AOP (Aspect Oriented Programming) 관점 지향 프로그래밍. 즉, 횡단 관심사에 따라 프로그래밍 한다고 생각하면 된다. 자바에서는 AspectJ 라는 구현체로 AOP가 구현되어있다. 부가기능을 똑 떼어서, 재사용하기 위한 것이다. 그럼, 1. 어떤 부가기능을, 2. 언제, 3. 어디에 사용해야할까? 1번과 2번 -> Advice로 정..