기본 콘텐츠로 건너뛰기

2020의 게시물 표시

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

오늘은 개발하는 카페 사장으로 카페 관련 글 한번 올릴까 합니다. 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월에 지원 종료되는 프로젝트들을 일반 공개하여 이후에는 커뮤니티 멤버들이 직접 관리할 수 있도

Spring Security 4.2.14 가 릴리즈 되었습니다.

원래 스프링 프로젝트의 Release 에 그리 신경쓰지 않는 편이고 Release Note 도 자주 보는 편은 아닙니다. 그런데, 최근 외부에서 Spring Security 관련 질문이나 관련 작업 요청이 좀 있다보니 Spring Security 에 대해서는 한번 들여다보게 되었네요. 며칠전에 Spring Security 4.2.14가 Release 되었습니다. 별다른 내용은 없지만 간단하게 정리를 해 보겠습니다. 요약하면 아래와 같습니다. New Feature (1건) Spring Security 팀 내부의 요구에 의한 Enhancement로 보이네요.  Remove Dependency (1건) Bamboo가 제외 되었네요. Dependency Upgrade Thymeleaf : 3.0.11.RELEASE Spring Boot : 1.5.22.RELEASE Spring Session : 1.3.5.RELEASE Spring Data Redis : 1.8.23.RELEASE Spring Data JPA : 1.11.23.RELEASE Spring Data Commons : 1.13.23.RELEASE CGLIB : 3.2.12 Spring Framework : 4.3.26.RELEASE 뭐 별다른 내용은 없네요. 유지보수 수준의 Release 로 보입니다.

구글 Glass Enterprise Edition 2가 개발자들에게 공개되었습니다.

2012년 구글이 Project Glass 라는 것을 발표했을때 제 주변의 많은 개발자들 사이에서 상당한 반향을 일으켰던것이 생각납니다. 특히 그 해에 있었던 구글 I/O에서 스카이다이버들이 구글 글라스를 쓰고 스카이다이빙을 하고 마지막에 MTB를 탄 바이커들이 I/O 행사장에 들어오는 연출은 뭐 약간의 트릭이 가미됐었다고 해도 정말 엄청났었지요. 그 뒤에 Project Glass는 사생활 침해라던가 여러가지 사회적 이슈가 되기도 했는데, 결국 일반 판매를 접고 엔터프라이즈 용으로만 판매하는 것으로 결정이 됐었습니다. 사실 아직까지 개발을 하고 있는지도 몰랐습니다만, 작년 5월에 Glass Enterprise Edition 2 까지 발매가 되었다고 하는군요. 구글에 따르면 "많은 개발자들이 이 제품에 대한 공개를 요구를 해 왔다. 그래서 자기네 리셀러들을 통해 이제 개발자들도 살 수 있다" 라고 합니다. 리셀러 중 하나인 Mobile Advance  에 들어가보니 가격은 Reseller Price 가 1,195 달러네요. 뭐 여전히 만만치 않은 금액이군요. 구글에서는 오픈소스 어플리케이션과 코드 샘플 도 함께 공개했습니다. 대충 보니 사진과 동영상 촬영 관련 샘플과 갤러리, 제스쳐에 관한 샘플 코드가 공개되어 있습니다. 언젠가 하나쯤 가져보고 싶긴 합니다. 이런 저런 서비스를 만들어 볼 수 있는 기기임에는 틀림없어 보이니까요. 가격만 조금 착해도^^ 자세한 내용은 공식 블로그 사이에서 확인 가능합니다. https://www.blog.google/products/hardware/glass-enterprise-edition-2/

블로그의 테마를 변경했습니다.

꽤 오랫동안 사용했던 블로그의 테마를 변경했습니다. 그런데, 이 테마가 html 태그 수정이 안되네요. 왜인지는 모르겠지만... 기존에 사용했던 Code Highlight 가 적용이 안되는데다, 변경하려고 해도 테마의 html 수정이 안되는 관계로 기존 글 중 Code 부분이 좀 이상하게 보일 가능성이 큽니다. 일단 변경할 수 있는 방법을 계속 찾아보도록 해야겠네요. 이래서 모든 작업을 할때는 백업이 필수입니다. 하하하~~

[Book Review] Inspired. 감동을 전하는 IT 제품은 어떻게 만들어지는가?

지은이 : 마티 케이건 (Marty Cagan) 출간일 : 2018년 12월 28일 ISBN13 : 9791188621484 ISBN10 : 1188621483 제주도에 와서 살면서 가장 이득이라고 생각하는 부분은 마침 살 게 된 곳 가까운 곳에 도서관이 있다는 것이 아닐까 싶다. 물론 서울에 있을 때도 도서관이 없었던 것은 아니지만 상대적으로 먼 거리나 후미진 곳에 있었던 탓에 그리 이용할 기회가 없었는데 (뭐 80%는 핑계다) 이곳은 카페에서는 차로 10분 거리 사는 집에서는 걸어서 15분 거리에 도서관이 있다 보니 부담이 없다. 게다가 원하는 책을 신청하면 대부분 구매해서 구해준다. 심지어 IT 전문서까지도... 2020년을 맞이하여 첫 도서는 작년에 신청해 놓고는 입고됐다는 문자를 받고도 그동안 미루고 있던 인스파이어드 라는 책을 선택했다. 주로 IT 관련 제품을 발견하고 출시하는 것에 대한 다양한 고려사항과 방법론을 설명하는 이 책의 주요 골자는 기업의 문화와 관련되어있다고 볼 수 있다. 두 가지로 요약하면 혁신의 문화와 실행의 문화라고 할 수 있겠는데(필자가 마지막 부분에서 아주 친절하게 요약해준다) 한편 나 자신이 찔리는 부분도 있고 한편 회사 생활을 하던 시절 그리고 지금 부업으로 원격 외주를 진행해주면서 느끼는 답답함에 대한 이야기를 가끔은 에둘러서 가끔은 직설적으로 이야기해주고 있다. 이 책은 몇 년 전에 읽었던  스프린트(세상에서 가장 혁신적인 기업 구글벤처스의 기획실행 프로세스) 라는 책과도 일정 부분 겹치는 내용이 있었는데, 그만큼 혁신적이고 성공적이라고 평가할 수 있는 업체가 제시하는 혁신적이고 실행 적인 기업문화의 핵심은 닮아있는 것이 아닐까 싶다. 이 책은 제품 관리자에 대한 이야기다. 이 책에서 말하는 제품 관리자는 우리가 아는 애자일 코치라던가 애자일 마스터와는 다른 의미이다. 그 역할이라는 것은 제품(그게 큰 의미의 솔루션이건 작은 기능이건)의 발견에서부터