티스토리 뷰

 

스프링 프레임워크(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를 적극 활용해서 개발한다면 서비스 추상화는 자연스럽게 만들어 쓸 수 있다. 서비스 추상화는 단지 구체적인 기술에 종속되지 않게 하기 위해서만 사용되는 것은 아님을 명심하자.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/05   »
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
글 보관함