SlideShare a Scribd company logo
스프링 프레임워크 튜토리얼
최영목
서비스플랫폼개발센터
ⓒ NAVER Corp.
목차
ü 개요
ü Q1. 다운로드
ü Q2. 빈 와이어링
ü Q3. AOP
ü 스프링 다시 시작하기
개요
일반
4 /서비스플랫폼개발센터
실습 환경
ü 최소 요구사항
§ JDK 6+ for Spring Framework 4.x
§ JDK 5+ for Spring Framework 3.x
ü 주의사항
§ 실습을 따라했는데도 실력이 늘지 않거나 만족감이 늘지 않는다면
• 과거에 경험했다는 사실을 인지를 한 경우 : 기존에 퀘스���를 이미 수행했을 가능성이 높음
• 과거에 경험했다는 사실을 인지를 하지 못한 경우 : 자신도 모르는 사이에 이미 버스(잘 하는 사람 등 누군가
의 도움)를 탔을 가능성이 있음
ü 실습 참조
• https://github.com/swtest/d2-campus-seminar-04th
Q1. 다운로드
일반
6 /서비스플랫폼개발센터
퀘스트 정보 : [1] 입단 신고
ü 진영 : 자바
ü 지역 : 스프링 프레임워크 ­ Quick Start
ü 보상 : 스프링 환경 설정 능력 +1, 만족감 +1
ü 퀘스트 요약
1. pom.xml에 디펜던시를 추가하여 다운로드를 받으시오.
2. Junit으로 applicationContext를 로딩하는 테스트케이스를 작성하시오.
Q2. 빈 와이어링
일반
8 /서비스플랫폼개발센터
퀘스트 정보 : [2] 머나먼 배움의 길
ü 진영 : 자바
ü 지역 : 스프링 프레임워크 ­ 빈 와이어링
ü 보상 : 스프링 빈 와이어링 설정 능력 +1, 만족감 +1
ü 퀘스트 요약
1. 팩토리 클래스를 작성하여, 객체 간의 연관관계를 만드시오.
2. 스프링의 기능을 사용하여, 객체 간의 연관관계(빈 와이어링)를 만드시오.
Q3. AOP
일반
10 /서비스플랫폼개발센터
퀘스트 정보 : [3] 정보 수집
ü 진영 : 자바
ü 지역 : 스프링 프레임워크 ­ AOP
ü 보상 : 스프링 AOP 설정 능력 +1, 만족감 +1
ü 퀘스트 요약
1. 스프링의 기능을 사용하여, 서비스 호출 시 콘솔 로그를 남기시오.
스프링 다시 시작하기
일반
12 /서비스플랫폼개발센터
1. 스프링 프레임워크 소개
자바 기반 오픈 소스
애플리케이션 프레임워크
(http://spring.io)
일반
13 /서비스플랫폼개발센터
1.1. 스프링 프레임워크의 목적과 목표(1/2)
더 나은 엔터프라이즈 애플리케이션을
구축하자.
스프링은 어디서나 간단하고, 이식하기 쉬우며, 신속하고, 유연하게 JVM 기반의
시스템과 애플리케이션을 구축할 수 있도록 개발팀을 도와줍니다.
일반
14 /서비스플랫폼개발센터
1.1. 스프링 프레임워크의 목적과 목표(2/2)
ü 무엇이든 구축하세요
§ 어떤 인프라스트럭처 컴포넌트를 선택하든지 깔끔하고 테스트 가능한 코드를 작성하고,
모든 작업을 수행합니다. ­ 바퀴를 재발명하지 마세요.
ü 어디서나 동작합니다
§ 이식성 유지 ­ 스프링 기반 애플리케이션은 JVM 실행 환경에서 어디서나 동작합니다.
스탠드얼론, 애플리케이션 서버, PaaS 등 모든 곳에 배포됩니다.
ü 걱정하지 마세요
§ 신뢰할 수 있는 코드 ­ 스프링은 포괄적이고, 응집성이 있으며, 널리 이해되고, 잘 지원
하는 오픈 프로그래밍 모델을 제공합니다.
일반
15 /서비스플랫폼개발센터
1.2. 스프링 프레임워크의 핵심 기술(1/5)
ü 핵심 기술
POJO
IoC / DI
PSAAOP
일반
16 /서비스플랫폼개발센터
1.2. 스프링 프레임워크의 핵심 기술(2/5)
ü POJO(Plain Old Java Object)
§ 객체지향 프로그래밍 기법과 언어가 주는 장점인 유연한 설계와 재사용성 활용하여 비
즈니스의 복잡성과 변화를 상대함
POJO
IoC / DI
PSAAOP
일반
17 /서비스플랫폼개발센터
1.2. 스프링 프레임워크의 핵심 기술(3/5)
ü Inversion Of Control
§ 제어의 역전
§ 헐리우드 법칙
ü Dependency Injection
§ 느슨한 커플링
§ 책임의 분리
POJO
IoC / DI
PSAAOP
일반
18 /서비스플랫폼개발센터
1.2. 스프링 프레임워크의 핵심 기술(4/5)
ü AOP(Aspect Oriented Programming)
§ 서로 다른 관심사를 분리(separation of cross-cutting concerns)하여 정복하기 위한
프로그래밍 기법
POJO
IoC / DI
PSAAOP
일반
19 /서비스플랫폼개발센터
1.2. 스프링 프레임워크의 핵심 기술(5/5)
ü PSA(Potable Service Abstraction)
§ 환경과 세부 기술의 변화에 관계없이 일관된 방식으로 기술에 접근하게 해주는 기능
POJO
IoC / DI
PSAAOP
일반
20 /서비스플랫폼개발센터
1.3. 스프링 모듈(1/3)
1)
이미지출처 : http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html
일반
21 /서비스플랫폼개발센터
1.3. 스프링 모듈(2/3)
GroupId ArtifactId Description
org.springframework spring-aop 프록시(Proxy) 기반 AOP 지원
org.springframework spring-aspects AspectJ 기반 스프링 애스펙트(aspect)
org.springframework spring-beans 빈 지원
org.springframework spring-context 애플리케이션 컨텍스트의 런타임 구현, 스케줄,
지원
org.springframework spring-context-support 스프링과 서드파티 라이브러리 간의 통합 지원
org.springframework spring-core 핵심 유틸리티
org.springframework spring-expression 스프링 표현 언어(SpEL)
org.springframework spring-instrument JVM 부트스트래핑을 위한 인스트루먼트(Instr
umentation) agent
org.springframework spring-instrument-tomcat 아파치 톰캣을 위한 인스트루먼트(Instrument
ation) agent
org.springframework spring-jdbc 데이터소스 설정과 JDBC 엑세스를 지원하는
JDBC 패키지
일반
22 /서비스플랫폼개발센터
1.3. 스프링 모듈(3/3)
GroupId ArtifactId Description
org.springframework spring-jms 동기식 JMS 엑세스와 메시지 리스너 컨테이너
를 지원하는 JMS 패키지
org.springframework spring-messaging 메세징 아키텍처와 프로토콜 지원
org.springframework spring-orm JPA, 하이버네이트 등의 ORM 지원
org.springframework spring-oxm Object/XML 매핑
org.springframework spring-test 테스트
org.springframework spring-tx 트랜잭션 인프라스트럭처
org.springframework spring-web 웹 지원
org.springframework spring-webmvc 웹 애플리케이션을 위한 REST 웹 서비스 및
MVC 구현체
org.springframework spring-webmvc-portlet 포틀릿 환경의 MVC 구현체
org.springframework spring-websocket WebSocket, SockJS 구현체 (STOMP 지원)
일반
23 /서비스플랫폼개발센터
1.4. 스프링 포트폴리오(1/5)
1)
출처 : http://spring.io/projects
스프링 부트
스프링 애플리케이션을 구축하고,
빠르게 실행 가능한 독단적인 뷰를 제공합니다.
스프링 프레임워크
의존성 주입, 트랜잭션 관리, 웹 애플리케이션,
데이터 엑세스, 메시징 등을 위한
핵심 지원기능을 제공합니다.
스프링 XD
데이터 수집, 실시간 분석, 배치 처리 및 데이터 내
보내기를 통해 빅데이터 애플리케이션
개발을 간편하게 합니다.
스프링 IO 플랫폼
애플리케이션 구축을 위한 응집성이 있고,
버전이 잘 맞추어진 엔터프라이즈 수준의
모듈을 제공합니다.
일반
24 /서비스플랫폼개발센터
1.4. 스프링 포트폴리오(2/5)
1)
출처 : http://spring.io/projects
스프링 클라우드
분산 시스템에서의 일반적인 패턴에 대한 도구를
제공합니다. 마이크로서비스를 구축하고
배포하는 데 유용합니다.
스프링 데이터
데이터 접근에 대한 일관된 방식을 제공합니다.
관계형, 비관계형, 맵리듀스 등
스프링 인티그레이션
엔터프라이즈 인티그레이션 패턴을 지원합니다.
스프링 배치
대량 배치작업에 대해 간결하고 최적화된
처리를 합니다.
일반
25 /서비스플랫폼개발센터
1.4. 스프링 포트폴리오(3/5)
1)
출처 : http://spring.io/projects
스프링 시큐리티
포괄적이고 확장 가능한 인증 및 인가를
지원하여 애플리케이션을 보호합니다.
스프링 HATEOAS
HATEOAS 원칙에 따라 REST를 간편하게
만들 수 있습니다.
스프링 소셜
페이스북, 트위터, 링크드인과 같은
서드파티 API와 쉽게 연결해줍니다.
스프링 AMQP
AMQP 기반의 메시징 솔루션 개발을
스프링 컨셉으로 적용합니다.
일반
26 /서비스플랫폼개발센터
1.4. 스프링 포트폴리오(4/5)
1)
출처 : http://spring.io/projects
스프링 모바일
장비 탐지 및 진보적인 렌더링 옵션을 통해
모바일 웹 애플리케이션 개발을
간편하게 합니다.
스프링 안드로이드
안드로이드 애플리케이션 개발에 사용되는
스프링 컴포넌트를 제공합니다.
스프링 웹 플로
비행기 체크인, 대출 신청과 같은
웹 애플리케이션의 네비게이��� 제어(흐름제어) 구
축을 지원합니다.
스프링 웹 서비스
계약우선(contract-first) SOAP 웹서비스 개발을
용이하게 합니다.
일반
27 /서비스플랫폼개발센터
1.4. 스프링 포트폴리오(5/5)
1)
출처 : http://spring.io/projects
스프링 LDAP
스프링에서 익숙한 템플릿 기반의 접근법을
사용하여 LDAP을 이용한
애플리케이션 개발을 간편하게 합니다.
스프링 세션
사용자 세션정보 관리를 위한 API 및 구현체를 제
공합니다.
일반
28 /서비스플랫폼개발센터
2. 스프링 프레임워크의 기능
ü 의존성 주입(DependencyInjection)
ü 스프링의 선언적 트랜잭션 관리를 포함한 AOP
ü 스프링 MVC 웹 애플리케이션과 RESTful 웹 서비스 프레임워크
ü JDBC, JPA, JMS를 위한 기반을 지원
ü 그 외 다수
Q & A
감사합니다.

More Related Content

Spring Framework 튜토리얼 - 네이버 최영목님

  • 2. 목차 ü 개요 ü Q1. 다운로드 ü Q2. 빈 와이어링 ü Q3. AOP ü 스프링 다시 시작하기
  • 4. 일반 4 /서비스플랫폼개발센터 실습 환경 ü 최소 요구사항 § JDK 6+ for Spring Framework 4.x § JDK 5+ for Spring Framework 3.x ü 주의사항 § 실습을 따라했는데도 실력이 늘지 않거나 만족감이 늘지 않는다면 • 과거에 경험했다는 사실을 인지를 한 경우 : 기존에 퀘스트를 이미 수행했을 가능성이 높음 • 과거에 경험했다는 사실을 인지를 하지 못한 경우 : 자신도 모르는 사이에 이미 버스(잘 하는 사람 등 누군가 의 도움)를 탔을 가능성이 있음 ü 실습 참조 • https://github.com/swtest/d2-campus-seminar-04th
  • 6. 일반 6 /서비스플랫폼개발센터 퀘스트 정보 : [1] 입단 신고 ü 진영 : 자바 ü 지역 : 스프링 프레임워크 ­ Quick Start ü 보상 : 스프링 환경 설정 능력 +1, 만족감 +1 ü 퀘스트 요약 1. pom.xml에 디펜던시를 추가하여 다운로드를 받으시오. 2. Junit으로 applicationContext를 로딩하는 테스트케이스를 작성하시오.
  • 8. 일반 8 /서비스플랫폼개발센터 퀘스트 정보 : [2] 머나먼 배움의 길 ü 진영 : 자바 ü 지역 : 스프링 프레임워크 ­ 빈 와이어링 ü 보상 : 스프링 빈 와이어링 설정 능력 +1, 만족감 +1 ü 퀘스트 요약 1. 팩토리 클래스를 작성하여, 객체 간의 연관관계를 만드시오. 2. 스프링의 기능을 사용하여, 객체 간의 연관관계(빈 와이어링)를 만드시오.
  • 10. 일반 10 /서비스플랫폼개발센터 퀘스트 정보 : [3] 정보 수집 ü 진영 : 자바 ü 지역 : 스프링 프레임워크 ­ AOP ü 보상 : 스프링 AOP 설정 능력 +1, 만족감 +1 ü 퀘스트 요약 1. 스프링의 기능을 사용하여, 서비스 호출 시 콘솔 로그를 남기시오.
  • 12. 일반 12 /서비스플랫폼개발센터 1. 스프링 프레임워크 소개 자바 기반 오픈 소스 애플리케이션 프레임워크 (http://spring.io)
  • 13. 일반 13 /서비스플랫폼개발센터 1.1. 스프링 프레임워크의 목적과 목표(1/2) 더 나은 엔터프라이즈 애플리케이션을 구축하자. 스프링은 어디서나 간단하고, 이식하기 쉬우며, 신속하고, 유연하게 JVM 기반의 시스템과 애플리케이션을 구축할 수 있도록 개발팀을 도와줍니다.
  • 14. 일반 14 /서비스플랫폼개발센터 1.1. 스프링 프레임워크의 목적과 목표(2/2) ü 무엇이든 구축하세요 § 어떤 인프라스트럭처 컴포넌트를 선택하든지 깔끔하고 테스트 가능한 코드를 작성하고, 모든 작업을 수행합니다. ­ 바퀴를 재발명하지 마세요. ü 어디서나 동작합니다 § 이식성 유지 ­ 스프링 기반 애플리케이션은 JVM 실행 환경에서 어디서나 동작합니다. 스탠드얼론, 애플리케이션 서버, PaaS 등 모든 곳에 배포됩니다. ü 걱정하지 마세요 § 신뢰할 수 있는 코드 ­ 스프링은 포괄적이고, 응집성이 있으며, 널리 이해되고, 잘 지원 하는 오픈 프로그래밍 모델을 제공합니다.
  • 15. 일반 15 /서비스플랫폼개발센터 1.2. 스프링 프레임워크의 핵심 기술(1/5) ü 핵심 기술 POJO IoC / DI PSAAOP
  • 16. 일반 16 /서비스플랫폼개발센터 1.2. 스프링 프레임워크의 핵심 기술(2/5) ü POJO(Plain Old Java Object) § 객체지향 프로그래밍 기법과 언어가 주는 장점인 유연한 설계와 재사용성 활용하여 비 즈니스의 복잡성과 변화를 상대함 POJO IoC / DI PSAAOP
  • 17. 일반 17 /서비스플랫폼개발센터 1.2. 스프링 프레임워크의 핵심 기술(3/5) ü Inversion Of Control § 제어의 역전 § 헐리우드 법칙 ü Dependency Injection § 느슨한 커플링 § 책임의 분리 POJO IoC / DI PSAAOP
  • 18. 일반 18 /서비스플랫폼개발센터 1.2. 스프링 프레임워크의 핵심 기술(4/5) ü AOP(Aspect Oriented Programming) § 서로 다른 관심사를 분리(separation of cross-cutting concerns)하여 정복하기 위한 프로그래밍 기법 POJO IoC / DI PSAAOP
  • 19. 일반 19 /서비스플랫폼개발센터 1.2. 스프링 프레임워크의 핵심 기술(5/5) ü PSA(Potable Service Abstraction) § 환경과 세부 기술의 변화에 관계없이 일관된 방식으로 기술에 접근하게 해주는 기능 POJO IoC / DI PSAAOP
  • 20. 일반 20 /서비스플랫폼개발센터 1.3. 스프링 모듈(1/3) 1) 이미지출처 : http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html
  • 21. 일반 21 /서비스플랫폼개발센터 1.3. 스프링 모듈(2/3) GroupId ArtifactId Description org.springframework spring-aop 프록시(Proxy) 기반 AOP 지원 org.springframework spring-aspects AspectJ 기반 스프링 애스펙트(aspect) org.springframework spring-beans 빈 지원 org.springframework spring-context 애플리케이션 컨텍스트의 런타임 구현, 스케줄, 지원 org.springframework spring-context-support 스프링과 서드파티 라이브러리 간의 통합 지원 org.springframework spring-core 핵심 유틸리티 org.springframework spring-expression 스프링 표현 언어(SpEL) org.springframework spring-instrument JVM 부트스트래핑을 위한 인스트루먼트(Instr umentation) agent org.springframework spring-instrument-tomcat 아파치 톰캣을 위한 인스트루먼트(Instrument ation) agent org.springframework spring-jdbc 데이터소스 설정과 JDBC 엑세스를 지원하는 JDBC 패키지
  • 22. 일반 22 /서비스플랫폼개발센터 1.3. 스프링 모듈(3/3) GroupId ArtifactId Description org.springframework spring-jms 동기식 JMS 엑세스와 메시지 리스너 컨테이너 를 지원하는 JMS 패키지 org.springframework spring-messaging 메세징 아키텍처와 프로토콜 지원 org.springframework spring-orm JPA, 하이버네이트 등의 ORM 지원 org.springframework spring-oxm Object/XML 매핑 org.springframework spring-test 테스트 org.springframework spring-tx 트랜잭션 인프라스트럭처 org.springframework spring-web 웹 지원 org.springframework spring-webmvc 웹 애플리케이션을 위한 REST 웹 서비스 및 MVC 구현체 org.springframework spring-webmvc-portlet 포틀릿 환경의 MVC 구현체 org.springframework spring-websocket WebSocket, SockJS 구현체 (STOMP 지원)
  • 23. 일반 23 /서비스플랫폼개발센터 1.4. 스프링 포트폴리오(1/5) 1) 출처 : http://spring.io/projects 스프링 부트 스프링 애플리케이션을 구축하고, 빠르게 실행 가능한 독단적인 뷰를 제공합니다. 스프링 프레임워크 의존성 주입, 트랜잭션 관리, 웹 애플리케이션, 데이터 엑세스, 메시징 등을 위한 핵심 지원기능을 제공합니다. 스프링 XD 데이터 수집, 실시간 분석, 배치 처리 및 데이터 내 보내기를 통해 빅데이터 애플리케이션 개발을 간편하게 합니다. 스프링 IO 플랫폼 애플리케이션 구축을 위한 응집성이 있고, 버전이 잘 맞추어진 엔터프라이즈 수준의 모듈을 제공합니다.
  • 24. 일반 24 /서비스플랫폼개발센터 1.4. 스프링 포트폴리오(2/5) 1) 출처 : http://spring.io/projects 스프링 클라우드 분산 시스템��서의 일반적인 패턴에 대한 도구를 제공합니다. 마이크로서비스를 구축하고 배포하는 데 유용합니다. 스프링 데이터 데이터 접근에 대한 일관된 방식을 제공합니다. 관계형, 비관계형, 맵리듀스 등 스프링 인티그레이션 엔터프라이즈 인티그레이션 패턴을 지원합니다. 스프링 배치 대량 배치작업에 대해 간결하고 최적화된 처리를 합니다.
  • 25. 일반 25 /서비스플랫폼개발센터 1.4. 스프링 포트폴리오(3/5) 1) 출처 : http://spring.io/projects 스프링 시큐리티 포괄적이고 확장 가능한 인증 및 인가를 지원하여 애플리케이션을 보호합니다. 스프링 HATEOAS HATEOAS 원칙에 따라 REST를 간편하게 만들 수 있습니다. 스프링 소셜 페이스북, 트위터, 링크드인과 같은 서드파티 API와 쉽게 연결해줍니다. 스프링 AMQP AMQP 기반의 메시징 솔루션 개발을 스프링 컨셉으로 적용합니다.
  • 26. 일반 26 /서비스플랫폼개발센터 1.4. 스프링 포트폴리오(4/5) 1) 출처 : http://spring.io/projects 스프링 모바일 장비 탐지 및 진보적인 렌더링 옵션을 통해 모바일 웹 애플리케이션 개발을 간편하게 합니다. 스프링 안드로이드 안드로이드 애플리케이션 개발에 사용되는 스프링 컴포넌트를 제공합니다. 스프링 웹 플로 비행기 체크인, 대출 신청과 같은 웹 애플리케이션의 네비게이션 제어(흐름제어) 구 축을 지원합니다. 스프링 웹 서비스 계약우선(contract-first) SOAP 웹서비스 개발을 용이하게 합니다.
  • 27. 일반 27 /서비스플랫폼개발센터 1.4. 스프링 포트폴리오(5/5) 1) 출처 : http://spring.io/projects 스프링 LDAP 스프링에서 익숙한 템플릿 기반의 접근법을 사용하여 LDAP을 이용한 애플리케이션 개발을 간편하게 합니다. 스프링 세션 사용자 세션정보 관리를 위한 API 및 구현체를 제 공합니다.
  • 28. 일반 28 /서비스플랫폼개발센터 2. 스프링 프레임워크의 기능 ü 의존성 주입(DependencyInjection) ü 스프링의 선언적 트랜잭션 관리를 포함한 AOP ü 스프링 MVC 웹 애플리케이션과 RESTful 웹 서비스 프레임워크 ü JDBC, JPA, JMS를 위한 기반을 지원 ü 그 외 다수
  • 29. Q & A