2021.08.01
오늘은 spring framework의 개념과 mvc패턴들의 대해 정리하겠습니다.
1. spring framework란
spring framework란 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임 워크입니다.
spring은 동적인 웹 사이트 개발을 위해 다양한 기능들을 제공합니다.
특유의 장점은 pojo, di, aop, ioc가 있습니다.
1) POJO (Plain Old Java Object) 기반의 개발
기본적인 java 코드로 spring을 이용 가능하다는 이야기 같은데, 예전엔 이런 기능이 특별했나봅니다.
2) DI (Dependency Injection) 의존성 주입
java는 abstract class나 interface로 각 클래스 간의 의존성이 존재합니다. DI는 이 의존성을 자바가 아닌 spring에게 맡기는 것을 말합니다. 간단히 말해 원하는 기능을 프레임워크를 통해 조립할 수 있게 해준다 라고 이해하면 되겠습니다.
3) AOP (Aspect Oriented Programming ) 관점 지향 프로그래밍
(본인에게 가장 어려운 개념, 정확하지 않음)
다른 블로그 포스팅에서 가져온 말로는, 어떤 로직을 기준으로 핵심적인 관점과 부가적인 관점으로 나누어 보고 그 관점을 기준으로 각각 모듈화하겠다는 말이라고 합니다. 써놓고도 이해가 잘 안됩니다.
제가 이해한 것은 소스 코드 상에서 계속해서 반복되는 부분들을 (로직이나 기능을) 하나의 단위로 묶는다는 말 같습니다. 공부 나중에 더해야겠습니다..
4) IOC (Inversion of Control)
제어의 권한을 개발자가 아닌 프레임워크에게 넘기는 기능입니다. 여기서 제어에 해당하는 것들은
메서드나 객체의 호출 작업이 있습니다.
2. MVC란
model, view, controller의 줄임말로 사용자와 상호작용할 애플리케이션을 디자인하는 과정에서 3가지로 쪼개 놓은 것을 말합니다.
1) model -> 간단히 데이터를 말함
2) controller -> 데이터와 비즈니스 로직 간의 상호작용을 하는 부분
3) view -> 사용자 인터페이스를 view라고 함. 사용자에게 보여지는 부분
- MVC1
기본 JSP 페이지에 비지니스 로직을 처리하기 위한 코드와 출력 관리 코드가 뒤섞여있는 구조입니다.
JSP 페이지 안에서 모든 정보를 표현, 저장, 처리하므로 재사용이 힘들고 가독성이 매우 떨어집니다.
단순한 페이지 작성에서는 적합할 수 있습니다. -> 복잡해질수록 유지보수 문제가 발생합니다.
( <%%> 코드블럭 엄청 길고 HTML 문서 중간 중간 끼어있어 보기 불편 )
- MVC2
MVC1과 달리 웹 브라우저의 요청을 하나의 서블릿이 받게 됩니다. 해당 서블릿은 웹 브라우저의 요청을 알맞게 처리한 후에 그 결과를 JSP 페이지로 포워딩해줍니다. 클라이언트의 요청과 응답, 비즈니스 로직 처리하는 부분을 모듈화 시켰습니다.
처리작업의 분리로 인해 유지보수와 확장이 용이합니다. 구조 설계를 위한 시간이 많이 소요되는 단점이 있습니다.
spring framework와 mvc 패턴에 대해 간단히 정리해보았습니다.
'Spring' 카테고리의 다른 글
spring responsebody, get/post mapping (0) | 2021.08.04 |
---|---|
spring controller, requestmapping, requestparam (0) | 2021.08.03 |
spring component, autowired, Inject, Controller, Repository (0) | 2021.08.02 |
spring bean, ioc container (0) | 2021.08.01 |
spring 공부시작 (0) | 2021.08.01 |