기본 콘텐츠로 건너뛰기

5월, 2020의 게시물 표시

데이터 클래스 정의를 위한 새로운 타입 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월에 지원 종료되는 프로젝트들을 일반 공개하여 이후에는 커뮤니티 멤버들이 직접 관리할 수 있도