SlideShare a Scribd company logo
1 of 33
어떤 개발 이야기
share-some-development
SpringBoot, Gradle, Git, etc.
Who am I?
• 이름 : 김지헌
• 닉네임 : 허니몬 honeymon
• 서식처 : 산에 들에 바다에
• http://java.ihoney.pe.kr
• @ihoneymon
• ihoneymon@gmail.com
힘들고 지쳐 놀고먹기 힘들기 전까지는
놀고 먹고 싶음 .
목표 !
아래 3 종류 !
• 스프링부트 SpringBoot
• 그레들 Gradle
• 깃 Git
이 어떤건지 대충 이해하고 써보고
프로젝트에 적용하는 것 !!
스프링부트 SpringBoot
http://projects.spring.io/spring-boot/
• 관례적인 사용 !
– 네가 개발하는 것은 웹 애플리케이션이다 !
– 네가 개발에 사용하는 것은 스프링프레임워크다 !
– 네가 개발하는 설정은 대부분의 개발자들이 공통적으
로 사용하는 거다 !
– 네가 개발한 걸 배포하는 것은 비슷비슷하다 !
그레들 Gradle
http://gradle.org/
• 빌드툴 Build tool
– 메이븐보다 그레들 !
– Groovy 를 DSL 로 채택하여 프로그래밍 가능한
스크립트 설정파일 !
깃 Git
http://git-scm.com/
• 분산형 변경이력관리시스템 DVCS!
– 로컬 저장소가 가장 최신 상태 !
– 가지치기 Branch 와 합치기 merge 가 쉽다 !
– 깃을 기반으로 한 다양한 서비스와 애플리케이
션이 있다 !
프로젝트 저장공간 복제 하기
github url:
https://github.com/ihoneymon/share-some-
development
$ git clone git@github.com:ihoneymon/share-some-
development.git
share-some-development 실행
$ ./gradlew bootrun
http://localhost:9090
한계단 한계단 가봅시다 .
Step01: 스프링부트 프로젝트 생성
$ git checkout step01
• 이클립스 : Create new 'Spring Starte
Projet'
– 인터넷회선이 연결되어 있지 않으면 폭망 ....
• 이클립스 말고 ... 사이트에 올라와 있는
압축파일을 내려받아서 import 할 수도
있음 .
– http://
Step02: 그레들 Gradle 래퍼 wrapper
$ git checkout step02
• 다른 사람은 Gradle 을 설치하지 않아도
사용가능하다 !
• 그거면 되지 않는가 ?
Step 03: Hello world!
$ git checkout step03
• SpringBoot 는 Spring framework 4.x
기반
• @RestController 는 4.0 부터 추가된
@Controller+@RepsonseBody 퓨전체
!
• springboot-web-stater... 안에는 내장
형 컨테이너 Embedded container 와 기본
웹설정을 포함하고 있다 .
Step 04: Spring Data JPA(ORM 맛보기 !)
$ git checkout step01
• 우물 밖은 이미 ORM 이 지배하고 있을지도
?
• SQL Query 의 반복적인 사용을 줄이자 .
• 어차피 사용하는 건 거기서 거기
Step 05: 애플리케이션 프로파일 관리
$ git checkout step05
• 애플리케이션 실행과 관련된 설정은 배포
본에 모두 포함한다 .
• 실행에 대한 프로파일은 프로파일과 외부
설정으로 커버가능하다 .
• XML 말고 properties 혹은 YAML 설정이
괜찮다 .
Step 06: AngularJS 추가
$ git checkout step06
• jQuery 로 필요한 기능을 한땀한땀 개발하던 시
대는 가라 .
• 프론트엔드도 MVVC 정의를 기반으로 프레임워
크를 바탕으로 개발해보자 .
• 곧 AngularJS 2.0 도 나온다 .
– 나온다면 좋을까 ?
– Meteor 를 사용한다면 어떨까 ?
• 프론트엔드도 패키지관리를 한다 .
Step 07: 액츄에이터 Actuator 기능
$ git checkout step07
• 출시 후 구동중인 애플리케이션을 살펴보
기 위한 기능이 필요하다 .
• spring-starter-actuator 가 그걸 제공
하마 .
• 아직 써보지 못한 것이 좀 된다 .
스프링부트 개발 이야기
스프링 프레임워크를
사용할 줄 알아야지 .
XML 설정은 좋아하지 않는다
.
http://clusterbanana.tistory.com/267
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
이 안에 너 있다
.
추가하는 기능들에 대한 설정은 이미
spring-boot-autoconfigure 안에 다있다 .
궁금하면
• https://github.com/spring-projects/
spring-boot/tree/master/spring-boot-
autoconfigure
Externalized Configuration
• 외부설정과 프로파일 분리 유도
– 외부설정
http://docs.spring.io/spring-boot/docs/
current-SNAPSHOT/reference/htmlsingle/
#boot-features-external-config
– 스프링 프로파일 기능사용
http://docs.spring.io/spring-boot/docs/
current-SNAPSHOT/reference/htmlsingle/
#boot-features-profiles
잘 쓰면 네덕 ! 못 쓰면 내탓 !
잘 쓰면 네덕 ! 못 쓰면 내탓 !
http://stackoverflow.com/
questions/tagged/spring-boot
검색하라 ! 그럼 찾을 것이다 .
스프링부트를 사용해야 ( 봐 ) 하는 이
유 ?
• ' 충분히 빠른 프로토타이핑 ' 가능
– Spring Framework 4.x in Spring Boot
• 구 버전에서 가지고 있는 제약사항들을 날려버렷 !
– 권장사항을 사용하다보면 오래된 것들을 털어
낼 수 있을 것도 같다 .
• 설정을 어렵게 느끼도록 했던 XML 기반 설정을 회
피한다던가 ...
• 좀 오래된 JSP 사용이라던가 ?
스프링부트를 사용해야하는 이유 ?
• ' 설정 Configuration' 의 ' 스프링 ' 을
극뽁 ~ 할 수 있는 기회를 제공한다 .
스프링부트를 사용해야하는 이유 ?
• 이미 기본설정은
org.springframework.boot.autoconfigure
패키지에 모여있다 .
• 필요한 기능의 starter 플러그인만 추가
하면 된다 .
• 관례적 설정을 기반으로 사용하면 된다 .
• Spring Boot Reference Guide 를 보라 .
스프링부트를 사용해야하는 이유 ?
• MSA(Micro Service
Architecture) 를 구현하
기가 용이해진다 ..... 랄
까 ? MSA 가 뭔데 ?
• 최근 많은 관심을 받고 있
는 Docker 에서 배포하기
용이한 최소한의 크기를
가진 애플리케이션으로
배포가 가능하다 .... 가
능하다는 생각은 된다 .
해보지를 못해서 그렇
지 ... http://gundam.wikia.com/wiki/MSA-007_Nero
기회의 여신은 뒷대머리 !
• 성공과 실패 ! 그 차이는 타이밍 !
– 요구사항에 따라 프로토타이핑을 빠르게 하
고 피드백을 수용하면서 빠르게 대응하는 것이
중요하다 .
• 관례적인 설정 Convention configuration
을 바탕으로 후딱후딱 개발할 수 있다 .
– XML 보다는 JavaConfig!
– 권장하는 구조에 따라서 !
– 익숙한 스프링프레임워크를 사용하여 !
끝 !!
궁금하시면 ,
스프링부트 레퍼런스
문서를 보세요 .
참고문헌은 ...
https://github.com/ihoneymon/shar
e-some-development
가시면 제일 하단에 있어요 .

More Related Content

What's hot

Python server-101
Python server-101Python server-101
Python server-101Huey Park
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발지수 윤
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스Dexter Jung
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래JeongHun Byeon
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 
iOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptiOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptCheolhee Han
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼mangonamu
 
오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유knight1128
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용지원 이
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment SettingKwangyoun Jung
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman항희 이
 

What's hot (20)

Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
 
Python server-101
Python server-101Python server-101
Python server-101
 
Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발Jenkins를 활용한 javascript 개발
Jenkins를 활용한 javascript 개발
 
React Redux React Native
React Redux React NativeReact Redux React Native
React Redux React Native
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스예제를 통해 쉽게_살펴보는_뷰제이에스
예제를 통해 쉽게_살펴보는_뷰제이에스
 
Node.js 현재와 미래
Node.js 현재와 미래Node.js 현재와 미래
Node.js 현재와 미래
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
iOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScriptiOS App 개발 with React Native + ClojureScript
iOS App 개발 with React Native + ClojureScript
 
Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼Flask! - python web framework flask 튜토리얼
Flask! - python web framework flask 튜토리얼
 
Gulp 입문
Gulp 입문 Gulp 입문
Gulp 입문
 
오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유오픈소스를 활용한 Batch_처리_플랫폼_공유
오픈소스를 활용한 Batch_처리_플랫폼_공유
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
 
Virtual Development Environment Setting
Virtual Development Environment SettingVirtual Development Environment Setting
Virtual Development Environment Setting
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman
 

Viewers also liked

Innovation 3 3.stages of new product development
Innovation 3 3.stages of new product developmentInnovation 3 3.stages of new product development
Innovation 3 3.stages of new product development정명훈 Jerry Jeong
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategySukjin Yun
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradleSukjin Yun
 
[Blt] 스타트업을 위한 신제품 유통전략
[Blt] 스타트업을 위한 신제품 유통전략[Blt] 스타트업을 위한 신제품 유통전략
[Blt] 스타트업을 위한 신제품 유통전략JEONG HAN Eom
 
14 미트쉐어 홈피 ppt
14 미트쉐어 홈피 ppt14 미트쉐어 홈피 ppt
14 미트쉐어 홈피 pptNpocenter Seoul
 
Space share, city making introduction
Space share, city making introductionSpace share, city making introduction
Space share, city making introductionsmlabcomm
 
스프링 프로젝트 시작하기
스프링 프로젝트 시작하기스프링 프로젝트 시작하기
스프링 프로젝트 시작하기Ashal aka JOKER
 
찾아가는 공유마당 2 3. 똑똑도서관
찾아가는 공유마당 2 3. 똑똑도서관찾아가는 공유마당 2 3. 똑똑도서관
찾아가는 공유마당 2 3. 똑똑도서관Creative Commons Korea
 
[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호
[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호
[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호Henry Hyeongrae Kim
 
실버세대 분석 보고서
실버세대 분석 보고서실버세대 분석 보고서
실버세대 분석 보고서DMC미디어
 
해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service
해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service
해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total servicefama contents marketing
 
Marketing plan for new toothpaste brand
Marketing plan for new toothpaste brandMarketing plan for new toothpaste brand
Marketing plan for new toothpaste brandMuntasir Ahmed
 
P&G사례
P&G사례P&G사례
P&G사례yurbong
 
플레이트쉐어 (Plateshare)
플레이트쉐어 (Plateshare)플레이트쉐어 (Plateshare)
플레이트쉐어 (Plateshare)50knotsco
 
Marketing plan for new toothpaste brand
Marketing plan for new toothpaste brandMarketing plan for new toothpaste brand
Marketing plan for new toothpaste brandArannya Chowdhury
 

Viewers also liked (20)

Innovation 3 3.stages of new product development
Innovation 3 3.stages of new product developmentInnovation 3 3.stages of new product development
Innovation 3 3.stages of new product development
 
Enterprise Java web Deployment Strategy
Enterprise Java web Deployment StrategyEnterprise Java web Deployment Strategy
Enterprise Java web Deployment Strategy
 
Kotler Keller 마케팅관리론 14판 요약 강의 20장. 신제품
Kotler Keller 마케팅관리론 14판 요약 강의 20장. 신제품Kotler Keller 마케팅관리론 14판 요약 강의 20장. 신제품
Kotler Keller 마케팅관리론 14판 요약 강의 20장. 신제품
 
20130709 gradle
20130709 gradle20130709 gradle
20130709 gradle
 
[Blt] 스타트업을 위한 신제품 유통전략
[Blt] 스타트업을 위한 신제품 유통전략[Blt] 스타트업을 위한 신제품 유통전략
[Blt] 스타트업을 위한 신제품 유통전략
 
HOME + SHARE: Reimagination of Space in Seoul
HOME + SHARE: Reimagination of Space in SeoulHOME + SHARE: Reimagination of Space in Seoul
HOME + SHARE: Reimagination of Space in Seoul
 
kozaza
kozazakozaza
kozaza
 
14 미트쉐어 홈피 ppt
14 미트쉐어 홈피 ppt14 미트쉐어 홈피 ppt
14 미트쉐어 홈피 ppt
 
Space share, city making introduction
Space share, city making introductionSpace share, city making introduction
Space share, city making introduction
 
스프링 프로젝트 시작하기
스프링 프로젝트 시작하기스프링 프로젝트 시작하기
스프링 프로젝트 시작하기
 
트렌드강의1. 트렌드를 파악하여 신제품 개발에 활용
트렌드강의1. 트렌드를 파악하여 신제품 개발에 활용트렌드강의1. 트렌드를 파악하여 신제품 개발에 활용
트렌드강의1. 트렌드를 파악하여 신제품 개발에 활용
 
찾아가는 공유마당 2 3. 똑똑도서관
찾아가는 공유마당 2 3. 똑똑도서관찾아가는 공유마당 2 3. 똑똑도서관
찾아가는 공유마당 2 3. 똑똑도서관
 
[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호
[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호
[Senior 골든라이프] Shall We Dance? GOLD & WISE 4월호
 
실버세대 분석 보고서
실버세대 분석 보고서실버세대 분석 보고서
실버세대 분석 보고서
 
P&G
P&GP&G
P&G
 
해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service
해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service
해외시장 진출 및 사업계획서 작성을 위한 신제품 개발 조사 Total service
 
Marketing plan for new toothpaste brand
Marketing plan for new toothpaste brandMarketing plan for new toothpaste brand
Marketing plan for new toothpaste brand
 
P&G사례
P&G사례P&G사례
P&G사례
 
플레이트쉐어 (Plateshare)
플레이트쉐어 (Plateshare)플레이트쉐어 (Plateshare)
플레이트쉐어 (Plateshare)
 
Marketing plan for new toothpaste brand
Marketing plan for new toothpaste brandMarketing plan for new toothpaste brand
Marketing plan for new toothpaste brand
 

Similar to Share some development

Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Jaesup Kwak
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나JeongHwan Kim
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)sung yong jung
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 라한사 아
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해중선 곽
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1SeungHa Eom
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들Lee Geonhee
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신현욱 김
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15Chanwoong Kim
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들Sewon Ann
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표Sinhyub Kim
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례형석 김
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발동현 김
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)NAVER D2
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 

Similar to Share some development (20)

Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)
 
201803 파이썬 세미나
201803 파이썬 세미나201803 파이썬 세미나
201803 파이썬 세미나
 
Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)Spring-Boot (springcamp2014)
Spring-Boot (springcamp2014)
 
스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기 스프링 프레임워크로 블로그 개발하기
스프링 프레임워크로 블로그 개발하기
 
메이븐 기본 이해
메이븐 기본 이해메이븐 기본 이해
메이븐 기본 이해
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
 
안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들안드로이드 개발에 유용한 도구들
안드로이드 개발에 유용한 도구들
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표SW1차 프로젝트 Hive 최종발표
SW1차 프로젝트 Hive 최종발표
 
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
오픈 소스를 활용한 게임 배치 플랫폼 개선 사례
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
[HYSS 2016] 쉽고 빠르게 시작하는 Volatility Plugin 개발
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 

Recently uploaded

JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 

Recently uploaded (8)

JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 

Share some development

  • 2. Who am I? • 이름 : 김지헌 • 닉네임 : 허니몬 honeymon • 서식처 : 산에 들에 바다에 • http://java.ihoney.pe.kr • @ihoneymon • ihoneymon@gmail.com 힘들고 지쳐 놀고먹기 힘들기 전까지는 놀고 먹고 싶음 .
  • 3. 목표 ! 아래 3 종류 ! • 스프링부트 SpringBoot • 그레들 Gradle • 깃 Git 이 어떤건지 대충 이해하고 써보고 프로젝트에 적용하는 것 !!
  • 4. 스프링부트 SpringBoot http://projects.spring.io/spring-boot/ • 관례적인 사용 ! – 네가 개발하는 것은 웹 애플리케이션이다 ! – 네가 개발에 사용하는 것은 스프링프레임워크다 ! – 네가 개발하는 설정은 대부분의 개발자들이 공통적으 로 사용하는 거다 ! – 네가 개발한 걸 배포하는 것은 비슷비슷하다 !
  • 5. 그레들 Gradle http://gradle.org/ • 빌드툴 Build tool – 메이븐보다 그레들 ! – Groovy 를 DSL 로 채택하여 프로그래밍 가능한 스크립트 설정파일 !
  • 6. 깃 Git http://git-scm.com/ • 분산형 변경이력관리시스템 DVCS! – 로컬 저장소가 가장 최신 상태 ! – 가지치기 Branch 와 합치기 merge 가 쉽다 ! – 깃을 기반으로 한 다양한 서비스와 애플리케이 션이 있다 !
  • 7. 프로젝트 저장공간 복제 하기 github url: https://github.com/ihoneymon/share-some- development $ git clone git@github.com:ihoneymon/share-some- development.git
  • 8. share-some-development 실행 $ ./gradlew bootrun http://localhost:9090
  • 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
  • 21. 이 안에 너 있다 .
  • 22. 추가하는 기능들에 대한 설정은 이미 spring-boot-autoconfigure 안에 다있다 .
  • 24. Externalized Configuration • 외부설정과 프로파일 분리 유도 – 외부설정 http://docs.spring.io/spring-boot/docs/ current-SNAPSHOT/reference/htmlsingle/ #boot-features-external-config – 스프링 프로파일 기능사용 http://docs.spring.io/spring-boot/docs/ current-SNAPSHOT/reference/htmlsingle/ #boot-features-profiles
  • 25. 잘 쓰면 네덕 ! 못 쓰면 내탓 !
  • 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! – 권장하는 구조에 따라서 ! – 익숙한 스프링프레임워크를 사용하여 !
  • 32. 끝 !! 궁금하시면 , 스프링부트 레퍼런스 문서를 보세요 .