일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 암호 해독
- 조건에 맞게 수열 변경하기 3
- 스파르타코딩캠프
- Error installing cocoapods
- 주사위 게임1
- 스페인어
- 프로그래머스 문자열 정렬하기 (1)
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 스파르타 코딩클럽 내일배움캠프
- 문자열 붙여서 출력하기
- cocoapods 설치 오류
- 프로그래머스 배열 만들기1
- 프로그래머스 문자열 붙여서 출력하기
- ruby설치
- 프로그래머스
- 객체지향
- n번째 원소까지
- swift
- 문자열 정렬하기 (1)
- 프로그래머스 주사위 게임1
- 프로그래머스 n의 배수 고르기
- Break
- 배열 만들기1
- 프로그래머스 자동커밋
- continue
- 프로그래머스 n번째 원소까지
- Til
- 프로그래머스 최댓값 만들기(2)
- 연산자
- array
- Today
- Total
dev._.note
[SPRING] 스프링 개요 본문
스프링의 특징
스프링의 가장 큰 특징은 IOC, DI, POJO, PSA, AOP 를 꼽을 수 있음.
- 제어 반전, IoC (Inversion of Control)를 지원함.
- 컨트롤의 제어권이 개발자가 아니라 프레임워크에 있음
- 객체의 생성부터 모든 생명주기의 관리까지 객체의 제어권이 바뀐 것을 의미합니다.
- 객체를 생성하고, 직접 호출하는 자바프로그램이 아니라, 만들어둔 자원을 프레임워크에서 호출해서 사용함.
- 의존성 주입, DI (Dependency Injection) 를 지원함.
- 이는 객체간의 의존관계를 관리하는 기술
- 어떤 객체가 필요로 하는 객체를 자기 자신이 직접 생성하는 것이 아니라, 외부에 있는 다른곳에서 자신이 필요로 하는 객체를 주입받는 것
- POJO (Plain Old Java Object) 방식의 프레임워크
- 일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용할 필요가 없어서 개발이 쉬우며, 기존 라이브러리의 지원이 용이함.
- PSA (Portable Service Abstraction)
- 스프링은 다른 여러 모듈을 사용함에 있어서 별도의 추상화 레이어 제공
- 예를 들어 JPA를 사용할 때에서 Spring JPA를 사용하여 추상화 하므로 실제 구현에 있어서 Hibernate를 사용하든 EclipseLink를 사용하든 사용자는 이 모듈의 의존 없이 프로그램에 집중가능.
- 관점지향프로그래밍, AOP(Aspect Oriented Programming)를 지원함.
- 트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 적용되는데, 이런 코드들을 실제 비지니스 로직과 분리
- 한때, AOP가 OOP(Object Oriented Programming)를 대체하는 기술로 생각되기도 했지만, 실제로 AOP는 OOP를 더욱 OOP스럽게 보완해 주는 기술임.
스프링 주요 모듈
Core : DI 기능을 비롯한 프레임워크의 기반을 제공
Beans : BeanFactory 인터페이스를 통해 구현
expression : 객체에 접근하고 객체를 조작하기 위한 언어를 제공
context : spring-core와 spring-beans 모듈을 확장해, 국제화, 이벤트 처리, 리소스 로딩, 서블릿 컨테이너를 위한 컨텍스
트 생성 등의 기능을 추가로 제공ApplicationContext 인터페이스를 통해 구현
context.support : Ehcache, 메일, 스케줄링, UI의 Velocity 기능 지원
aop : AOP Alliance에 호환되는 AOP 구현
aspects : AspectJ와 통합을 제공
web : 파일 업로드, locale 처리 등 웹 통합 기능 제공, 원격 지원 기능 중 웹 관련 기능 제공
web.servlet : 스프링 MVC 제공jsp,Velocity에 대한 뷰 연동 지원
web.portlet : 포틀릿 환경에서의 MVC 구현
jdbc : jdbc 프로그래밍을 위한 추상 레이어 제공jdbc 탬플릿을 제공함으로서 간결한 jdbc 프로그래밍 가능
orm : 하이버네이트, JPA, iBatios, JDO 등 API를 위한 통합 레이어 제공. 스프링이 제공하는 트랜잭션 관리와의 연동을
지원
oxm : 객체와 xml 사이의 매핑을 처리하기 위한 추상 레이어 제공. JAXB, Castor, XmlBeans, JiBX, XStream과의 연동을
지원
jms : JMS 메시지를 생성하고 수신하는 기능
test : JUnit, TestNG를 이용한 스프링 컴포넌트 테스트 지원
instrument : Instrumentation 지원 클래스 제공
instrument.tomcat : 톰캣 서버를 위한 instrumentation 지원 클래스 제공.
asm : asm 라이브러리를 재패킹한 모듈
'Dev > SPRING' 카테고리의 다른 글
[SPRING] Springboot (0) | 2023.03.06 |
---|---|
[SPRING] Spring Security Filter (0) | 2023.03.03 |
[SPRING] AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 (0) | 2023.02.27 |
[SPRING] Transaction 선언 (0) | 2023.02.25 |