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.

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

8,442 views

Published on

제 4회 D2 CAMPUS SEMINAR - 4세션

Published in: Technology

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

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

×