일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- model
- opencv
- destroyallwindows
- Java
- gitignore
- Vector
- Python
- 저장소
- 함수
- Spring
- git
- Linux
- AI
- Anaconda
- Repository
- 머신러닝
- 파이썬
- list
- db
- 가중치
- Session
- data
- 이미지
- branch
- datascience
- tensorflow
- r
- CLONE
- imshow
- imread
- Today
- Total
AI학교
Spring 본문
스프링은 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 어플리케이션 프레임워크입니다.
기업을 대상으로 어플리케이션을 개발합니다.
Framework는 소프트웨어를 만드는데 기본이 되는 골격 코드로, 반제품 완전한 어플리케이션 소프트웨어가 아닙니다.
도메인(문제영역)을 해결하기 위해 설계된 재사용 가능한 모듈입니다.
확장해 비즈니스 요구에 맞는 완전한 어플리케이션으로 완성이 요구됩니다.
종류로는
웹 어플리케이션 프레임워크
Struts, WebWork, Spring MVC
데이터베이스 어플리케이션 프레임워크
iBatis(MyBatis), Hibernate, Spring DAO
기타 프레임워크
Logging(Log4J), 빌드/배포(Ant, Maven), 단위 테스트(JUnit)
Application Framework
특정 계층, 기술, 비즈니스에 국한되지 않고 어플리케이션 전 영역을 포괄합니다. -> 풀스텍 프레임워크
EJB(Enterprise Java Beans)
자바 객체들을 조합하기 위해 만들어졌습니다.
자바 객체들을 재사용 가능하게하는 코딩방식을 정의했습니다.
<jsp:useBean><jsp:getProperty><jsp:setProperty>
단, 디폴트 생성자는 반드시 존재해야 합니다.
프로퍼티 변수는 private, protected로 정의해 아무나 접근할 수 없게 해야 합니다.
public 접근 지정자를 가지는 set???(), get???() 메서드를 만듭니다.
***POJO
Plain Old Java Object
순수한 자바 Object 만 남깁니다.
특정 클래스를 상속하거나 인터페이스를 구현하지 않는 평범한 자바 클래스를 이용하여 단순하지만 EJB에서 제공하는 고급 기술을 제공합니다.
수퍼클래스를 상속받지 않습니다.
EJB(Winter) ->지금의 Spring(봄)으로 발전하게 됩니다.
AOP(Aspect Oriented Programming)
- 관점 지향 프로그래밍
- 해당 객체가 직접적으로 수행되어야 할 핵심 관심과 핵심관심은 아니지만 꼭 해줘야할 횡단 관심을 분리합니다.
- 중복 코드가 많아 지저분하고 생산성이 저하되고 재활용성의 문제점이 있습니다.
***IOC/DI
Inversion of Controll : 제어의 역전
Class A | Class B
원래는 클래스 A에서 클래스 B를 사용할 때
cb= new Class B(); ->B를 생성주기 관리하는 클래스는 A가 된다
IoC는 container에서 Class B를 만들고 Class A에 넣어줍니다.
Class B를 관리하고 생성하고 제어하는 권한은 container에 있있습니다.
Spring의 특징
Container 역할을 합니다.
EJB의 컨테이너 기능은 유지하되 복장성을 제거했습니다.
객체들의 lifecycle을 관리해줍니다.
컴포넌트, 객체의 자유로운 삽입, 삭제가 가능합니다.
서비스 설정, 객체를 찾는 것들을 대신해주는 일관된 사용방법이 존재합니다.
싱글톤이나 팩토리를 구현할 필요가 없습니다.
EJB에서 활용하던 부가적인 기능을 손쉽게 객체에 추가하는 서비스가 있습니다.
PSA
환경에 상관없이 어디든 이동 가능합니다
모듈과 기능
Core 스프링 핵심 모듈, Bean Factory.IoC 패턴 적용
Ioc(DI) Container = Bean Factory = Application Context
Context 컨텍스트 정보 포함
AOP 관점 지향 기능 제공
Web 웹 어플리케이션 개발에 필요한 기능 제공
WebMVC MVC 구현에 관련된 기능 제공
주요 전략
1. POJO를 이용한 가볍고 비침투적non-invasive(부가적인 기능은 배제하고 기본적인 객체와 로직만 만들도록 한다.)개발
2. DI(dependancy injection 특정 기능을 위해 어딘가에 종속되어 있다)와 인터페이스 지향(상속X)을 통한 느슨한 결합도
3. Aspect와 공통 규약을 통한 선언적(Declaritive 해당 객체가 가진 최종 목표만 기술)프로그래밍
4. Aspect와 템플릿을 이용한 반복적이고 상투적인 코드 제거
'Servlet > Spring' 카테고리의 다른 글
myportal 프로젝트 DB 설계 (0) | 2019.10.28 |
---|---|
MyBatis 설정하기 (0) | 2019.10.25 |
Application Architecture (0) | 2019.10.25 |
DispatcherServlet과 MVC (0) | 2019.10.24 |
Spring 시작하기 (0) | 2019.10.24 |