2020년 5월 15일에 Spring Boot 2.3.0 이 출시되었다고 함.

https://spring.io/blog/2020/05/15/spring-boot-2-3-0-available-now 

 

바뀐점은 다음과 같음

의존성 관련 버전 업그레이드 

  • Spring Data Neumann
  • Spring HATEOAS 1.1
  • Spring Integration 5.3
  • Spring Kafka 2.5
  • Spring Security 5.3
  • Spring Session Dragonfruit

그리고, 서드파티 라이브러리도 의존성관련으로 업그레이드가 됨

  • Cassandra Driver 4.6
  • Couchbase Client 3.0
  • Elasticsearch 7.6
  • Kafka 2.5
  • Micrometer 1.5
  • MongoDB 4.0

Java 14 지원

Docker 지원

Graceful shutdown (우아한 닫기) 지원

Liveness and readiness probes, Spring Data Neuman, 등등 여러가지 추가 및 변경사항 생김을 확인,

 

Spring boot 2.3.0에 대한 문서는 아래를 참조하여 확인하면 될것 같음.

https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/html/index.html

 

Spring Boot Reference Documentation

The reference documentation consists of the following sections: Legal Legal information. Documentation Overview About the Documentation, Getting Help, First Steps, and more. Getting Started Introducing Spring Boot, System Requirements, Servlet Containers,

docs.spring.io

 

ps. 오래간만에 본업에 관련한 글을 올림. 

ps2. 참고할만한 Spring 관련 Git프로젝트

https://github.com/spring-io/sagan

 

spring-io/sagan

The spring.io site and reference application. Contribute to spring-io/sagan development by creating an account on GitHub.

github.com

ps3. Spring Boot 2.3출시 정보와 Spring Boot 2.2에서 2.3으로 이전할때 가이드

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes#upgrading-from-spring-boot-22

 

spring-projects/spring-boot

Spring Boot. Contribute to spring-projects/spring-boot development by creating an account on GitHub.

github.com

ps4. Spring boot에 Jasypt 통합 라이브러리 

https://github.com/ulisesbocchio/jasypt-spring-boot

 

ulisesbocchio/jasypt-spring-boot

Jasypt integration for Spring boot. Contribute to ulisesbocchio/jasypt-spring-boot development by creating an account on GitHub.

github.com

Spring boot2.3으로 올릴때 버전 업하면 변경해야하는 사항을 여기서 확인해야함 

JDK9의 55가지 새로운 기능(55 New Features in JDK 9)



https://jdk9.java.net/download/ 에서 Early Access Release 를 다운로드 받음.


Java9 early Access Releases - https://jdk9.java.net/download/Java9 early Access Releases


Java9 의 Jigsaw project


Prepare for JDK 9  - Java9에 대한 소개 

Alan BatemanJava Platform Group, Oracle September 2016


OWASP(The Open Web Application Security Project) 문서 참조

https://www.owasp.org/index.php/Java_gotchas#Immutable_Objects_.2F_Wrapper_Class_Caching 


위의 링크에서 동등성 비교에 대하여 좋은 내용이 들어감.


가끔가다, 나도 값을 비교할 때와 객체 동등성을 확인할 때,  '=='을 사용해야 할지 equals를 사용해야 할지 정말 헷갈릴 때가 있음.


"==" - 항상 객체 동등성 비교할 때 사용

equals - 항상 객체 안의 값을 비교할 때 사용.

2016년 5월 21일

일본 Java 유저 그룹 2016년 정기총회 (JJUG, 日本Javaユーザーグループ 2016年度定期総会) 의 발표 자료 및 블로그 링크 정리한 링크 공유합니다.


JJUG CCC 2016 Springの発表資料,ブログ記事まとめ

JJUG CCC 2016 Spring의 발표자료, 블로그 기사 정리

 https://github.com/jjug-ccc/slides-articles-2016spring


피보탈(Pivotal) 엔지니어이면서, 스프링부트 책을 작성한 마키 토시아키(槇俊明, Toshiaki Maki)씨가 발표한 스프링 프레이워크와 스프링 부트 슬라이드 입니다.


#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's Cloud Native Approach


아래는 "What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's Cloud Native Approach" 슬라이드를 공개한 트윗 링크입니다.



마키 토시아키(槇俊明, Toshiaki Maki)씨가 작성한 스프링부트 책의 한국어 번역판 소개

가장 빨리 만나는 스프링부트
국내도서
저자 : 마키 토시아키 / 김범준역
출판 : 길벗 2015.07.02
상세보기


위의 "가장 빨리 만나는 스프링부트"책의 원본 표지입니다.



ps. 마키 토시아키(槇俊明, Toshiaki Maki)씨의 트윗을 보니 조만간에 위의 책의 개정판을 Spring Boot 1.4 기준으로 내놓는다는군요


Ubuntu 14.04에서 Oracle Java JDK 설치 

Ubuntu에서 Java를 설치하려면 Open JDK가 기본 선택을 설치됨. 그러나 Oracle JDK를 설치하려면 아래의 명령어(command)를 입력하여 설치해야함.

sudo apt-get update
sudo apt-get -y install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get -y install oracle-java8-installer
sudo update-java-alternatives -s java-8-oracle
sudo apt-get install oracle-java8-set-default


이번 SpringOne2GX 2015에 발표된 내용. 기존 Java코드(Legacy code)를 Java8으로 바꾸는 방법


Transforming Code to Java 8

Recorded at SpringOne2GX 2015. 

Speaker: Dr. Venkat Subramaniam 

The new facilities in Java 8 is about the change the way we write code. Our code will become more expressive and concise. But, exactly how?




이제 슬슬 Java8에 대하여 대응을 해야겠음. 그래서 Java8책을 정독하고 문서도 계속 읽어봐야겠음.


Spring Framework도 Java8을 사용할수 있다고 하니 미리미리 대응을 해야 겠음.

Spring Framework on Java 8


Speakers:Juergen Hoeller 

Core Spring Track

Spring has a track record of providing dedicated support for new Java generations in a timely fashion, and now it’s right about time to go Java 8: With Spring Framework 4.0, we're providing in-depth support for all relevant OpenJDK 8 features, including lambda expressions, JSR-310 Date and Time, parameter name discovery, and java.util.concurrent enhancements. This talk will illustrate basic Spring Framework 4.0 concepts, and selected Java 8 features within Spring's programming model, exploring the impact on application architectures.


슬라이드(Slide)



SpringOne2GX 2015에 발표된 자료입니다.

Modern Java Component Design with Spring Framework 4.2


슬라이드(Slide)



스프링 시큐리티로 시작하는 웹 어플리케이션 보안  슬라이드

 

Spring 2gx 2015에서 발표한 "DevOps를 위한 스프링부트(Spring Boot for DevOps)" 동영상과 슬라이드가 공개되었습니다.

Spring Boot for DevOps

DevOps(개발과 운영을 한 조직에서 동시에 운용)에서, Health check등 운영할때 사용하는 Spring Boot의 기능에 대한 동영상과 슬라이드 입니다.

Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes. However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I'll demo some of those, that will make DevOps more than a little happy.


DevOps에 대한 내용은 아래 링크로 자세히 알아보시기 바랍니다.



はじめての Spring Boot - 槙 俊明(마키 토시야키. Toshiyaki Maki) 著はじめての Spring Boot의 한국어 번역판 "가장 빨리 만나는 스프링 부트"


はじめての Spring Boot (한국어 번역본: 가장 빨리 만나는 스프링부트)책을 집필한, 일본에서 유명한, 자바 개발자 Toshiyaki Maki(槙 俊明, 마키 토시야키)님이 Spring Boot 1.3의 특징에 대하여 2015년 8월 1일에 시부야자바(渋谷Java)에서 발표한 슬라이드 입니다.


참고로 Spring Boot Github에 올라온 Spring Boot 1.3 Release Notes를 보면 출시 예정인 Spring Boot 1.3이 어떻게 변할지에 대하여 더욱 더 자세히 알 수 있습니다.

현재 이 글을 작성할 시점인 2015년 9월 29일 화요일에, Spring Boot 1.3.0 M5 Release https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.3.0-M5-Release-Notes 가 최신입니다. 

2015년 6월 26일 금요일 오후 9시

"나는 프로그래머다" 팟캐스트 생방송으로 진행한 "모던 자바의 역습" 동영상 및 슬라이드입니다.

모던 자바의 역습 동영상

모던 자바의 역습 슬라이드

 Spring.io Blog - Spring Guides Move to Java 8 (스프링 가이드들이 자바8기준으로 변경되었다)


스프링 블로그의 "Spring Guides Move to Java 8 " 글(Article)을 번역하였습니다.

Java8를 학습해야된다는 걸 알린 "Spring Guides Move to Java 8(https://spring.io/blog/2015/06/17/spring-guides-move-to-java-8 )" 기사를 보니 주위의 다른 사람들에게 Java 8 학습의 중요성을 전파하기 위하여 번역을 하였습니다.



Spring Guides Move to Java 8

https://spring.io/blog/2015/06/17/spring-guides-move-to-java-8 

Perhaps you’ve noticed some recent articles lately?(아마도 최근에, 당신은 여러 최근 기사를 확인했습니까?)


좋다. 그 마지막의 2개의 링크는 기사(articles)는 아니지만, Java 8의 급속한 도입으로 의해 기사 대신 채택되었다.

자바 8은 빠르게(FAST) 개발 커뮤니티에 의해 채택되고 있습니다. 현재 스프링팀은 새로운 애플리케이션에 Java8의 채택을 강력하게 믿습니다. 당신의 기존 자바 능력을 잘 이전시키는 것을 향상하고 지원하기 위하여, 우리는 Java8로 스프랑 시작 가이드(Spring Getting  Started Guides)의 전부를 업데이트를 하였습니다. 


Jam-packed list of advantages(Jam으로 포장된 목록의 장점)

  • Java SE의 최근, 그리고 최고의 안정된 버전(기능, 성능, 그 이상의 것들)
  • 가이드의 내용은 쉽고, 필요하다면 백앤드(backward)로 이전이 쉽다. 심지어 람다맵(lambdas map)은 싱글 메소드 인터페이스로 멋지게 매핑합니다.
  • 시작 프로젝트처럼 가져오는것은 단단하고, 최신 설치를 시작할수 있게 해준다.

자바 7(Java 7)의 공식 업데이트가 끝나는 이 시기에, 자바 8 SDK(Java 8 SDK)와 주어진 스프링팀의 코드를 주고 손으로 쉽게 작업할 수 없는 개발자들은 아주 가능성 없이 보인다.


SpringOne 2GX 2015 is around the corner! (SpringOne 2GX 2015가 코앞에 와 있다!)

곧, 워싱턴에서 열리는 SpringOne2GX(SpringOne2GX in Washington, DC soon)에 예약할 수 있다. 조기등록가격(Early Bird Price)이 8월14일자로 만료된다!  이건 그야말로 직접 모든 것을 가깝게 발견할 수 있으며, 직접 피드백을 제공받을수 있는 최고의 기회이다. 

Discounts(할인)

  • 조기할인가격 제도(6월 13일~8월 14일)은 $150달러가 할인되었습니다.
  • 4명 등록시 5번째 패스는 공짜로 얻습니다. 무료 패스코드를 위해서는 우선 4명 등록자의 이름들을 알려주셔야 합니다. (컨퍼런스 입장만 가능)
  • Alumni(졸업자?) 는 할인 코드를 위해 연락하십시오. (여러 선택사항에 대해 $150할인)


Happy Coding!(즐거운 코딩!)


ps. 번역의 품질을 올리기 위하여 피드백을 받습니다.

관련링크

Project Sagan: open-sourcing spring.io - https://spring.io/blog/2014/03/27/project-sagan-open-sourcing-spring-io

Sagan Project Repository: https://github.com/spring-io/sagan


Sagan Project(세이건 프로젝트)는 Spring Framework를 개발/운영하는 팀이 참여한 spring.io 의 레퍼런스 앱 프로젝트입니다.

인터넷에 검색하면 수 많은 Spring Framework로 된 많은 예제 파일들이 많으나, 돌아가지 않는 예제가 많거나, 오래된 코드.라이브러리 사용으로 최신 버전의 Java와 충돌되거나 라이브러리들의 충돌로 작동이 안되는 경우가 많습니다.

위의 문제를 해결하고자 Spring.io에서 Spring Framework로 된 레퍼런스 앱인 Sagan Project를 오픈소스화를 하여 출시하였습니다.

아래는 Sagan Project에 대한 SpringOne2GX 2014 동영상과 슬라이드입니다. 


Inside spring.io: a Production Spring Reference Application

Recorded at SpringOne2GX 2014.
Speaker: Brian Clozel
Slides: http://www.slideshare.net/SpringCentr...
Core Spring Track
Come take a look inside the newly open-sourced reference application that powers the http://spring.iosite, including:

Idiomatic use of Spring Boot
Taking advantage of Spring Framework 4 features
A tour of our JavaScript frontend using cujoJS's curl, Bower and Gulp for a clean and modular design
Zero-downtime deployment to Cloud Foundry using blue/green deployments
And more, with plenty of time for Q&A


Slide 자료

Inside spring.io: a Production Spring Reference Application


2015년 4월 18일 Spring Camp(http://www.springcamp.io/2015/) 에서 위의  SpringOne2GX 2014 발표자료를 참고하여 만든 한국어 자료

spring.io를 통해 배우는 spring 개발사례



Spring 2.x부터 개발을 해본 사람으로서 Spring 4.X까지의 발전을 보니 7년사이에 엄청 많이 바뀌었다는 걸 느꼈음.

(대학원때부터 Spring Framework에 대하여 보긴했음 처음에 IoC(Inversion of Control), DL(Dependency Lookup),DP(Dependency Pull), DI(Dependency Injection) 개념이 책에 나오니 이거 뭥미 하며 헤메던 기억이 나군요 (MVC 소스코드만 Copy & Paste만 하면 되긴 하다만 그런건 학원에서 언제든지 배울수 있는 내용들 -_-;;)

ps. 참고할만한 아래의 자료들  

Spring Camp 2014(http://www.springcamp.io/2014/)에서 발표된 Spring Boot 

Spring-Boot (springcamp2014)



Java의 HTTP/2 지원과 Servlet 4.0에 대하여 소개한 슬라이드

HTTP/2 Comes to Java What Servlet 4.0 Means to You

ps. HTTP(HyperText Transfer Protocol)을 "하이퍼본문전송규약"으로 번역하기도 합니다.

InfoQ에 나온 "Building Microservices with Spring Boot"글 링크


Spring-boot에 대한 2015년 2월 10일자 따끈따끈한 자료입니다.

이거 보고 웹서비스 도입해봐야할듯 



Angular 2 Core slides




2014년 12월 11일 추가 

Angular js 2.0 preview


최범균님의 Java8 람다(Lambda) 및 스트림(Stream) API 소개 슬라이드

SK Planet에 근무하는 박성철님의 Java 8에 대한 슬라이드

2011년도말 슬라이드이지만 아직도 Spring Framework3를 사용하는 곳이 많으므로 아직도 볼만한 자바 웹개발 시작하기 슬라이드 모음

(현재 2013년 12월경에 Spring Framework 4.0이 나왔지만 아직 4.0대로 완전히 넘어가지 않았고 3.0과 비슷한 점이 많으니 3.0쪽을 많이 보면 됨. 2.0에서 3.0으로 넘어갈때 @(annotation)으로 바뀌면서 완전 바뀌고 3.0에서 4.0으로 넘어갈때엔 xml를 가급적 피하고 java단에서 처리하려는 느낌이 많이 듦)


[Hello world 오픈세미나]spring upgrade


스프링 어플리케이션의 문제해결사례와 안티패턴



카산드라(Cassandra) 최신 버전 CLI프로그램을 실행하려니 아래와 같은 오류가 나옴을 확인할 수 있습니다.

현재 이 맥에서는 JDK 1.6이 설치된 상태입니다.


Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/cassandra/cli/CliMain : Unsupported major.minor version 51.0


이 에러는 자바(Java)의 컴파일 버전이 충돌이 났을때 생기는 에러입니다.

아래 표는 자바 클라스 버전 명칭을 정리한 표입니다.

  major.minor version

Java SE 8 

52

Java SE 7

51

Java SE 6

50

Java SE 5

49

Java SE 1.4

48

Java SE 1.3

47

Java SE 1.2

46

Java SE 1.1

45


정리하면 JDK 1.7로 컴파일된 class파일을 맥에 깔린 JDK 1.6에서 로드할때 "JDK1.7 class파일은 지원하지 않습니다" 에러를 뿝는거라고 보면됩니다.


위의 경우는 맥에 JDK1.7을 설치하면 해결된다고 보면 됩니다.

java 8 람다식 소개와 의미 고찰


박성철님의 자바 8 람다의 이해와 의미 슬라이드


자바 8에서 람다의 내용을 다룬 슬라이드.

아직도 현업에서는 자바 6을 쓰고 있는데 벌써 자바 8이라니 @.@

Java Tools and Technologies Landscape for 2014

2014년 자바 툴과 기술들을 정리한 슬라이드.


Java의 날짜, 시간 클래스의 단점을 이야기 하며 JDK8에서 해결되었다고 보여주는 글.


나라마다,지역마다 역사에 따라, 종교에 따라 날짜와 시간이 달라지는 경우가 있으니, 날짜, 시간 API 설계가 어렵다는걸 느끼게 하였고, 만약에 API를 구현한다면 신중해야한다는걸 깨달았음.


ps. 예전, 스프링 프레임워크로 프로젝트할때 날짜와 시간때문에 고생한 기억이 난지라 ㅠㅠ


JSP에서 성능을 높이기 위한 팁

  1. 문자열 사용을 자제한다.
  2. 정적인 내용은 초기에 생성한다
  3. println()메소드 대신 print()메소드를 사용한다
  4. 출력을 위한 버퍼 크기를 적당한 크기로 조절한다.
  5. 데이터들은 적당한 크기로 중간에 플러시한다.
  6. synchronized를 사용하는 영역을 최소화한다
  7. JSP에서 필요하지 않은 경우에는 세션을 사용하지 않도록 한다.
  8. 정적인 내용을 포함시킬 때는 include 지시어를 사용하고 jsp:include 액션 태그는 사용하지 않는다.
  9. useBean의 스코프를 적절히 지정한다
  10. 적절한 캐쉬 기능을 사용한다
  11. 웹 컨테이너에서 자동적인 리로딩 기능을 제거한다.




iBatis로 작업하다 아래의 에러가 나왔다.


심각: Servlet.service() for servlet dispatcher threw exception

java.sql.SQLException: Error: executeQueryForObject returned too many results.


위의 에러는 executeQueryForObject 대신 executeQueryForList로 사용하면 된다.

건수가 많을 경우 executeQueryForObject를 사용할때 이런 에러가 나온다.


요즘 iBatis로 작업하는 일이 많군요. @.@


  1. Favicon of http://www.dailybuzz.us/news/politics/free-pinball-games-for-vista.html BlogIcon more info here 2012.03.27 22:21

    이 내용은 터윌슨 미(Lat WisnSih)의'his o

아래의 URL들은 Spring Security에서 가상 URL로 처리하는 URL이며, 서블릿 필터 처리 과정에서 감시 되고 처리된다.

위와 같은 URL은 웹 어플리케이션의 Context ROOT에 대해 상대 경로를 가진다.


  • /j_spring_security_check
    사용자명/비밀번호 폼 인증을 위해 UsernamePasswordAuthenticationFilter를 통해 확인함.
  • /j_spring_openid_security_check
    (OpenID Provider에 의해) 반환되는 OpenID 인증을 위해 OpenIDAuthenticationFilter를 통해 확인함.
  • /j_spring_cas_security_check
    CAS SSO 로그인으로부터 돌아옴과 동시에 CAS 인증에서 사용됨
  • /spring_security_login
    auto-generate 로그인 페이지를 사용하도록 설정할때 DefaultLoginPageGeneratingFilter에서 사용하는 URL
  • /j_spring_security_logout
    로그아웃 액션을 감지하기 위해 LogoutFilter에서 사용하는 URL
  • /saml/SSO
    SAML SSO 사인 온 요청을 처리하기 위해 스프링 시큐리티 SAML SSO 확장 SAMLProcessingFilter에서 사용하는 URL
  • /saml/logout
    SAML SSO 사인 아웃 요청을 처리하기 위해 스프링 시큐리티 SAML SSO 확장 SAMLLogoutFilter에서 사용하는 URL
  • /j_spring_security_switch_user
    사용자를 다른 사용자로 전환하기 위해 SwitchUserFilter에서 사용하는 URL
  • /j_spring_security_exit_user
    사용자 변경 기능을 빠져나가기 위해 사용하는 URL


+ Recent posts