목록Spring Framework/Kotlin (5)
훈훈훈
이번에 사내에서 S3 업로드 방식을 멀티파트(Multipart) 업로드 방식으로 변경하는 일을 맡게 되었다. 해당 기능 구현 중 SDK를 사용한 예제는 많았지만 S3에서 지원하는 REST API를 사용하는 예제는 찾기 힘들었기 때문에 이 기회에 정리하게 되었다. ( 해당 예제 코드는 Spring boot 와 Kotlin으로 작성하였다. ) Why Multipart Upload ?? S3에서 단일 객체를 업로드할때 최대 5GB 이상은 업로드할 수 없다. 일반적으로 5GB를 초과하는 파일을 업로드할때 용량을 압축해서 올리는 방안이 있겠지만, 압축에도 한계가 발생할 수 있다. 그런 상황에서 멀티파트 업로드를 사용하면 하나의 파일을 최대 5GB까지 10,000개로 분할 후 업로드 할 수 있다. 즉 5TB 파일까..
Spring boot와 Kotlin(코틀린)으로 Application 개발 중에 Jackson 라이브러리에서 LocalDate 타입을 Deserialize(serialize)를 하면서 발생했던 이슈를 정리해보려고 한다. - 오류 메시지 Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.LocalDate` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value - 문제 상황 Applicat..
이번에는 Spring boot에서 Event Listener를 사용하는 것에 대하여 정리해보려고 한다. Event Listener를 사용하게된 계기는 Spring boot Application 시작 및 종료 시 특정 이벤트를 수행시키기 위해서 여러 방법을 찾던 중 가장 나은 방법으로 판단하게 되어 사용하게 되었다. 비슷한 기능으로는 @PostConstruct와 @PreDestory가 있지만 해당 기능은 Bean이 생성 시점에 실행되기 때문에 이벤트가 실행되는 시점은 내가 원하는 시점과 약간 차이가 발생한다. 따라서 해당 기능은 사용하지 않고 Event Listener를 사용하였다. 예제 코드 @Component class StartTest { private val logger = LoggerFactory..
이번에는 Spring boot, JPA와 코틀린(Kotlin)을 사용하여 간단한 API를 만들어 보려고 한다. 현재 사내에서 API 서버를 스프링 부트와 코틀린을 사용하여 개발하고 있다. 구글 검색 시 자바에 비해 코틀린에 관한 내용은 많이 부족하다. ....그래서 시간 날떄 틈틈히 정리를 해보려고 한다. 사용한 기술은 아래와 같다. - Spring Boot - Kotlin - gradle - postgresql - JPA IDE는 IntelliJ를 사용하였으며, 이클립스 환경이랑은 약간 차이가 날 수 있다. 이제 아래 코드를 보면서 살펴보자. 프로젝트 구조 먼저 프로젝트 구조는 아래와 같이 구성하였다. 파일 구성은 Controller, Service, DTO, Model, Repository 로 구성하..
이번에는 스프링 부트를 코틀린을 사용하여 간단하게 CRUD API를 만들어보려고 한다. 해당 예제는 코틀린 마이크로서비스 개발이란 책을 보고 작성하였다. 만들고자 하는 API는 유저 관리(CRUD) 기능을 가지고 있으며, 별도로 인증인가 적용은 하지 않았다. 마찬가지로 JPA도 연동없이 목데이터를 사용하여 간단하게 만들려고 한다. 여담이지만 이전에 python에 관한 글 작성 시 코드 블럭에 오류 없이 잘 사용했었는데, 코틀린이나 자바로 코드 블럭을 적용해보니 제대로 적용이 안되는 것 같다..... 이제 코드를 작성해보자 Customer package com.kotlin_rest_exam.rest_exam data class Customer( var id: Int = 0, var name: String ..