기본 콘텐츠로 건너뛰기

[정보공유] Spring Boot 3.0.5 available now

 아래 내용의 원문은 여기 에서 보실 수 있습니다. 🐞  Bug Fix (40개 BugFix 주요 내용) Embeded Web Server 가 설정되어있지 않으면 EmbeddedWebServerFactoryCustomizerAutoConfiguration이 설정되지 않도록 수정. 관련이슈 #34189 관련이슈 #34659 StandardConfigDataResource 가 클래스패스에 ‘.’ 을 가지고 있을 경우 같은 파일이 두번 임포트 되는 버그 수정 관련이슈 #34212 관련이슈 #34617 SnakeYAML 2.0 을 사용하는 경우 application.yml 을 로딩할 때 NoSuchMethodError 를 발생시키는 버그 수정 관련이슈 #34405 관련이슈 #34515 @ConfigurationProperties annotation 이 mutable Kotlin data classes 에서 동작하지 않는 버그 수정 Gitter 에서 주로 논의가 되었던 부분으로 보이며 해당 내용은 아래에서 Close 되었음 관련이슈 #34500 podman 으로 build image 를 할때 image build pack 이 설정되어있으면 실패한다는 문제 수정 관련이슈 #34324 관련이슈 #34495 @ComponetScan 사용할 경우 AOT로 Native Image 를 만들려할때 Fail 현상을 수정 관련이슈 #34371 📙 Documentation JDK 20 지원. WebFlux 사용시 Custom error page 에 대한 부분 명확화 MavenRegistry에서 publishRegistry 를 Terminal Command 로 Configuration 하는 팁에 대한 보강 Old API 두개에 대한 업데이트 JdbcConfiguration  has been removed in this  commit .  setApplicationContextClass  has been removed in this...

[White Paper 공유] Josh Long 이 작성한 "Spring Boot 3 AOT" 소개

수퍼맨 Josh Long 이 Spring boot 3 의 AOT 에 대한 백서를 공개했습니다. 이 분은 정말 수퍼맨입니다. 도대체 그 많은 일을 어떻게 하는걸까요? 이 분의 하루는 120시간쯤 되나봅니다. 간단히 내용을 살펴보니 예제 몇가지와 그때의 동작 방식에 대해서 maven 기반으로 설명하고 있네요. 제목은 "Everything You Never Wanted to Know About Spring Boot 3 AOT" 입니다. 다운로드는 여기 에서 가능하고, 본인의 이메일 주소를 넣으시고 진행하시면 됩니다.

[영상 공유] Spring Boot 3 and Spring Framework 6...

2주전 IntelliJ IDEA by Jetbrains YouTube 채널에서 라이브로 진행된 Josh Long 의 Bootiful Spring Booot 3 라는 영상입니다. Spring Boot 3와 Spring Framework 6라고 되어있지만 실제로는 Spring Boot 3 와 향후 약 5년 정도의 방향성 같은 것들을 이야기하는 것 같습니다. 영어권 사람들도 말이 너무 빨라서 따라가는데 어려움을 느낄 정도로 굉장히 빠른 속도로 1시간 정도를 진행합니다. 영어 실력이 미천해서 자동 영어 자막을 켜놓고 겨우 몇 가지 포인트를 잡아냈습니다 . 다만 , GraalVM 은 자동 영어 자막에서는 계속 'Gravian' 등 으로 표기되네요^^ Spring Boot의 방향성이나 Spring Boot 3 에서의 주요 핵심 포인트 등에 관심이 있으신 분이라면 꼭 보시면 좋을 영상이라고 생각합니다. 단, Spring Boot 3 의 특징이 이게 다냐고 생각하시면 안됩니다. 이 영상에서 주요 포인트로 설명된 내용이 아래의 내용이라는 것이지요. Spring Boot 3 에 대한 더 자세한 내용이 궁금하신 분들은  Spring Boot 3 and Spring Framework 6.0 – What’s New (Baeldung)  을 참고하시면 됩니다. - JDK 17 의 사용   아직도 거의 JDK 8 또는 9 기반(물론 Gradle에는 JDK 11 설정이고, 실제 Docker Image도 JDK 11 이긴 했지만...)으로 프로그램을 하고 있는 저는 정말 부끄러워 몸둘바를 모르겠더군요. - Micrometer 그렇지 않아도 공부하려고 리스팅 해 놓긴 했었는데, 좀 더 자세히 봐야겠어요. 일단 짧은 설명에 의하면 기존의 Spring Cloud Sleuth 를 대체할 듯 합니다. 예전에 잠깐 본 바로는 단순 대체가 아니라 다양한 장점이 존재하는 것 같았습니다. 빠른 시간안에 살펴봐야 할 것 같아요. - GraalVM + ...

숨비 아일랜드 새로운 출발...

오늘은 개발하는 카페 사장으로 카페 관련 글 한번 올릴까 합니다. 7년 전 친구가 홀로 시작한 카페를 제가 물려받은 후 벌써 2년이 지났더군요. 한 달 가까이 셀프 리모델링을 진행한 끝에 드디어 다시 새롭게 카페를 오픈했습니다. 새로운 카페의 분위기는 좀 더 느긋하고 여유롭게 변화했어요 ^^ 물론 작년부터 계속해 온 카페 내 사진관도 계속 함께 한답니다. 새롭게 시작하는 카페와 사진관을 사진으로 소개해 볼까 합니다. 혹시 제주도에서도 서귀포 동쪽을 지나가다 맛있는 음료와 디저트가 필요하신 분들은 들려주세요. 자세한 내용은 카페 인스타그램(sumbi_cafe) 과 사진관 인스타그램(169photocafe) 을 참고해 주세요^^ 숨비아일랜드 정보 보기(네이버 플레이스)

데이터 클래스 정의를 위한 새로운 타입 Records의 탄생...

3월에 나온 Java 14에서 새롭게 탄생한 타입 Records에 대한 소식은 올해(2020년) 2월쯤 처음 봤던 것 같습니다. 간단히 얘기해서 생성자(Constructor)와 Get(Accessor) 그리고 일반적인 클래스의 기본 요소인 equals(), hashCode(), toString() 을 가지는 데이터 클래스 타입입니다. Records 타입의 경우는 위 다섯 가지 기본 요소를 데이터 클래스에 적합한 형태로 사전 생성해 줍니다. 예를 들면 equals 와 hash 코드 같은 경우는 생성된 서로 다른 Records 객체가 만약 같은 타입과 같은 상태(State. 간단히 안의 Field 값이 다 같은 경우를 말한다고 보면 되겠죠?) 인 경우 동일하게 취급하도록 만들어져 있고, toString()의 경우는 모든 Field의 name과 value를 보여주게 처리되어 있다고 합니다. 저는 스칼라나 코틀린을 잘 모르지만, 스칼라의 case, 코틀린의 data와 같은 역할을 한다고 합니다. 관련 글들을 몇 개 봤었는데 저 같은 경우는 아래 링크의 Preview Post가 가장 이해가 잘 가더군요. 다만, 1월쯤에 쓰인 Preview로 Java 14의 Release 전에 쓰인 글입니다. Java 14 new features: Records 자바 14의 기능을 과연 언제쯤 쓰게 될지는 모르겠지만, 그동안 lombok을 썼던 가장 큰 이유가 하나 없어지는 듯합니다.

작년에 왔던 각설이 같은 자바에서의 Exception 처리 관련 글 소개

잊을만하면 한 번씩 올라오는 자바 Exception에 대한 글을 하나 소개할까 합니다. 작년에 왔던 각설이 죽지도 않고 또 오는 거 보면 정말 자바에서 중요한 부분이지 않을까 합니다. 개인적으로도 Exception에 대해서는 최대한 잘 처리를 하려고 하는 편이지만, Best Practice에 반하는 경우도 많아서 다시 한번 정리를 해 볼 겸 해서 간단히 정리해 봅니다. 원문은 아래 링크를 통해서 확인 가능합니다. 원문 꼭 확인 하시길 추천하는건 다 아시리라 생각하며... [원문 보러가기] 1. Catch 블록에서 Exception을 확인할 수 있는 어떤 처리를 하지 않고 그냥 소비하지 말라고 합니다. 즉, Catch 블록에서 로그를 남기지 않고 그냥 리턴해 버리거나 하는 경우인데요. 저도 가끔은 그냥 이렇게 하는 경우도 있긴 합니다만, Exception이 정말 발생하면 안 되는 경우라면 절대 그러면 안 되겠지요? 해당 Exception이 발생했는지를 모른다면 안 될 테니 말이죠. 적당한 대응을 위해서라도 어떤 Exception이 발생해서 처리를 한 것인지 정도는 알 수 있도록 프로그램 하는 게 맞습니다. 만약 Exception에 대한 대응이 필요 없다면 차라리 10번 항목처럼 처리를 하는 것을 추천합니다. 2. Method에 throws 를 지정할 때 Exception으로 하지 말라고 합니다. 즉, Exception이 아니라 특정 Exception을 지정하라는 것인데요. 개인적으로는 본인이 특정 Exception을 상속받아서 만든 Exception을 throws 하는 것을 추천합니다. 물론 항상 그런 건 아니고요. 3. 2번과 비슷한 맥락에서 catch 를 할 때 Exception 으로 catch 하지 말라는 것입니다. 네. 맞습니다. 당연한 이야기입니다. 근데... 저도 그렇지만 귀찮으면 그냥 그렇게 프로그램 하는 경우가 많지요^^ 4. Never catch any Throwable class. 설명이 좀 난해해서 패스.. 어떤 경우를 말하는 것인지 잘 모르...

Spring Security OAuth Project의 지원 종료에 대한 내용이 발표되었습니다.

오랜만에 쓰는 글이 또 Spring Security 관련 글이네요. 이번엔 Project 종료와 관련된 내용입니다. 2020년 03월 07일(일단 미국시간이 아닐까 싶긴 하지만...)에  End-of-Life for Spring Security OAuth 라는 글을 통해서 공식적으로 Spring Security OAuth 프로젝트에 대한 지원 종료 일정이 발표되었습니다. 뭐 꽤 예전부터도 간간이 공지가 계속됐던 내용이라 별로 새로울 것은 없네요. 아래 내용은 전문을 번역한 내용입니다. 언제나 그렇듯 영어 울렁증이 정말 심해서 원문은 도저히 못 보시겠다 하는 분들을 위한 대충 의미만 전달하는 번역 수준으로 가능하면 원문을 보시기 바랍니다. 출처 :  End-of-Life for Spring Security OAuth End-of-Life for Spring Security OAuth (Spring Security OAuth에 대한 지원 종료) 2018년 1월 Spring Security OAuth(Legacy) 프로젝트가 공식적으로 유지관리 모드로 이전된다는 것을 발표하였습니다. 이후 2019년 11월 Spring Security OAuth 2.0의 로드맵을 업데이트 발표하면서 2020년 3월 2.3.X 버전 라인의 지원 종료가 될 것이라고 했습니다. 현재 지원되고 있는 버전은 2.4.X 와 2.5.X 로 2020년 5월 2.5.X 버전의 최종 마이너 버전이 릴리스 될 것입니다. 2.4.X와 2.5.X 버전들에 대해서는 2021년 5월까지 패치 및 보안 수정 버전이 지원될 예정입니다. 또한, 2022년 5월까지 2.5.X 버전에 대한 보안 수정 버전이 지원된 후 지원이 종료될 것입니다. Spring Boot 2 auto-configuration 프로젝트도 역시 같은 타임라인에 따라 종료될 것입니다. 마지막으로, 2022년 5월에 지원 종료되는 프로젝트들을 일반 공개하여 이후에는 커뮤니티 멤버들이 직접...