SlideShare a Scribd company logo
Spring Boot Part 2
김응주
(zard21@gmail.com)
진행 순서
• Spring Boot 소개
• 개발환경 설정
• REST API 개발
• Redis 이용하기
• OAuth 인증서버 구현
• REST API Client 구현
• GraphQL
• Spring Boot Actuator
Spring Boot
• 2013년 개발, 2014년 4월 1.0 릴리즈
• Spring 기반 애플리케이션을 빠르고 쉽게 개발
• 환경설정의 최소화를 통한 생산성 향상
• 현재 2.2.0 안정화 버전
• https://spring.io/projects/spring-boot
Spring Boot의 특징
• Embed Tomcat을 이용하여 단독실행 가능
• Starter를 통한 자동화된 설정 제공
• XML 설정이 필요 없음
• Spring Actuator를 통한 모니터링과 관리 가능
JDK 설치
•JDK 1.8.0_x 설치
•https://java.oracle.com/
•현재 설치된 Java 버전 확인
$ java --version
IntelliJ IDEA 설치
•Java Web Application 개발을 위한 IDE
•https://www.jetbrains.com/idea/
•Ultimate 버전
•유료 제품
•Java EE, Spring, Web 개발 지원
•Community 버전
•무료 제품
•기본적인 Java, Kotlin, Scala 등의 개발 지원
•프로젝트 생성 시 JAVA_HOME 지정
MySQL 설치
•데이터 처리를 위한 RDBMS
•https://dev.mysql.com/downloads/mysql
•MySQL Community Server 5.7 설치 (5.x 버전 가능)
$ mysql --version
REST API 개발
•부서와 사용자를 관리하는 REST API 개발
•Entity
•부서: department
•사용자: member
REST API 개발
•부서 관리 API
•GET /api/departments
•GET /api/departments/{id}
•GET /api/departments/name
•POST /api/departments
•PUT /api/departments/{id}
•DELETE /api/departments/{id}
REST API 개발
•사용자 관리 API
•GET /api/members
•GET /api/members/{id}
•GET /api/members/name
•POST /api/members
•PUT /api/members/{id}
•DELETE /api/members/{id}
Spring Boot 프로젝트 생성
•Spring Initializer 접속 (IntelliJ IDEA Community 버전)
•https://start.spring.io
•Maven Project
•Java Spring Boot 2.2.0
•Group, Artifact 설정
•Dependencies 추가
•Web, Lombok, JPA, MySQL
•프로젝트 생성 후 IntelliJ IDEA에서 Open
REST API 테스트
•POSTMAN
•https://www.getpostman.com
•Swagger
Custom Exception
•Custom Exception을 이용한 코드, 메시지 추가
•ErrorMsg
•DataException
•GlobalExceptionHandler
Redis 이용하기
•https://redis.io
•Remote Dictionary Server
•오픈소스 In-Memory Key-Value 데이터 스토어
•spring-boot-starter-data-redis
•redis.clients.jedis
•Redis를 이용하여 사원번호 시퀀스 생성
OAuth 인증서버 구현
•Spring Security를 이용한 OAuth2 인증서버 구현
•Bearer Authentication을 이용한 인증
•Access Token을 이용한 API 접근
•JdbcTokenStore를 이용하여 데이터베이스에 Token 저장
•https://github.com/mac2me/spring-oauth-server
REST API Client 구현
•RestTemplate을 이용한 API Client
•Access Token 받기
•Access Token을 이용한 API 접근
•OpenFeign
GraphQL
•페이스북이 개발한 애플리케이션 레이어 쿼리 언어
•클라이언트가 쿼리를 이용하여 필요한 정보를 서버에 요청
•graphql-spring-boot-starter
•GraphQLQueryResolver 구현
Spring Boot Actuator
•Spring Boot 기반 애플리케이션 및 서버를 모니터링할 수 있는 모듈
•별도 모듈 개발 없이 Endpoint를 통해 접근하여 확인
•/health
•/bean
•/info
•/trace
•JMX와 JConsole을 이용한 모니터링도 가능
애플리케이션 배포
•Maven 설치
•https://maven.apache.org
•brew install maven (Mac)
•Spring Boot 프로젝트 홈 디렉터리 이동
$ mvn package (-Dmaven.test.skip=true)
•target 디렉터리 이동
$ java -jar [jar 파일명]
•Jenkins를 이용한 배포 자동화
Q & A
e-mail: zard21@gmail.com

More Related Content

PDF
웹 2.0 기술 소개 (2006)
PDF
Spring boot와 docker를 이용한 msa
PPTX
Atlassian JIRA Plugin 및 REST API를 이용한 기능 확장
PDF
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
PDF
Service Worker 를 이용한 
Offline Web Application 구현
PDF
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
PPTX
Class overview
PPTX
Serverless Architecture - 김현민
웹 2.0 기술 소개 (2006)
Spring boot와 docker를 이용한 msa
Atlassian JIRA Plugin 및 REST API를 이용한 기능 확장
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
Service Worker 를 이용한 
Offline Web Application 구현
SK플래닛_README_마이크로서비스 아키텍처로 개발하기
Class overview
Serverless Architecture - 김현민

What's hot (20)

PDF
PWA (Progressive Web Apps)
PDF
Spring boot + java 에코시스템 #1
PPTX
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
PDF
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
PPTX
1.develop environment
PDF
현실적 PWA
PDF
Microservice Architecture
PDF
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
PDF
Hybrid App Platform - HyWAI 3.5
PDF
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
PPTX
SOSCON2015 SI이노베이션
PDF
iOS9 소개
PDF
Service workers 기초 및 활용 (Korean)
PPTX
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
PDF
Vue SSR vs Prerender
PPTX
PDF
Elastic beanstalk - 판교 초급자 모임 - 안병학
PDF
[오픈소스컨설팅]Atlassian JIRA Deep Dive
PDF
DevOps Demo
PDF
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
PWA (Progressive Web Apps)
Spring boot + java 에코시스템 #1
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
1.develop environment
현실적 PWA
Microservice Architecture
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
Hybrid App Platform - HyWAI 3.5
Google Firebase로 레고블럭 조립하기 - IO Extended 2016
SOSCON2015 SI이노베이션
iOS9 소개
Service workers 기초 및 활용 (Korean)
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
Vue SSR vs Prerender
Elastic beanstalk - 판교 초급자 모임 - 안병학
[오픈소스컨설팅]Atlassian JIRA Deep Dive
DevOps Demo
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
Ad

Similar to Spring Boot 기초 코드랩 (2019-10-26) (20)

PDF
REST API Development with Spring
PPTX
Booting Spring Data REST
PPTX
Spring boot
PPTX
2022 백엔드 멘토링 자료
PPTX
2022.08 멘토링 자료.pptx
PPTX
REST API 설계
PDF
백기선의 스프링 부트
PDF
Spring vs. spring boot
PPTX
API 개념
PDF
Spring Boot 1
PPTX
Spring boot DI
PPTX
Ksug 세미나 (윤성준) (20121208)
PPTX
Booting spring data rest for SLiPP
PDF
2023.06.12 발표 자료 : JPA / 스프링 구조
PDF
2023.05.22 발표 자료 : 스프링 부트 기초
PPTX
Srping data rest
PDF
스프링 3.0 & RESTful
PPT
Share some development
PPTX
[월간 슬라이드] 한시간안에 게시판 만들기 with 스프링부트
PPTX
Spring boot-summary(part2-part3)
REST API Development with Spring
Booting Spring Data REST
Spring boot
2022 백엔드 멘토링 자료
2022.08 멘토링 자료.pptx
REST API 설계
백기선의 스프링 부트
Spring vs. spring boot
API 개념
Spring Boot 1
Spring boot DI
Ksug 세미나 (윤성준) (20121208)
Booting spring data rest for SLiPP
2023.06.12 발표 자료 : JPA / 스프링 구조
2023.05.22 발표 자료 : 스프링 부트 기초
Srping data rest
스프링 3.0 & RESTful
Share some development
[월간 슬라이드] 한시간안에 게시판 만들기 with 스프링부트
Spring boot-summary(part2-part3)
Ad

More from 양재동 코드랩 (8)

PDF
2016 W3C Conference #9 : 컨테이너와 웹 어플리케이션
PDF
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
PDF
2016 W3C Conference #7 : Electron, 웹 기술로 담아내는 데스크톱 애플리케이션
PDF
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
PDF
2016 W3C Conference #5 : UNIVERSAL RENDERING (React.JS 중심)
PDF
2016 W3C Conference #4 : ANGULAR + ES6
PDF
2016 W3C Conference #2 : VANILA JS로 개발하기
PDF
2016 W3C Conference #1 : 웹 개발의 현재와 미래
2016 W3C Conference #9 : 컨테이너와 웹 어플리케이션
2016 W3C Conference #8 : IONIC으로 하이브리드 앱 개발하기, 사례와 시사점
2016 W3C Conference #7 : Electron, 웹 기술로 담아내는 데스크톱 애플리케이션
2016 W3C Conference #6 : ReactiveX + Meteor 종단간 암호화 구현 사례
2016 W3C Conference #5 : UNIVERSAL RENDERING (React.JS 중심)
2016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #2 : VANILA JS로 개발하기
2016 W3C Conference #1 : 웹 개발의 현재와 미래

Spring Boot 기초 코드랩 (2019-10-26)

  • 1. Spring Boot Part 2 김응주 (zard21@gmail.com)
  • 2. 진행 순서 • Spring Boot 소개 • 개발환경 설정 • REST API 개발 • Redis 이용하기 • OAuth 인증서버 구현 • REST API Client 구현 • GraphQL • Spring Boot Actuator
  • 3. Spring Boot • 2013년 개발, 2014년 4월 1.0 릴리즈 • Spring 기반 애플리케이션을 빠르고 쉽게 개발 • 환경설정의 최소화를 통한 생산성 향상 • 현재 2.2.0 안정화 버전 • https://spring.io/projects/spring-boot
  • 4. Spring Boot의 특징 • Embed Tomcat을 이용하여 단독실행 가능 • Starter를 통한 자동화된 설정 제공 • XML 설정이 필요 없음 • Spring Actuator를 통한 모니터링과 관리 가능
  • 5. JDK 설치 •JDK 1.8.0_x 설치 •https://java.oracle.com/ •현재 설치된 Java 버전 확인 $ java --version
  • 6. IntelliJ IDEA 설치 •Java Web Application 개발을 위한 IDE •https://www.jetbrains.com/idea/ •Ultimate 버전 •유료 제품 •Java EE, Spring, Web 개발 지원 •Community 버전 •무료 제품 •기본적인 Java, Kotlin, Scala 등의 개발 지원 •프로젝트 생성 시 JAVA_HOME 지정
  • 7. MySQL 설치 •데이터 처리를 위한 RDBMS •https://dev.mysql.com/downloads/mysql •MySQL Community Server 5.7 설치 (5.x 버전 가능) $ mysql --version
  • 8. REST API 개발 •부서와 사용자를 관리하는 REST API 개발 •Entity •부서: department •사용자: member
  • 9. REST API 개발 •부서 관리 API •GET /api/departments •GET /api/departments/{id} •GET /api/departments/name •POST /api/departments •PUT /api/departments/{id} •DELETE /api/departments/{id}
  • 10. REST API 개발 •사용자 관리 API •GET /api/members •GET /api/members/{id} •GET /api/members/name •POST /api/members •PUT /api/members/{id} •DELETE /api/members/{id}
  • 11. Spring Boot 프로젝트 생성 •Spring Initializer 접속 (IntelliJ IDEA Community 버전) •https://start.spring.io •Maven Project •Java Spring Boot 2.2.0 •Group, Artifact 설정 •Dependencies 추가 •Web, Lombok, JPA, MySQL •프로젝트 생성 후 IntelliJ IDEA에서 Open
  • 13. Custom Exception •Custom Exception을 이용한 코드, 메시지 추가 •ErrorMsg •DataException •GlobalExceptionHandler
  • 14. Redis 이용하기 •https://redis.io •Remote Dictionary Server •오픈소스 In-Memory Key-Value 데이터 스토어 •spring-boot-starter-data-redis •redis.clients.jedis •Redis를 이용하여 사원번호 시퀀스 생성
  • 15. OAuth 인증서버 구현 •Spring Security를 이용한 OAuth2 인증서버 구현 •Bearer Authentication을 이용한 인증 •Access Token을 이용한 API 접근 •JdbcTokenStore를 이용하여 데이터베이스에 Token 저장 •https://github.com/mac2me/spring-oauth-server
  • 16. REST API Client 구현 •RestTemplate을 이용한 API Client •Access Token 받기 •Access Token을 이용한 API 접근 •OpenFeign
  • 17. GraphQL •페이스북이 개발한 애플리케이션 레이어 쿼리 언어 •클라이언트가 쿼리를 이용하여 필요한 정보를 서버에 요청 •graphql-spring-boot-starter •GraphQLQueryResolver 구현
  • 18. Spring Boot Actuator •Spring Boot 기반 애플리케이션 및 서버를 모니터링할 수 있는 모듈 •별도 모듈 개발 없이 Endpoint를 통해 접근하여 확인 •/health •/bean •/info •/trace •JMX와 JConsole을 이용한 모니터링도 가능
  • 19. 애플리케이션 배포 •Maven 설치 •https://maven.apache.org •brew install maven (Mac) •Spring Boot 프로젝트 홈 디렉터리 이동 $ mvn package (-Dmaven.test.skip=true) •target 디렉터리 이동 $ java -jar [jar 파일명] •Jenkins를 이용한 배포 자동화
  • 20. Q & A e-mail: zard21@gmail.com