기본 콘텐츠로 건너뛰기

라벨이 Springframework인 게시물 표시

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 로 보입니다.

[외국포스트 공유] 15 Spring Core Annotation Examples

제주도 한라산 둘레길 - 수악길에서 올해는 가을을 별로 느끼지 못한 상태에서 바로 겨울이 찾아오는 느낌입니다. 슬슬 겨울과 내년을 준비할 시즌이 되었는데, 요즘 이래저래 다른 일들로 뭔가를 할 만한 여유가... ^^ 핑계 대지 말고 열심히 살아야 할 것 같습니다. 오늘도 잠시 짬을 내서 외국 포스트 하나 공유할까 합니다. Ramesh Fadatare 라는 분이 올린 Spring Framework의 Annotation 정리 내용입니다. 주요 15가지의 Annotation에 대해서 간단한 설명과 샘플 코드를 정리해 놓았네요. 포스트에 정리되어있는 Annotation의 리스트는 아래와 같습니다. @Autowired @Bean @Qualifier @Required @Value @DependsOn @Lazy @Lookup @Primary @Scope @Profile @Import @ImportResource @PropertySource @PropertySources 자주 쓰는 Annotation도 있고 그렇지 않은 것도 있지만, 한 번 정리해볼 겸 훑어보는 것도 좋을 것 같네요. 자세한 내용은 아래에서 확인 가능합니다. 15 Spring Core Annotation Examples 보러가기

Spring Cloud GCP가 1.0 정식버전을 릴리즈 했습니다.

얼마 전에 Knavtive 에 Spring이 협업하고 있다는 소식을 전해드린 적이 있습니다. 그동안 Google의 GCE 서비스와 GCP의 Google Cloud SQL 서비스, Firebase 등을 이용하면서 Spring이 Google 서비스와의 Integration Project를 진행해주면 좋겠다는 아쉬움이 컸었는데요. 이번에 Spring Cloud Project에서 Google Cloud 팀과 협업을 진행해 Spring Cloud GCP를 정식 Release 했다는 반가운 소식을 접하게 되었습니다. Spring에서 발표한 정식 Release 소식은 여기 서 확인이 가능하고, 전반적인 Project 내용은 여기 서 확인 가능합니다. 언제나 그렇듯이 통합되는 내용을 아주 간단하게 정리하면 다음과 같습니다. Messaging 모든 Spring Messaging 지원은 spring-cloud-gcp-pubsub 및 spring-cloud-gcp-pubsub-stream-binder 모듈과 Spring Integration 및 Spring Cloud Stream을 기반으로 한다네요. 여기에는 Google Cloud Pub/Sub 기반의 PubSubTemplate이 있고, PubSubTemplate 기반으로 작업된 PubSubInboundChannelAdapter와 PubSubMessageHandler가 Spring Integration Channel Adapters의 역할을 하게 됩니다. 그리고, 이번 릴리즈에는 메시지 변환을 위한 PubSubMessageConverter와 헤더 맵핑을 위한 PubSubHeaderMapper도 포함되어있다고 합니다. Spring Boot도 당연히 지원되는데 spring-cloud-gcp-autoconfigure 모듈을 이용해서 PubSubMessageChannelBinder를 통한 Spring Cloud Stream Integration 바인딩을 ...

[간단번역] Top 20 REST and Spring MVC Interview Questions for Java Developers - Javin Paul

Javin Paul( LinkedIn , Javarevisited , JAVA67 )은 프로그래머면서 블로거인데, 자바나 스프링과 관련돼서 저도 가끔 들어가는 블로그의 주인장입니다. 특히 저 JAVA67 사이트는 자바와 관련된 기술적인 다양한 글들이 있어서 몇 번 도움을 받았던 부분이 있었습니다. 이번에 Javin Paul이 Top 20 REST and Spring MVC Interview Questions for Java Developers라는 제목으로 DZone에 글이 하나 올라왔는데 꽤 간단히 정리를 잘했더군요. 초보 개발자나 중급 개발자 정도의 레벨에서 주로 할만한 질문들을 정리해 놓은 글들인데, 일단 제가 볼 때는 3년 이하의 개발자들이 한 번쯤 정리하고 지나간다 생각하고 볼만한 글로 보입니다. 진짜 못하는 영어이지만 간단히 번역해서 소개해 봅니다. 번역은 그냥 반말 대화체로 진행합니다. 말투나 의역이 거슬리더라도 이해 바랍니다. 20개의 질문이라더니 실제로는 22개네요. 정말 번역하시는 분들 존경합니다. 이리 힘든 일을... 원문 :  Top 20 REST and Spring MVC Interview Questions for Java Developers - Javin Paul (DZone) 안녕 친구들! 최근 몇 개월 동안 그리고 오늘까지 REST와 Spring 강좌를 나눠왔는데, 자바 웹 개발자를 지원했을 때 자주 받게 되는 Spring MVC와 REST에 대한 질문들을 나눠볼까 해. 자바 웹 프로그램과 RESTful Web Service를 개발하면서 Springframework는 가장 보편적이고 표준적인 프레임워크이기 때문에, Senior 자바 개발자에게는 Spring Core와 Spring MVC에 대한 충분한 지식이 필요해. 그러나 작업 명세에 REST와 Web Service가 명시되어있다면, 스프링을 이용해서 RESTful web service를 어떻게 개발할 것인가 하는 것도 알아야 해. Spring 3.1 이...

[포스트 공유] Top Five Books to Learn Spring Boot and Spring Cloud for Java Developers

오늘도 다른 이의 포스트를 공유해 드립니다. 몇 년 전부터 매우 핫한 아이템이죠. 스프링부트와 클라우드서비스! 지금은 철 지난 포스트가 되었지만 몇 년 전에 저도 여러 포스트를 올린 적이 있습니다. 버전을 업해서 포스트를 꾸준히 관리해놔야 하는데, 최근 보다 보니 제 포스트보다는 다른 분들의 포스트가 훨씬 훌륭해서 그냥 과거의 산물로 놔두기로 했습니다. (핑계는 그만~~ ^^) 오늘은 그와 관련된 책을 소개한 포스트 하나를 공유하려고 합니다. Top Five Books to Learn Spring Boot and Spring Cloud for Java Developers Infotech 의 Lead Programmer 시고, 제가 자주 가는 DZone 에서도 활발히 활동하시면서 많은 글을 올리시는  Javin Paul 이라는 분의 시각에서 바라본 Top 5 입니다. Top XX 라는 글들을 그리 좋아하지는 않지만 보다 보면 몰랐던 새로운 것을 발견하게 되는 즐거움이 있기도 하죠. 이 글도 최근에 발표된 책들 위주로 정리가 되어있어서 관심 있게 본 글입니다. 참고로 아래는 글에서 언급된 책에 대한 국내 정보와 간단한 정리입니다. 언제나 그렇듯이 원문에는 더 많은 정보가 있으니 꼭 원문을 봐주시길 바랍니다. 1. Spring Boot in Action Walls, Craig가 쓴 책입니다. 국내에서는 스프링부트 코딩 공작소라는 이름으로 번역되어 발매되어 있습니다. 번역본은 2016년 7월 31일에 발매되었다고 합니다. 저도 이 책을 봤습니다만, 스프링부트에 대해서 개괄적인 이해와 동작을 확인하기에 딱 좋은 책이라고 생각합니다. 스프링부트를 사용하고도 한 1년쯤 지나서 이 책을 봤던 거 같은데, 그냥 무작정 검색하고 레퍼런스를 참고해서 쓸 때의 약간의 답답한 부분들을 해소해줬던 책이었던 기억이 있습니다. 다시 보면서 좀 더 정확한 감상을 적고 싶지만, 서울집에 책이 있어서... 2. Cloud Native Jav...

Springframework 5에서 바뀌는 것들에 대한 간단 정리 및 생각

Spring framework 5 에 대해 많은 분이 기대와 두려움을 가지고 계시지 않을까 생각합니다. 특히 기대를 하고 계신 분들은 Reactive Programming 지원을 기대하고 계시지 않은가 생각이 드는데요. 7월 초에 John Thompson 이란 분이 D-Zone에 아주 깔끔하고 멋지게 정리를 잘해서 글을 쓰셨더라구요. 해당 글은  https://dzone.com/articles/whats-new-in-spring-framework-5 에서 확인을 하실 수 있습니다. 혹시 Spring framework 5에서 달라지는 내용의 좀 더 자세한 내용이 필요하신 분들은 Spring framework github의 wiki 를 참고하시면 됩니다. 본 포스트는 언제나 그렇듯이 윗글에 대한 번역이 아닙니다. 그저 윗글을 다시 정리하면서 제 생각을 한번 정리해 놓은 포스트입니다. Spring framework 5는 현재 5.0.0.RC2(2017.07.23일 기준)까지 릴리즈된 상황입니다. Spring framework 5에서 크게 변화하는 내용을 John Thompson은 8가지로 깔끔하게 정리해주고 있습니다. 1. JDK 지원 버전의 업데이트 5버전은 원래 JDK 9 버전의 지원을 위해서 시작됐던 프로젝트로 알고 있는데 맞는지는 모르겠네요. JDK 9의 Release가 늦어져서 Spring framework 5가 먼저 Release 될 것으로 보이지만, JDK 9가 Release가 되면 언제건 적용할 수 있다고 합니다. 좀 아쉬운 부분은 JDK의 최소 버전은 JDK 8이라는 부분이 아닐까 싶네요. 이 때문에 Spring framework 5에 무관심한 분들도 많으실 거라고 생각합니다. 지금 진행하는 프로젝트는 JDK 8을 기반으로 합니다만, 최근까지 다니던 회사의 경우는 JDK 7까지가 업그레이드 한계였던 회사였습니다. 아마도 JDK 업그레이드를 쉽게 못 하시는 회사들이 많으니 "나랑은 관계없는 얘기군...

Spring Vault 1.0 goes GA Release

Spring Vault 프로젝트에서 드디어 1.0.GA 버전을 릴리즈했네요. 사실상 본격적인 릴리즈가 시작된 것으로 보입니다. 꽤 많은 Spring Project에 관심을 가지고 지켜보고 있었습니다만, 작년 후반부터 Spring Vault 프로젝트도 제 관심사 중의 하나였습니다. Vault 프로젝트 를 기반으로 Spring에서 진행해 온 프로젝트인데, 민감 정보에 대한 암호화에 관심이 커지고 있는 상태에서 적절하게 진행된 프로젝트가 아닐까 생각합니다. Vault 프로젝트에서 이야기하는 기능 설명은 대충 아래와 같습니다. Vault  secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing. Vault handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more. 최근 마이크로서비스 아키텍처라던가 클라우드 네이티브 애플리케이션이라던가 하는 추세여서 중앙 집권화된 컨피규레이션 관리 등이 중요해지면서 나온 프로젝트가 아닐까 하는 생각에 관심이 있었지만, 사실 그동안 마일즈스톤 버전이었었어 깊게 보지는 않았던 내용입니다. 하지만, 어떤 기능들이 어디까지 어떤 식으로 만들어졌는지를 이제 좀 깊이 있게 볼만한 때가 된 것 같네요. (역시 저는 얼리어답터는 아닌 것 같습니다) 시간이 오래 걸리겠지만, 너무 오랜 시간이 지나기 전에 간단한 사용처를 찾고...

Spring IO, Spring Boot, Spring Cloud 를 이용한 Configuration Server의 구축

서문 프로젝트를 진행하다보면, 배포 환경에 따른 설정 파일 관리에 여러가지로 어려움을 겪는 경우가 많다. 개발 환경설정파일에만 내용을 넣고 배포를 한다던가 배포시에 프로파일을 잘못 설정해서 배포가 된다던가 하는 실수들은 작지만 상당히 귀찮은 확인 작업을 동반하기도 한다. 그나마 자동화된 배포툴(Hudson 등등)을 사용하여 잘 짜여진 배포 프로세스를 만들어 놓은 훌륭한 회사에서는 그나마 이런 실수들을 줄일 수 있는 방법이 많지만, 아직도 쉘을 이용한 배포를 하는 우리 회사 같은 경우는 작업자의 실수를 가끔씩 겪을 수 밖에 없다. (이 경우 윗 사람으로 부터의 더 가혹한 소리들을 들어야만 한다. 부주의에 의한 실수이기에...) 특히, 실수가 일어난 경우 해당 내용을 확인하기 위해서는 배포되어있는 서버에 들어가 일일이 파일을 확인해야 하는데 이 작업 또한 만만찮은 귀찮은 작업 중 하나다. 모든 툴 들이 그렇듯 완벽하게 모두 해결해 주지는 않지만 Spring Cloud 의 Configuration 서버의 경우는 간단한 설정만으로도 꽤 괜찮은 솔루션을 제공해주고 있다. 이 글은 최대한 간단하게 만들어진 Configuration Server 에 대해서 정리하고자  작성된 글이다. (거의 Spring Cloud 프로젝트 사이트의 Document 를 간단히 정리한 수준임을 밝혀둔다) 요구사항 - 버전 관리를 편리하게 하고 Gradle 을 간단히 유지하기 위해서 Spring IO 를 이용한다. - Gradle 은 이전 포스트에서 작성했던 multi project 대응의 build.gradle 설정에서 시작한다.   ( 이전글 보기 ) - Configuration Server 는 Configuration Server의 local properties 를 이용한다. (github을 이용한 방법에 대한 설명은 인터넷에 굉장히 많고 spring cloud 프로젝트 사이트의 샘플도 이것으로 되어있으니 참고 바람) Spring ...