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으로 올릴때 버전 업하면 변경해야하는 사항을 여기서 확인해야함 

Buy me a coffeeBuy me a coffee

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단에서 처리하려는 느낌이 많이 듦)


Buy me a coffeeBuy me a coffee

[Hello world 오픈세미나]spring upgrade


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



Buy me a coffeeBuy me a coffee

자바 웹 개발을 하다 아래의 클래스를 불러들이는데에 문제가 생겼습니다.


import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


Eclipse에서 위의 클래스가 import 가 안되는 것이였다. -_-;;

자바 웹 개발에서 가장 기본인 servlet-api.jar 가 빠져서 나오는 거였습니다. Tomcat에서 HttpServletRequest ,HttpServletResponse 등 가장 많이 쓰는 클래스가 들어있는 패키지입니다.

Tomcat에서 servlet-api.jar 파일을 import하여 해결하였습니다만 왜 저런 에러가 나오는지 이해안되군요.

문제 해결은 했으니 원인은 못찾고.. 일정은 급하니 다음에 확인하기로 하였다.

Buy me a coffeeBuy me a coffee

프로젝트명 : 텍스트 큐브 게시판 플러그인 프로젝트

접근 방법

첫주에는 텍스트큐브가 어떻게 돌아가는 지 구조를 알아본다.

|회원 가입 폼을 추가. (팀블로그 권한 확장)

회원 가입 동의 화면을 추가. (약관 등)
회원관리 화면 추가
회원 관리자 기능을 기존 관리자에서 분리한다.
회원 열람/검색/권한 설정 화면 추가
회원 약식 통계 화면 추가
게시판 관리 화면 추가
카테고리 = 하위게시판
개인별 접근 권한 설정 기능을 추가한다.
업로드 파일 제한 기능 추가 (확장자,크기 등)
글 메달기 기능 추가
글 보기 화면 개선
글 네이게이션 확장 (작성자/조회수/작성일/첨부여부/추천수)
간이 투표 기능 추가
투표용 글 여부를 선택
투표 가능 기간 설정
투표 현황 보기


프로젝트 예상 결과
그리고 텍스트큐브의 구조와 자바스크립트의 많은 내용들을 알 수 있을 것 같습니다. 아침놀님의 프로젝트에도 참가하는데 거기에 따른 시너지 효과도 있을 것입니다.

관련 경험/경력
PHP로 학과 홈페이지 작성 및 수정해 본 경험
홈페이지 유지 보수 해보고 웹서버 관리 해본 경험
텍스트큐브 설치 및 사용해본 경험
웹개발쪽에서 PHP와 JAVAscript로 사용하여 간단판 프로그램을 짜본 경험이 있습니다.
오픈아이디에 관심 많아서 http://www.studioego.info/openid/ OpenID예제를 따라해 본 경험도 있습니다.

프로젝트에 가능한 시간은?
1주일에 10시간 정도 가능.

해당 프로젝트를 선택하게 된 동기
테터캠프에 여러번 참가를 해보고 텍스트큐브를 사용을 해보면서 나도 텍스트큐브 개발에 참여를 해보고 싶다는 생각을 하다고 실천에 옮기기로 하여 선택하게 되었습니다.

멘토에게 하고 싶은 말 (혹은 질문)
1. 여기에 참가하게 되면 텍스트큐브 개발자에 이름이 박히는 건가요?
2. Textcube를 제 계정(http://studioego.info/blog/)에 설치를 하였답니다 :)
3. 홍문관에서 있던 교육이야기가 WoC라서 놀라웠습니다
4. 꼭 되었으면 좋겠습니다.


Buy me a coffeeBuy me a coffee

MVC Pattern, originally uploaded by Dario Santarelli.

MVC(Model, View, Controller)는 게임 개발, 윈도우즈 프로그래밍 개발,웹 어플리케이션 개발등 여러군데서 많이 사용한다.
MVC패턴을 모르고서는 프로그래밍을 할수 없을 정도로 많은 기업이나 오픈소스프로젝트에서 소스의 유지보수를 위해서, 구현의 효율성을 높이기 위해서 많이 쓴다.

MVC 패턴

MVC패턴은 Smalltalk에서 그래픽 인터페이스와 실제로 동작하는 코드를 분리하기 위해 개발되었다 지금은 다른 객체지향언어에서도 널리 사용되는 패턴 중 하나이다.

웹 어플리케이션에서 사용하는 MVC 패턴
MVC 패턴의 기본 개념은 사용자에게 보일 페이지(View)와 데이터 처리(Model), 그리고 이들 상호간의 흐름을 제어(Controller)하는 모듈을 분리하는 것이다. 이렇게 함으로 더 쉽게 웹 애플리케이션을 확장하고 유지, 보수를 할 수 있다.
(여기서는 JAVA Web 개발에 관한 MVC 패턴을 다룬다)

모델(Model)
모델(model)이란 어떠한 동작을 수행하는 코드를 말한다. 표시 형식에 의존하지 않는다. 다시 말해, 사용자에게 어떻게 보여질지에 대해 신경쓰지 않아도 된다. 모델은 순수하게 public 함수로만 이루어진다. 몇몇의 함수들은 사용자의 질의(query)에 대해 상태 정보를 제공하고 나머지 함수들은 상태를 수정하는 함수이다.

웹어플리케이션에서 모델(Model)은 데이터 영역으로 DAO(Data Access Object), DO(Data Object) 등으로 구분해 구현하기도 한다. 하이버네이트, 아이바티스와 같은 퍼시스턴스 프레임워크를 사용하기도 한다. EJB와 연동할 수 있으며 EJB 3.0의 POJO 기반의 퍼시스턴스 API도 있다.


뷰(View)
MVC에서 모델은 여러 개의 뷰(view)를가질 수 있다. 뷰는 모델에게 질의를 하여 모델로 부터 값을 가져와 사용자에게 보여준다.
웹어플리케이션에서 뷰(View)는 JSP를 기본으로 표현 언어, JSTL, 커스텀 태그 라이브러리 등을 함께 사용하며, 모듈화 된 사용자 인터페이스 모델인 JSF(Java Server Faces)도 이용할 수 있다.


컨트롤러(Controller)
MVC의 뷰는 여러 개의 컨트롤러(Controller)를 가지고 있다. 사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다. 컨트롤러는 모델의 mutator 함수를 호출하여 상태를 바꾼다. 이 때 모델의 상태가 바뀌면 모델은 등록된 뷰에 자신의 상태가 바뀌었다는 것을 알리고 뷰는 거기에 맞게 사용자에게 모델의 상태를 보여 준다.
웹어플리케이션에서 컨트롤러(Controller)는 MVC 패턴의 중심이 되는 부분으로, 직접 구현하거나 구현된 솔루션을 이용할 수 있다. 대표적으로 스트러츠 프레임워크(struts Framework)나 스프링 프레임워크(Spring Framework)가 있다.

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

Android SDK 설치  (0) 2008.12.14
오랜만에 만져본 JAVA  (2) 2008.12.02
내가 보아야 할 Ruby 관련 책들  (2) 2008.05.14
Ruby를 맛봅시다.  (2) 2008.04.30
10.Raw Socket  (0) 2008.04.29
Buy me a coffeeBuy me a coffee

에이콘출판사 - 웹 개발 2.0 루비 온 레일스

웹 개발 2.0 루비 온 레일스
카테고리 컴퓨터/인터넷
지은이 황대산 (에이콘출판, 2007년)
상세보기

 예전에 루비가 대세라는 말이 뜨면서 작년인 2007년 12월 20일에 사본 책이다.

책에 있는 예제를 따라하면서 루비가 엄청 쉽구나를 알게 되었지만, 프레임워크(Framework)이라는 용어도 생소하고, MVC라는 용어도, Model, View, Controller[각주:1]의 역할에 대해 이해 못한채로 따라만 하고 덮은 책이였다.

Ruby라는 언어라는 것을 처음 알게 된 책이면서, 책을 열심히 보면서 Ruby란 언어가 예전에 써보았던 Perl의 강력한 정규표현식처리, Prolog의 함수형 프로그래밍언어의 내용, C++, JAVA에서 볼 수 있는 객체지향성을 통합시킨 것을 알게 되었다.

Perl을 써보면서 강력한 문자 처리에 감동하고 이번 학기 프로그래밍 과제하는데 Perl을 가지고 파일 옮기고 유사도 검사를 해보았던 생각을 해보면서 루비로도 해볼까라는 생각을 해보았다. Prolog와 같이 다른 함수를 정의하는 함수를 정의하는 함수를 작성하는 프로그래밍기법을 사용하여 다양한 종류의 함수 정의를 자동화 시키는 기법에 대해서도 신기하게 느꼈다.
(프로그래밍언어 시간에 Prolog로 과제 하다 함수정의하다 이해안되는 부분때문에 몇일동안 고생한 기억이 나서 Prolog에 대해서 기억이 안좋다만, Ruby를 다뤄보니 Prolog과 유사한 부분이 많아서 신기했음)

프로그래밍 언어인 Ruby의 문법을 보면서 일본사람이 정말 Ruby란 언어 잘만들었다는 생각이 들었다.

이분이 Ruby를 만드신 마츠모토 유키히로(松本 行弘, Yukihiro Matsumoto)

이번에 다시 루비언어를 다시 기억을 다시 되살린다고 책을 다시보게 되었다. (루비를 써봐야 하는 입장이 되어서 급하게 책을 펼쳐보았다.)

책에 있는 예제를 그대로 따라하는데에 오류가 생긴 것이다. ㅠㅠ

책에 있는 내용대로 따라해서 ruby 1.8.4를 설치한 다음에 rails를 gem으로 설치하는 것인데 gem으로 rails를 설치하면 책에서 설치하는 것 같은 rails-1.2.2가 설치되지 않고 rails-2.0으로 설치되는 것이다.
rails-2.0으로 설치가 되니 rails-1.2에서 없는 문제가 생겼다.

그것은 책에서 쓰는 scaffold가 rails-2.0에는 없다는 치명적인 에러이다.

그래서 책의 예제를 따라하기 위해서는 책에 있는 내용을 아래와같이 수정을 해야할 것 같다.

c:\> gem install rails --include-dependencies

현재 위에서 같이 쓰여진 책의 내용을 쓰면 rails-2.0이 깔려져서 책의 예제를 따라하기 어렵다. 책의 예제를 따라하기 위해서 (특히 scaffold 부분의 경우) 레일스 1.2.3을 다시 설치해야 한다.

c:\> gem uninstall rails
c:\> gem install rails --version '= 1.2.3' --include-dependencies

위의 설치명령어로 설치를 하면 책에 있는 예제가 잘 될 것이다.

책은 잘 써진 것 같은데 버전 문제가 껄끄럽긴 합니다. 책 쓸 당시에는 이렇게 바뀔줄은 몰랐기 때문이라고 생각됩니다.

Ruby on Rails를 프로그래밍을 해야할 상황인데 Ruby를 빠르게 배우고 싶다면 이 책을 추천하긴 한데 책의 내용을 약간 바뀌어서 내야 할것 같다.

아래는 Rails Framework에 대한 출판사의 설명이다.

[ 레일스 프레임워크에 대해 ]

레일스는 루비 프로그래밍 언어로 만들어진 웹 개발 프레임워크로 덴마크의 데이빗 해너마이어 한슨(David Heinemeier Hansson)에 의해 2004년 7월 처음 공개되었다. 지난 3년간 레일스는 전 세계적으로 빠르게 확산되어 왔으며, 현재까지 레일스로 구축된 B2C 사이트만도 수백여개에 이르고 있다.

레일스가 이처럼 빠른 성공을 거둘 수 있었던 데에는 몇 가지 이유가 있다. 첫째로 오늘날의 웹 개발은 너무나도 복잡해져서 수많은 개발자들이 웹 개발에 넌더리를 내고 있었다. 자바, PHP, .NET 등 개발 환경을 막론하고 많은 웹 개발자들은 뭔가 새로운 것을 시도해 볼 마음의 채비를 하고 있었다.

둘째로 레일스는 개발자의 생산성을 획기적으로 높여 준다. 레일스는 ORM(객체/관계 매핑, Object/Relational Mapping), 코드 생성(Code Generation), 메타프로그래밍 등 최신 프로그래밍 기법을 사용해 개발자가 코딩에 들이는 시간을 현저히 줄여주고 있다. 비슷한 코드를 계속해서 반복적으로 작성하는 일은 개발자의 사기를 떨어뜨리는 일이다. 레일스는 위에서 언급한 프로그래밍 기법을 활용하여, DRY(반복적인 코딩 작업은 피하시오, Don’t Repeat Yourself) 원칙을 적극적으로 장려하고 있다.

셋째로 레일스는 웹 2.0 애플리케이션의 개발에 최적화된 프레임워크이다. 레일스에는 Ajax와 웹 서비스 개발을 위한 컴포넌트가 포함되어 있어서 웹 2.0 서비스를 구축하는 작업을 매우 편리하게 해준다. 실제로 레일스에서는 Ajax 애플리케이션을 개발하기 위해 자바스크립트를 직접 코딩하는 일은 하지 않아도 된다.

마지막으로 레일스를 사용한 웹 개발은 즐겁다. 지금 이 글을 읽는 독자는 다소 회의적인 생각이 들지도 모르겠지만, 이는 레일스를 접해본 수많은 웹 개발자들의 공통된 반응이다. 이 책을 통해 독자 여러분이 레일스가 선사하는 즐거운 웹 개발의 세계를 발견하게 된다면 필자는 그보다 더 큰 보람이 없을 것 같다.
  1. MVC에 대해서는 소프트웨어공학시간에 나오는 개념이다. Model, View, Controller의 약자로서 애플리케이션 코드를 기능별로 분산하여 관리하는 프로그래밍을 말한다. 코드를 분산해서 관리하는 이유는 용도에 따라서 코드의 형태나 구성이 달라지기 때문이다. 결국 이렇게 코드를 나눠 작업함으로써 코드를 좀더 효율적으로 관리하게 되면서 프로그래밍 개발이 효율적으로 진행된다. 자세한 내용은 소프트웨어공학책에 나옵니다. (뇌이버 검색하면 MVC패턴에 대해서 나옵니다.) [본문으로]
Buy me a coffeeBuy me a coffee
요즘 잡지(마이크로소프트웨어)나 여러 기사들을 보면 Ruby란 것을 많이 듣게 됩니다.
제가 많이 쓰는 Me2day나  스프링노트, 스프링로그, 다음 캘린더 등등 여러 Web Application들이 Ruby on Rails를 이용하여 만들었다는 것을 알게 됩니다.

이런 추세를 보아할때 Ruby, Ruby on railsJAVA보다 더 많이 유행 할 것같은 예감도 듭니다.

실제로 Ruby on Rails관련 책을 읽어볼때마다, Perl같은 언어의 간결함에 놀라고, 코딩할때의 삽질이 많이 없다는 것에 놀랍니다. (그렇다고 Ruby에 익숙해지기 위해선 오랜 시간이 걸리긴 합니다.)
Perl이나 함수형언어인 Prolog를 처음 접해보았을때 당황했던 기억을 Ruby에서 경험한다는 말이죠. ㅎ

참고로 Ruby, Ruby on rails에 대해서 알아볼까요?
Ruby는 1995년 마츠모토 유키히로(松本行弘, Matsumoto Yukihiro) 가 소개한 OOP(객체지향프로그래밍 언어)입니다.
※ 국내에 번역된 책들을 보면 Ruby 창시자를 유키히로 마츠모토라고 하는데 영어를 무작정 번역하다 보니 이름-성을 부르는 것이다.
2001년도 데이브 토마스와 앤드류 헌트의 『Programming Ruby』출판을 계기로 전세계에 알려지기 시작하여 웹어플리케이션작성 언어로 많이 쓰여지는 것 같다.

Ruby는 Smalltalk, 함수형언어인 Lisp, Perl의 영향을 받았으며, C나 자바같은 언어에서 찾아볼수 없는 여러가지 강력한 기능을 제공한다.

Rails는 Ruby 프로그래밍 언어로 만들어진 웹 개발 프레임워크로 덴마크의 데이빗 해너마이어 한슨(David Heinemeier Hansson)에 의해 2004년 7월 처음 공개되었다.

다들 Ruby on rails라 하니 대세를 따라 Ruby on rails를 공부하게 되었습니다.
요즘 제가 보고 있는 Ruby on rails 책이다.
웹 개발 2.0 루비 온 레일스 상세보기
황대산 지음 | 에이콘출판 펴냄
즐겁고 빠른 웹 개발! 차세대 웹 개발 프레임워크 레일스와 함께! 루비 온 레일스 입문서. 이 책은 레일스 1.2를 중심으로 기초부터 활용까지 다양한 예제를 중심으로 설명한다. 레일스 개발에 필요한 각각의 메뉴와 블로그 애플리케이션 만들기 실전 예제 등을 담았다. 또한 책 뒤편에는 루비 주요 클래스 API와 레일스 명령어, 메소드 요약표를 함께 설명한다.


책을 보면서 Ruby on rails를 프로그래밍을 습득을 할수 있지만 웹사이트에서 15분간 투자를 하면 Ruby를 맛볼수 있는 사이트가 있는 것을 알았습니다.
http://tryruby.hobix.com/

http://tryruby.hobix.com 사이트 화면

http://tryruby.hobix.com/ 사이트 화면입니다. Ruby에 대해 15분만에 알수 있는 사이트라고 합니다.


위 사이트에서는 Ruby를 15분만 투자해보면 금방 배울수 있다고 하더군요.
한번 해보니까 책을 보고 타이핑하는 것보다 재미가 있습니다.
저는 Ruby의 세계에 빠져보아야 할듯 합니다. ㅎㅎ

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

Android SDK 설치  (0) 2008.12.14
오랜만에 만져본 JAVA  (2) 2008.12.02
MVC Pattern  (1) 2008.07.21
내가 보아야 할 Ruby 관련 책들  (2) 2008.05.14
10.Raw Socket  (0) 2008.04.29
Buy me a coffeeBuy me a coffee

+ Recent posts