본문 바로가기

web +a

스프링&웹 | 각 레이어에 관련된 스프링 기능

스프링은 애플리케이션 아키텍처의 기반이 된다.

 

∨ MVC 프레임워크 (스프링 MVC, 스프링 웹 플로)

 JDBC를 추상화한 프레임워크 (스프링 JDBC)

 기존 프레임워크

=> DIxAOP 컨테이너를 중심으로 통합 가능하다!

 

.

.

 

웹 애플리케이션의 각 레이어에는 어떤 스프링 기능이 해당하는지 알아보자.

 


 

프레젠테이션 층

 

 스프링 MVC

: 스프링 MVC, 스프링 웹 플로 이용 가능

: 즉 MVC 프레임워크를 이용한다.

cf) 스프링 웹 플로를 이용시 Ajax 연계 가능

 

스프링 시큐리티

: 화면별 액세스 제어에 많이 사용된다.

: 물론 레이어 전체에서 사용 가능하다.

: 인증/인가 기능 제공 & 베이직 인증이나 OAuth 표준에 따라가는 인증서비스(페북, 트위터, 구글)를 사용 가능!

 

 

 

즈니스 로직 층

 

 스프링 DIxAOP 컨테이너

: DI를 통해 소프트웨어 부품화 & 설계 가능

( : DI는 오브젝트를 생성하고 오브젝트끼리 관계를 생성)

* recall : 부품화는 팀개발 & 유닛테스트를 쉽게 한다.

: DI를 이용하여 인터페이스 기반의 컴포넌트를 쉽게 구현 가능

: AOP를 이용하여 개발자가 비즈니스 로직에 집중 가능 (=> 부품화 촉진)

( : AOP는 오브젝트 책임 외의 로직을 소스코드에 명시적 기술하지 않고 나중에 추가 가능! 가령 사용자 인증, 로깅, 트랜잭션 관리, 예외 처리 등이 있다. 이것들은 뒤로하고 기능 구현에만 집중할 수 있게 해준다. ) 

 

스프링 캐시

이용자 증가 → 퍼포먼스 문제 발생 가능 ( : 대부분 RDB와의 처리에서 일어나는 문제 )

=> 스프링 캐시 : 데이터를 캐시해서 RDB와의 처리를 줄여 퍼포먼스 향상시키기 가능!

 

 

 

데이터 액세스 층

 

 스프링 JDBC

: SQL문을 이용하는 형테의 데이터 액세스 프레임워크다.

: 이용법 - 'SELECT문', 'SELECT한 결과와 엔티티 클래스의 매핑'을 기술하기만 하면 된다.

cf) SQL말고 SML을 이용해 오브젝트와 테이블을 매핑하는 프레임워크도 많긴 하다.

: JDBC를 추상화하는 프레임워크

* JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API

 

 스프링 데이터

: RDB, NoSQL 등 DB에 다른 데이터 스토어들이 액세스하는 것에 대한 통일화&단순화를 목적으로 한 프로덕트

: RDB에 JPA 등이 액세스 가능

: NoSQL에 MongoDB, Neo4j 등이 액세스 가능

* MongoDB : 도큐먼트형 DB

* Neo4j : 그래픽형 DB

 

스프링 ORM 인티그레이션 기능

: 데이터 액세스 층에서 스프링 JDBC를 반드시 이용할 필요는 없고, ORM 인티그레이션 기능을 이용하면 간단하게 서비스를 만들 수도 있다. 

: 중요성은 많이 떨어졌으나 오래된 프레임워트나 하이버네이트를 이용하는 경우라면 유용하다고 한다. 

: 그냥 넘어가자!!

 


웹 애플리케이션 개발에서 레이어와는 별개로 꼭 필요한 처리도 존재한다.

배치 처리와 같은 것이다.

 

 스프링 배치

: 배치 처리를 실행하기 위한 템플릿이다.

: 배치 처리시 대량데이터의 일괄처리, 복수처리, 병행처리를 고려해야 하는데, 스프링 배치로 해결!

 

 


그냥 오전시간에 가볍게 읽어봤다. 

웹애플리케이션의 어떤 레이어에 스프링의 각 기능이 적용되는지 간단히 알아봤다.

일단 그렇구나하고 넘어가도 지금은 충분할 것 같다. 

 

다음부터는 이걸 공부하게 된다.

챕터2) 스프링 DI

챕터3) 스프링 AOP

 

그리고나서는 각 레이어의 설계&구현을 상세히 설명한다.

빨리 해야지!! 

 

 

 

반응형
다른 블로그