Spring 기본/개념

[Spring] 기본개념 - 2

줄라이퍼스트 2020. 9. 24. 15:39

지난글에 이어서 스프링 두 번째 글을 쓰려고 한다. 못 보신 분들은

2020/08/29 - [Spring 기본/개념] - [Spring] 기본개념 - 1 간단요약

 

[Spring] 기본개념 - 1 간단요약

1. Spring Framework - 자바(JAVA) 플랫폼을 위한 오픈소스(Open Source) 경량급 애플리케이션 프레임워크(Framework) - 프레임워크는 뼈대나 근간을 이루는 코드들의 묶음 -> 개발에 필요한 구조를 이미 코드��

practicelee.tistory.com

1. Spring Framework를 구성하는 기능 요소

 

 

- Spring AOP : 업무로직과 공통로직을 분리

  • AOP 모듈을 통해 Aspect 지향 프로그래밍을 지원한다.

  • AOP 모듈은 스프링 애플리케이션에서 Aspect를 개발할 수 있는 기반을 지원한다.

  • 보안, 인증, 로그 -> 핵심기능과 부가기능이 섞여 있는데 AOP를 적용하면 핵심기능과 부가기능(보안, 인증, 로깅)을 정리 할 수 있음

- Spring ORM : MyBatis, Hibernate, JPA 등 널리 사용 되는 ORM 프레임워크와의 연결고리 제공

  • ORM 제품들을 Spring의 기능과 조합해서 사용할 수 있도록 해준다.

- Spring DAO : JDBC에 대한 추상화 계층 

  • JDBC코딩이나 예외처리 하는 부분을 간편화 시켰으며 AOP 모듈을 이용해 트랜잭션 관리 서비스도 제공

- Spring WEB : 웹 애플리케이션의 개발에 필요한 기본적인 기능을 제공

 

- Spring Core : Spring프레임워크의 기본기능을 제공

  • 이 모듈에 있는 BeanFactory는 Spring의 기본 컨테이너이면서 스프링 DI의 기반

- Spring Context : Context 모듈은 BeanFactory의 개념을 확장한 것

  • 스프링 코어에서 제공하는 기능을 확장해서 지원

  • 국제화 메세지, 애플리케이션 생명주기 이벤트, 유효성 검증등을 지원

- Spring WebMVC : 사용자 인터페이스가 애플리케이션 로직과 분리되는 웹 애플리케이션을 만드는 경우에 일반적으로 사용하는 패러다임

 

2. Spring Framework 아키텍처 구성요소

아키텍쳐는 대부분의 중 ㆍ 대규모 웹 애플리케이션은 효율적인 개발 및 유지보수를 위하여

계층화 하여 개발하는 것이 일반적이다.

 

1. 프레젠테이션 계층

  • 웹브라우저상의 웹클라이언트의 요청 및 응답을 처리

  • 비즈니스 로직과 최종 UI를 분리하기 위한 컨트롤러 기능을 제공

  • @Conteroller 어노테이션을 사용하여 작성된 Controller 클래스가 이계층에 속함

2. 서비스 계층

  • 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증

  • 트랜잭션 처리 - 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증

  • 프레젠테이션 계층과 데이터 액세스 계층사이를 연결하는 역할 두계층이 직접적으로 통신하지 않게 하여 애플리케이션의 유연성을 증가

  • 다른계층들과 통신하기 위한 인터페이스를 제공

  • @Service 어노테이션을 사용하여 작성된 클래스가 이계층 속함

3. 데이터 액세스 계층

  • 영구저장소(관계형 데이터베이스)의 데이터를 조작하는 데이터 액세스 로직을 객체화

  • 영구저장소의 데이터를 조회, 등록, 수정, 삭제 함

  • ORM 마이바티스, 하이버네으트를 주로 사용

  • DAO 인터페이스와 @Respository 어노테이션을 사용하여 작성된 DAO 구현 클래스가 이계층에 속함

4. 도메인 모델 클래스

 

  • 관계형 데이터 베이스의 엔티티와 비슷한 개념을 가지는 것으로

  • VO 혹은 DTO 객체에 해당

  • 도메인 모델 클래스는 3개의 계층 전체에 걸쳐 사용

  • private으로 선언된 멤버변수가 있고 그변수에 대한 gettersetter 메서드를 가진 클래스를 말함

'Spring 기본 > 개념' 카테고리의 다른 글

[Spring] Spring Security 기본 개념 요약 -1  (0) 2020.08.29
[Spring] 기본개념 - 1 간단요약  (0) 2020.08.29