211105(금) Spring 1일차 - 특징 / 모듈 / 다운로드(로깅추가로) / 스프링 수업 순서 / 프로젝트 만들기(jar)
<Spring Framework 특징>
=> 자바의 개발을 쉽게하도록 도와주는 것!
cf) 마이바티스도 프레임워크... => 프레임워크: 탈 것! 목적 분명!!
JAVA ENTERPRISE APPLICATION 개발에 사용되는 자바플랫폼을 위한 오픈소스 어플리케이션 프레임워크이다
[특징]
- 자바 객체를 담고 있는 경량 컨테이너이다
객체의 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로 부터 필요한 객체를 얻어올 수 있다
cf) new 를 안한다 => 스프링이 알아서 해준다?!
- POJO(Plain Old Java Object) 기반의 개발
=> 상속을 안받는다는 이야기
- 제어 반전(IoC - Inversion of Control)을 지원
컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자 코드를 호출할 수 있다
- 의존성 주입 DI(Dependency Injection)을 지원
설정파일을 통해서 객체간의 의존 관계를 설정할 수 있다
- AOP(Aspect Oriented Programming) 지원
- 트랜잭션 처리를 위한 방법을 제공
- 영속성과 관련되 다양한 서비스를 제공
=>ORM
myBatis, hibernate등 데이터 베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다
- 동적인 웹 사이트 개발하기 위한 여러가지 서비스를 제공
우리나라에서는 공공기관의 웹 서비스 개발시 사용을 권장하는 전자정부 표준프레임워크의 기반 기술로 사용되고 있다
- MVC Framework를 제공
- 대형 프로젝트
- 인터페이스 베이스 설계와 스프링을 활용함으로써 소스 파일은 변경하지 않고 스프링 설정 파일만 변경해서 다양한 객체를 생성하는, 변경이 유연한 어플리케이션을 작성할 수 있게 되었다
- 스프링을 사용하는 이유는 "필요한 인스턴스를 스프링에서 미리 생성해 준다" 라는 장점을 얻을 수 있다.
- 스프링은 자주 변경이 되거나 컴포넌트의 재활용이 높은 유연한 어플리케이션을 작성할 수 있게 하며 테스트도 쉽다.
- 스프링은 프레임워크지만 스트럿츠처럼 웹 어플리케이션 전용의 프레임워크와는 다른 특징이 있다
cf) 스트럿츠는 이제 사라짐 쓰면 도태된 회사
- 스프링은 '어플리케이션 프레임워크'로 불린다
콘솔 어플리케이션나 스윙과 같은 GUI 어플리케이션등 어떤 어플리케이션에도 적용 가능한 프레임워크이다.
cf) 자바의 콘솔 , 스윙, 웹 등 다 가능 => 웹에 국한되지 않았다!
- 스프링은 EJB와 같이 복잡한 순서를 거치지 않아도 간단하게 이용할 수 있기 때문에 "경량 컨테이너" 라고 부른다.
- 스프링은 Dependency Injection(DI)와 Aspect Oriented Programming(AOP)을 가장 중점적인 기술로 사용하지만 여러가지 기능도 제공하고 있다.
cf) 객체지향프로그램 - OOP - DI: 결합도 낮추기 (부모=자식, 다형성) - AOP: 중복 없애기 (중복을 막으려고 모든 코드를 함수 단위로 분리) => 스프링의 관점지향프로그램 AOP(보완개념) => AOP 는 실제로 쓰진 않는데 엄청 중요해서...??!! 힘든 부분이다 어려운 부분!!! |
cf) AOP: 관점 지향 프로그래밍 => 중복되는 코드를 다 빼버린다, 코드의 중복성을 배제
cf) 파이썬 장고가 스프링이랑 비슷
<스프링 모듈>
- 스프링은 크게 나눠 7개 모듈로 구성되어 있으며, 필요에 따라 이들을 서로 조합하여 사용할 수 있다
- Spring Core
- Spring AOP
- Spring ORM
- Spring DAO
- Spring Web
- Spring Context
- Spring Web MVC
<다운로드 추가로(로깅 - 기록남겨야 해서)>
http://commons.apache.org/proper/commons-logging/download_logging.cgi
스프링 파일에 압축 푼다!
기존에는 공식사이트에서 zip 압축파일을 받아 jar를 구했는데 지금 사이트에서 Maven, Gradle로 라이브러리를 받게 끔 하고 있다
1. spring-framework-5.2.0.RELEASE-dist.zip 다운로드
2. 압축풀기
★ 스프링 편집기
1. STS(Spring Tool Suite) 다운받아서 설치
2. Eclipse에서 Help → Eclipse Marketplace → STS 검색
<스프링 수업 순서>
<STS 프로젝트 만들기>
doc 도큐먼트파일은 필요없고 jar만 있으면 된다!
- 메이븐을 하면 각자 사물함을 갖어서??? 자르파일이 필요 없어 진다
원래는 Spring Maven 해야되는데 죽어버렸음 -> 심플 로 똑같이 만든다!!
[실습]
Project : chapter01_SpringMaven (Spring Legacy Project – Simple Java)
우클릭 - Configure - Convert to Maven Project