Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Share some development

1,378 views

Published on

어떤 개발이야기

스프링부트, Gradle, Git 으로 하는 애플리케이션 개발하기

Published in: Engineering
  • Be the first to comment

Share some development

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

×