티스토리 뷰
스프링 프레임워크(Spring Framework)
우리나라에서는 자바 기반의 프로젝트를 진행할 때 대부분 스프링 프레임워크를 사용한다.
스프링 프레임 워크를 웹 프로젝트로 오해하는 분들도 많다. 하지만 스프링 프레임워크는 웹 애플리케이션, 간단한 애플리케이션, 여러 서버와 연동하여 동작하는 엔터프라이즈 애플리케이션도 범용적인 스프링 프레임워크다.
Spring의 가장 큰 특징은 복잡한 애플리케이션도 POJO(Plan Old Java Object)로 개발할 수 있다는 점이다. 이 밖에도 JMS, JMX, Mail, Web Service 등 여러 가지 기능을 POJO 기반으로 사용할 수 있다.
스프링의 핵심 기술(Spring Core technology)
스프링의 핵심 기술은 바로 DI(Dependency Injection), AOP(Aspect Oriented Programming), PSA(Portable Service Abstraction)으로 함축할 수 있다.
DI
DI는 "의존성 주입"이라고 한다. 객체 간의 의존 관계를 관리하는 기술 정도로 생각하면 된다. 객체는 보통 여러 다른 객체와 협업하여 일을 처리한다. 이때 자신과 협업하는 객체와 의존성을 가능한 낮춰야 한다.
스프링은 의존성을 쉽게 주입하는 틀을 제공한다. XML이나 어노테이션 등으로 의존성을 주입하는 방법을 제공하며 생성자 주입, 세터 주입, 필드 주입 등 다양한 의존성 주입 방법을 제공하고 있다.
AOP
AOP는 "관점 지향 프로그래밍"이라고 한다. 객체 지향 프로그래밍을 더욱 객체 지향 프로그래밍 답게 보완해주는 기술이다. 트랜잭션, 로깅, 보안, 체크 코드를 생각해 보자. 이런 코드를 실제 비지니스 로직과 분리할 수 있도록 도와주는 것이 AOP다. 자바에서 대표적인 AOP 프레임워크는 AspectJ가 있다.
PSA
PSA(Portable Service Abstraction)은 비슷한 기술을 아우를 수 있는 추상화 계층을 제공하여, 사용하는 기술이 바뀌더라도 비즈니스 로직의 변화가 없도록 도와준다. 의존성 주입 기능을 통해 객체만 바꿔주면 된다. 서비스 추상화를 위해 필요한 기술은 DI이다. 결국 DI 응용 방법의 한 가지이므로 DI를 적극 활용해서 개발한다면 서비스 추상화는 자연스럽게 만들어 쓸 수 있다. 서비스 추상화는 단지 구체적인 기술에 종속되지 않게 하기 위해서만 사용되는 것은 아님을 명심하자.
'프로그래밍 > Back end' 카테고리의 다른 글
[Back end] Spring MVC 리턴 타입 캐시 (0) | 2019.03.17 |
---|---|
[Back end] Java 윈도우 JAVA_HOME 환경변수 설정 (0) | 2019.03.17 |
[Back end] Java 용어 (0) | 2019.03.03 |
[Back end] Java 프로그래머가 실수하는 10가지 유형 - 2 (0) | 2019.02.08 |
[Back end] Java 프로그래머가 실수하는 10가지 유형 - 1 (0) | 2019.02.08 |
- 제주도 여행
- Java
- React
- 경력관리
- effective java
- Collection
- 제주도 3박4일 일정
- 리액트
- 자바
- 오라클
- 리눅스 명령어
- Maven
- 프로그래머
- 오라클 내장 함수
- spring
- Linux 명령어
- 이직
- 성능분석
- javascript
- 정렬 알고리즘
- 리액트 16
- 회고
- Tomcat
- 개발환경
- 프로그래머스
- SQL
- sort algorithm
- 자바스크립트
- Eclipse
- 소프트웨어공학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |