spring framework 튜토리얼 - 네이버 최영목님

30
스프링 프레임워크 튜토리얼 최영목 서비스플랫폼개발센터 NAVER Corp.

Upload: naver-d2

Post on 14-Jan-2017

5.474 views

Category:

Technology


9 download

TRANSCRIPT

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

스프링 프레임워크튜토리얼

최영목

서비스플랫폼개발센터

ⓒ NAVER�Corp.

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

목차

ü 개요

ü Q1.�다운로드

ü Q2.�빈와이어링

ü Q3.�AOP

ü 스프링다시시작하기

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

개요

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

일반

4 /서비스플랫폼개발센터

실습환경

ü 최소요구사항

§ JDK�6+�for�Spring�Framework�4.x

§ JDK�5+�for�Spring�Framework�3.x

ü 주의사항

§ 실습을따라했는데도실력이늘지않거나만족감이늘지않는다면

• 과거에경험했다는사실을인지를한경우 :�기존에퀘스트를이미수행했을가능성이높음

• 과거에경험했다는사실을인지를하지못한경우 :�자신도모르는사이에이미버스(잘하는사람등누군가

의도움)를탔을가능성이있음

ü 실습참조

• https://github.com/swtest/d2-campus-seminar-04th

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

Q1.�다운로드

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

일반

6 /서비스플랫폼개발센터

퀘스트정보 : [1] 입단신고

ü 진영 : 자바

ü 지역 : 스프링프레임워크­ Quick�Start

ü 보상 : 스프링환경설정능력 +1,만족감+1

ü 퀘스트요약

1. pom.xml에디펜던시를추가하여다운로드를받으시오.

2. Junit으로applicationContext를로딩하는테스트케이스를작성하시오.�

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

Q2.�빈 와이어링

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

일반

8 /서비스플랫폼개발센터

퀘스트정보 : [2] 머나먼배움의길

ü 진영 : 자바

ü 지역 : 스프링프레임워크­ 빈 와이어링

ü 보상 : 스프링빈 와이어링설정능력+1, 만족감+1

ü 퀘스트요약

1. 팩토리클래스를작성하여,객체간의연관관계를만드시오.

2. 스프링의기능을사용하여,객체간의연관관계(빈와이어링)를만드시오.�

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

Q3.�AOP

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

일반

10 /서비스플랫폼개발센터

퀘스트정보 : [3] 정보수집

ü 진영 : 자바

ü 지역 : 스프링프레임워크­ AOP

ü 보상 : 스프링AOP 설정능력+1, 만족감+1

ü 퀘스트요약

1. 스프링의기능을사용하여,서비스호출시콘솔로그를남기시오.�

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

스프링다시시작하기

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

일반

12 /서비스플랫폼개발센터

1.�스프링프레임워크소개

자바 기반오픈 소스애플리케이션프레임워크

(http://spring.io)

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

일반

13 /서비스플랫폼개발센터

1.1.�스프링프레임워크의목적과목표(1/2)

더 나은엔터프라이즈애플리케이션을구축하자.

스프링은어디서나간단하고,�이식하기쉬우며,�신속하고,�유연하게 JVM�기반의시스템과애플리케이션을구축할수 있도록개발팀을도와줍니다.

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

일반

14 /서비스플랫폼개발센터

1.1.�스프링프레임워크의목적과목표(2/2)

ü 무엇이든 구축하세요

§ 어떤인프라스트럭처컴포넌트를 선택하든지깔끔하고 테스트가능한 코드를작성하고,�

모든 작업을수행합니다.�­ 바퀴를 재발명하지마세요.

ü 어디서나 동작합니다

§ 이식성 유지 ­ 스프링 기반애플리케이션은 JVM�실행환경에서 어디서나동작합니다.�

스탠드얼론,�애플리케이션 서버,�PaaS 등모든 곳에배포됩니다.

ü 걱정하지 마세요

§ 신뢰할 수있는 코드 ­ 스프링은 포괄적이고,�응집성이있으며,�널리이해되고,�잘 지원

하는 오픈프로그래밍 모델을제공합니다.

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

일반

15 /서비스플랫폼개발센터

1.2.�스프링프레임워크의핵심기술(1/5)

ü 핵심 기술

POJO

IoC /�DI

PSAAOP

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

일반

16 /서비스플랫폼개발센터

1.2.�스프링프레임워크의핵심기술(2/5)

ü POJO(Plain�Old�Java�Object)

§ 객체지향 프로그래밍기법과 언어가주는 장점인유연한 설계와재사용성 활용하여비

즈니스의 복잡성과변화를 상대함

POJO

IoC /�DI

PSAAOP

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

일반

17 /서비스플랫폼개발센터

1.2.�스프링프레임워크의핵심기술(3/5)

ü Inversion�Of�Control

§ 제어의 역전

§ 헐리우드 법칙

ü Dependency�Injection

§ 느슨한 커플링

§ 책임의 분리

POJO

IoC /�DI

PSAAOP

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

일반

18 /서비스플랫폼개발센터

1.2.�스프링프레임워크의핵심기술(4/5)

ü AOP(Aspect�Oriented�Programming)

§ 서로 다른관심사를 분리(separation�of�cross-cutting�concerns)하여정복하기위한

프로그래밍 기법

POJO

IoC /�DI

PSAAOP

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

일반

19 /서비스플랫폼개발센터

1.2.�스프링프레임워크의핵심기술(5/5)

ü PSA(Potable�Service�Abstraction)

§ 환경과 세부기술의 변화에관계없이 일관된방식으로 기술에접근하게 해주는기능

POJO

IoC /�DI

PSAAOP

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

일반

20 /서비스플랫폼개발센터

1.3.�스프링모듈(1/3)

1) 이미지출처 : http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html

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

일반

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�패키지

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

일반

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�지원)

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

일반

23 /서비스플랫폼개발센터

1.4.�스프링포트폴리오(1/5)

1) 출처 : http://spring.io/projects

스프링 부트

스프링애플리케이션을 구축하고,�빠르게 실행가능한 독단적인뷰를제공합니다.

스프링 프레임워크

의존성주입,�트랜잭션관리,�웹 애플리케이션,�데이터 엑세스,�메시징 등을위한핵심지원기능을 제공합니다.

스프링 XD

데이터수집,�실시간 분석,�배치 처리 및데이터내보내기를통해 빅데이터애플리케이션

개발을간편하게 합니다.

스프링 IO�플랫폼

애플리케이션 구축을위한응집성이있고,버전이잘맞추어진 엔터프라이즈수준의

모듈을제공합니다.

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

일반

24 /서비스플랫폼개발센터

1.4.�스프링포트폴리오(2/5)

1) 출처 : http://spring.io/projects

스프링 클라우드

분산시스템에서의 일반적인패턴에대한 도구를제공합니다. 마이크로서비스를 구축하고

배포하는데유용합니다.

스프링 데이터

데이터접근에 대한일관된방식을제공합니다.관계형, 비관계형, 맵리듀스 등

스프링 인티그레이션

엔터프라이즈 인티그레이션패턴을 지원합니다.

스프링 배치

대량배치작업에 대해간결하고최적화된처리를합니다.

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

일반

25 /서비스플랫폼개발센터

1.4.�스프링포트폴리오(3/5)

1) 출처 : http://spring.io/projects

스프링 시큐리티

포괄적이고 확장가능한인증및인가를지원하여애플리케이션을 보호합니다.

스프링 HATEOAS

HATEOAS 원칙에따라 REST를간편하게만들수있습니다.

스프링 소셜

페이스북, 트위터, 링크드인과 같은서드파티 API와 쉽게 연결해줍니다.

스프링 AMQP

AMQP 기반의메시징솔루션 개발을스프링컨셉으로 적용합니다.

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

일반

26 /서비스플랫폼개발센터

1.4.�스프링포트폴리오(4/5)

1) 출처 : http://spring.io/projects

스프링 모바일

장비탐지및진보적인 렌더링옵션을통해모바일웹애플리케이션 개발을

간편하게합니다.

스프링 안드로이드

안드로이드 애플리케이션개발에사용되는스프링컴포넌트를 제공합니다.

스프링 웹 플로

비행기체크인, 대출 신청과같은웹애플리케이션의 네비게이션제어(흐름제어) 구

축을지원합니다.

스프링 웹 서비스

계약우선(contract-first) SOAP�웹서비스개발을용이하게합니다.

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

일반

27 /서비스플랫폼개발센터

1.4.�스프링포트폴리오(5/5)

1) 출처 : http://spring.io/projects

스프링 LDAP

스프링에서 익숙한템플릿기반의접근법을사용하여 LDAP을 이용한

애플리케이션 개발을간편하게합니다.

스프링 세션

사용자세션정보 관리를위한 API 및 구현체를제공합니다.

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

일반

28 /서비스플랫폼개발센터

2.�스프링프레임워크의기능

ü 의존성 주입(Dependency�Injection)

ü 스프링의 선언적트랜잭션 관리를포함한 AOP

ü 스프링MVC�웹 애플리케이션과RESTful 웹 서비스프레임워크

ü JDBC,�JPA,�JMS를 위한기반을 지원

ü 그 외 다수

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

Q�&�A

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

감사합니다.