spring framework 튜토리얼 - 네이버 최영목님
TRANSCRIPT
스프링 프레임워크튜토리얼
최영목
서비스플랫폼개발센터
ⓒ 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�부트스트래핑을 위한인스트루먼트(Instrumentation) agent
org.springframework spring-instrument-tomcat 아파치 톰캣을 위한인스트루먼트(Instrumentation) 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.�스프링프레임워크의기능
ü 의존성 주입(Dependency�Injection)
ü 스프링의 선언적트랜잭션 관리를포함한 AOP
ü 스프링MVC�웹 애플리케이션과RESTful 웹 서비스프레임워크
ü JDBC,�JPA,�JMS를 위한기반을 지원
ü 그 외 다수
Q�&�A
감사합니다.