🍃 Spring

    Spring AOT(Ahead-Of-Time) 경험 이야기

    Spring 6.0 AOT 지원 Spring 6.0.0, Spring Boot 3.0을 맞아 Spring AOT에 대한 전폭적인 지지를 할 것으로 보입니다. AOT에 대한 내용은 그리 어렵지 않습니다. 그냥 어플리케이션 시작 시간을 빠르게 하는 기술이라고 합니다. 기존의 JVM 방식에서는 프로그램이 올라갈 때 바이트 코드를 컴파일하지만 AOT는 '네이티브 이미지'라는 것을 미리 만들어서 미리 컴파일 할 수 있도록 해주는 기능을 제공합니다. 더불어 메모리 사용량도 줄여 경량화 애플리케이션을 구축하는 데 도움을 준다고 합니다. 사용 방법 일단 Spring AOT를 이용하려면 JVM이 아닌 GraalVM을 사용해야합니다. Release GraalVM Community Edition 22.3.1 · graalv..

    Spring 6.0 HTTP Interface 사용법 및 REST API Client 방식의 변화

    이 글은 Spring 6.0의 HTTP Interface 사용법 및 REST API Client 방식의 변화를 설명하고자 합니다. 해당 내용은 깃헙에 올려져 있습니다. Spring 6.0 등장 2022년 11월 Spring 6.0 버전이 나왔습니다. 주요 특징이 있다면 6.0 버전 부터는 Java 17 이상만 지원을 합니다. Spring Initilzer 에서도 이제는 Spring Boot 3.0 이상 지원을 기본으로 합니다. 아마 올 상반기 쯤에는 Spring Initializer에 2.7.9 버전은 보이지도 않을지도 모릅니다. 그래서 앞으로는 개발의 편의성을 위해 Java 11에서 17로 바꿔주는 작업을 해줍니다. 그에 맞게 환경 변수도 편집하고 IDE에도 Java 17로 구동하도록 변경해줍니다. R..

    ResponseEntity의 사용법 및 유지보수

    ResponseEntity를 쓰는 이유 일반적으로 Controller에서 아래와 같이 객체를 Return 하는 경우 HTTP 응답을 제어할 수가 없습니다. @GetMapping("/") public User getUser() { User user = userService.getUser(); return user; } 하지만 REST API로 만든다면 클라이언트와 서버 간의 통신에 필요한 정보를 제공해야 합니다. 그럴 때 ResponseEntity를 사용한다면 적절한 상태 코드와 응답 헤더 및 응답 본문을 생성해서 클라이언트에 전달할 수 있습니다. 사용 방법은 아래와 같습니다. 성공을 의미하는 OK(200 code)와 함께 user 객체를 Return 하는 코드입니다. @GetMapping("/") pub..

    Spring WebFlux & Kotlin 샘플 프로젝트

    GitHub - stir084/WebFlux-Sample Contribute to stir084/WebFlux-Sample development by creating an account on GitHub. github.com 위의 프로젝트는 Spring Initializer를 통해 기반을 만들었다. 근데 위의 세팅대로 인텔리제이로 실행시키면 build.gradle.kts 파일에 아래와 같은 에러가 발생한다.(에러와는 별개로 프로젝트 실행은 되는 듯하다) Unresolved reference: sourceCompatibility Unresolved reference: listOf 현재 Kotlin의 Stable 버전은 1.6.2인데, 해당 버젼으로는 에러가 나서 1.5.20으로 다운그레이드 시켰다. 1.6..