본문 바로가기

반응형

Study/Java

(189)
Spring Boot 3.0 Release Notes 전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다. https://luvstudy.tistory.com/tag/Release%20Notes https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes 21 revision 기준으로 작성됨 Upgrading from Spring Boot 2.7 이것은 Spring boot의 주요 release이기 때문에 기존 application을 upgrade하는 것은 평소보다 조금 복잡할 수 있습니다. 기존 Spring Boot 2.7 application을 upgrade하는데 도움이 되는 전용 migration guide를 마련했습니다. 현재 이전 버전의 Sprin..
Selenium 사용해보기 Selenium 소개 https://www.selenium.dev/ Selenium은 web application 테스트 및 자동화를 위한 오픈소스 자동화 도구이다. 테스트 뿐만 아니라 아닌 웹 기반의 여러 작업들을 자동화 할 수 있어 여러 용도로 사용할 수 있다. 이런 도구를 단위 테스트(unit test)와 대비해 끝점에서 진행되는 테스트 도구라는 의미로 End-to-End test automation tool이라고 한다. 다양한 E2E 테스트 도구들 (End-to-End testing tool) selenium외에도 수많은 E2E 테스트 도구들이 있다. java에서 jquery처럼 사용할 수 있게 제공되는 selenide 도 있고 https://selenide.org/ Microsoft가 만들어서 ..
JDK 17부터 Locale language old ISO code 사용 비활성으로 기본 설정 변경 Java의 Locale은 로케일 데이터 교환을 위한 LDML (UTS#35, UnicodeLocale Data Markup Language) BCP 47 호환 확장을 지원하는 RFC 4647 "Matching of LanguageTags" 및 RFC 5646 "Tags for Identifying Languages"로 구성된 IETF BCP 47을 구현한 것이다. 여러 속성들이 있지만 보통 Language가 필수이고 추가로 country, script, variant, extensions를 사용한다. (거의 대부분 {language}_{country}의 형태로 사용한다. ex: ko_KR) 언어나 국가에 대한 code는 불변이 아니고 세월이 변하면 달라질 수 있다. 이전 버전 JDK의 java.util...
JDK 19 New Features JDK의 버전별 변경 사항은 이곳을 참고하세요. Spec Java SE 19 Platform JSR 394에 정의된 바와 같이 JSR 394 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야 함 Final Release Specification Feature Summary 전체 JEP Feature 목록은 OpenJDK의 JDK19 문서로 확인할 수 있다. JEP Component Feature JEP 405 specification/language Record Patterns (Preview) JEP 422 hotspot/compiler Linux/RISC-V port JEP 424 core-libs Foreign Function & Memory API (P..
Spring Boot GraphQL 사용해보기 GraphQL 소개 GraphQL은 페이스북에서 만든 API를 위한 쿼리 언어이다. SQL과 유사하게 사용하는 웹 요청용 쿼리를 정의한 규약이고 많이 사용하는 REST API와 다른 형식의 요청이라고 생각하면 된다. REST API의 경우 요청 주소에 따라 응답 결과를 얻게 되지만 GraphQL은 단일 요청 주소로 질의한 쿼리 별 대한 응답 결과를 얻는 차이가 있다. GraphQL 홈페이지 GraphQL for Java/Kotlin GraphQL은 다양한 언어에 대한 라이브러리를 제공하고 있다. Code using GraphQL 이 중 Java에서 사용하기 위한 라이브러리 항목은 다음을 참고한다. Code using GraphQL Java/Kotlin Spring for GraphQL 이 중 graphq..
Spring Rest Docs로 OpenAPI (Swagger) 문서를 만들어 Swagger UI로 호출하여 보기 이 글의 내용은 Spring Rest Docs를 이미 사용하고 있는 상황에서 OpenAPI 문서를 만들기 위한 내용을 담고 있습니다. OpenAPI Specification 소개 OpenAPI Specification은 예전엔 Swagger Specification으로 알려졌었다. OpenAPI Specification은 Rest API에 대해 문서화를 하기 위한 사양을 정의한 것으로 특정한 소프트웨어나 라이브러리가 아니다. SmartBear Software 회사가 자사 swagger framework에서 REST Api를 문서화하기 위해 사용하던 Swagger Specification을 공개하면서 Linux Foundation의 OpenAPI Initiative project로 관리가 이전되었다. ht..
Spring Cloud Config Server jdbc backend 사용해보기 개인적으로 spring cloud config server를 github repository와 연동해서 사용하고 있었다. 평상시 크게 불편함을 느끼지 못했는데 config server의 설정을 변경할 일이 있을 경우 손쉽게 값을 변경하기 어려워 테스트 하기 불편하여 jdbc로 변경하려고 한다. Spring Cloud Config Server backend 구성 spring cloud config server는 다양한 backend를 구성할 수 있도록 autoconfiguration을 지원하고 있다. EnvironmentRepositoryConfiguration에서 다양한 backend 구성 환경에 대한 설정을 제공하고 있는데 대략 다음과 같다. 이 중에 원하는 환경으로 구성하면 된다. Environmen..
@Validated annotation을 controller가 아닌 service, component layer에서 사용하기 @Controller가 아닌 @Service, @Component 등에서 @Validated 사용하기 일반적으로 @Controller에서 @Validated를 사용하여 validation을 사용한다. @PostMapping public BlogArticle create(@RequestBody @Validated(BlogArticle.Create.class) BlogArticle blogArticle) { return blogArticleService.create(blogArticle); } service나 component에서도 @Validated annotation을 사용할 수 있다. 다만 controller에서 사용하는 것과 그 외의 layer에서 사용하는 방법이 좀 차이가 있다. @Service @..

반응형