2. Who am I?
• 이름 : 김지헌
• 닉네임 : 허니몬 honeymon
• 서식처 : 산에 들에 바다에
• http://java.ihoney.pe.kr
• @ihoneymon
• ihoneymon@gmail.com
힘들고 지쳐 놀고먹기 힘들기 전까지는
놀고 먹고 싶음 .
3. 목표 !
아래 3 종류 !
• 스프링부트 SpringBoot
• 그레들 Gradle
• 깃 Git
이 어떤건지 대충 이해하고 써보고
프로젝트에 적용하는 것 !!
10. Step01: 스프링부트 프로젝트 생성
$ git checkout step01
• 이클립스 : Create new 'Spring Starte
Projet'
– 인터넷회선이 연결되어 있지 않으면 폭망 ....
• 이클립스 말고 ... 사이트에 올라와 있는
압축파일을 내려받아서 import 할 수도
있음 .
– http://
11. Step02: 그레들 Gradle 래퍼 wrapper
$ git checkout step02
• 다른 사람은 Gradle 을 설치하지 않아도
사용가능하다 !
• 그거면 되지 않는가 ?
12. Step 03: Hello world!
$ git checkout step03
• SpringBoot 는 Spring framework 4.x
기반
• @RestController 는 4.0 부터 추가된
@Controller+@RepsonseBody 퓨전체
!
• springboot-web-stater... 안에는 내장
형 컨테이너 Embedded container 와 기본
웹설정을 포함하고 있다 .
13. Step 04: Spring Data JPA(ORM 맛보기 !)
$ git checkout step01
• 우물 밖은 이미 ORM 이 지배하고 있을지도
?
• SQL Query 의 반복적인 사용을 줄이자 .
• 어차피 사용하는 건 거기서 거기
14. Step 05: 애플리케이션 프로파일 관리
$ git checkout step05
• 애플리케이션 실행과 관련된 설정은 배포
본에 모두 포함한다 .
• 실행에 대한 프로파일은 프로파일과 외부
설정으로 커버가능하다 .
• XML 말고 properties 혹은 YAML 설정이
괜찮다 .
15. Step 06: AngularJS 추가
$ git checkout step06
• jQuery 로 필요한 기능을 한땀한땀 개발하던 시
대는 가라 .
• 프론트엔드도 MVVC 정의를 기반으로 프레임워
크를 바탕으로 개발해보자 .
• 곧 AngularJS 2.0 도 나온다 .
– 나온다면 좋을까 ?
– Meteor 를 사용한다면 어떨까 ?
• 프론트엔드도 패키지관리를 한다 .
16. Step 07: 액츄에이터 Actuator 기능
$ git checkout step07
• 출시 후 구동중인 애플리케이션을 살펴보
기 위한 기능이 필요하다 .
• spring-starter-actuator 가 그걸 제공
하마 .
• 아직 써보지 못한 것이 좀 된다 .
19. XML 설정은 좋아하지 않는다
.
http://clusterbanana.tistory.com/267
20. If you absolutely must use XML based
configuration...
we recommend that
you still start
with a
@Configuration
class. You can
then use an
additional
@ImportResource
annotation to load
XML configuration
files.
http://i2.imgtong.com/1503/ee277c267915bc4eae84cfe245b19b9b_gsXypPNXb.png
26. 잘 쓰면 네덕 ! 못 쓰면 내탓 !
http://stackoverflow.com/
questions/tagged/spring-boot
검색하라 ! 그럼 찾을 것이다 .
27. 스프링부트를 사용해야 ( 봐 ) 하는 이
유 ?
• ' 충분히 빠른 프로토타이핑 ' 가능
– Spring Framework 4.x in Spring Boot
• 구 버전에서 가지고 있는 제약사항들을 날려버렷 !
– 권장사항을 사용하다보면 오래된 것들을 털어
낼 수 있을 것도 같다 .
• 설정을 어렵게 느끼도록 했던 XML 기반 설정을 회
피한다던가 ...
• 좀 오래된 JSP 사용이라던가 ?
28. 스프링부트를 사용해야하는 이유 ?
• ' 설정 Configuration' 의 ' 스프링 ' 을
극뽁 ~ 할 수 있는 기회를 제공한다 .
29. 스프링부트를 사용해야하는 이유 ?
• 이미 기본설정은
org.springframework.boot.autoconfigure
패키지에 모여있다 .
• 필요한 기능의 starter 플러그인만 추가
하면 된다 .
• 관례적 설정을 기반으로 사용하면 된다 .
• Spring Boot Reference Guide 를 보라 .
30. 스프링부트를 사용해야하는 이유 ?
• MSA(Micro Service
Architecture) 를 구현하
기가 용이해진다 ..... 랄
까 ? MSA 가 뭔데 ?
• 최근 많은 관심을 받고 있
는 Docker 에서 배포하기
용이한 최소한의 크기를
가진 애플리케이션으로
배포가 가능하다 .... 가
능하다는 생각은 된다 .
해보지를 못해서 그렇
지 ... http://gundam.wikia.com/wiki/MSA-007_Nero
31. 기회의 여신은 뒷대머리 !
• 성공과 실패 ! 그 차이는 타이밍 !
– 요구사항에 따라 프로토타이핑을 빠르게 하
고 피드백을 수용하면서 빠르게 대응하는 것이
중요하다 .
• 관례적인 설정 Convention configuration
을 바탕으로 후딱후딱 개발할 수 있다 .
– XML 보다는 JavaConfig!
– 권장하는 구조에 따라서 !
– 익숙한 스프링프레임워크를 사용하여 !