일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring 게시판 수정삭제
- #자바 #로또
- spring 게시판 만들기
- Spring 게시판 상세 조회
- 자바 #관리프로그램 기초
- spring framework
- 자바기본
- Spring 게시판 작성
- 데이터베이스
- Today
- Total
JeongseokDEV-SimpleU
[Spring]Spring Framework의 개념 본문
Framework
- 어떠한 기능구현을 하기위한 추상적으로 정의된 틀을 말한다.
- 사용자가 필요로 하는 기능들을 모두 추상화 시켜 놓았음.
Spring Container
- 스프링에서 객체를 생성하고 조립하는 컨테이너로 컨테이너를 통해 생성된 객체를 Bean이라고 한다.
Spring Framework
- 자바 플랫폼을 위하 오픈소스 애플리케이션 프레임워크로서 엔터프라이즈급 애플리케이션을 개발하기 위한
모든 기능 을 종합적으로 제공하는 경량화된 솔루션
- 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로 부터 행해지는 매우 큰 규모의 환경을
엔터프라이즈 환경이라 말합니다.
- Spring Framework는 경량 컨테이너로 자바 객체를 담고 직접 관리합니다. 객체의 생성 및 소멸 그리고
라이프 사이클을 관리하면 언제든 Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다.
이는 Spring이 IoC기반의 Framework임을 의미.
DI (Dependency Injection) -의존성 주입
의존성 주입이란 객체가 서로 의존하는 관계가 되게 의존성을 주입. 객체지향 프로그램에서 의존성이란 하나의 객체가 어떠한 다른 객체를 사용하고 있음을 의미 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결
주입을 통해 어떠한 기능을 사용하는 것을 말함.
Spring Framework - AOP
- AOP (Aspect Oriented Programming) - 관점 지향 프로그래밍.
대부분 소프트웨어 개발 프로세스에서 사용하는 방법은 OOP (Object Oriented Programming)입니다.
OOP는 객체지향 원칙에 따라 관심사가 같은 데이터를 한곳에 모아 분리하고 낮은 결합도를 갖게하여 독립적이고 유연한 모듈로 캡슐화를 하는것을 말합니다. 하지만 이러한 과정 중 중복된 코드들이 많아지고, 가독성, 확장성, 유지보수성을 떨어 뜨립니다. 이러한 문제를 보완하기 위해 나온 것이 AOP입니다.
AOP에서는 핵심기능과 공통기능을 분리시켜 핵심 로직에 영향을 끼치지 않게 공통기능을 끼워 넣는 개발 형태 이며 이렇게 개발함에 따라 무분별하게 중복되는 코드를 한 곳에 모아 중복 되는 코드를 제거 할 수 있어지고 공통 기능을 한곳에 보관함으로써 공통 기능 하나의 수정으로 모든 핵심 기능들의 공통 기능을 수정 할 수 있어 효율적인 유지보수가 가능하며 재활용성이 극대화 됩니다.
물론 AOP로 만들 수 있는 기능은 OOP로 구현 할 수 있는 기능이지만 Spring에서는 AOP를 편리하게 사용 할 수 있도록 이를 지원하고 있습니다.
--- Spring Framework MVC ---
MVC - ( Model View Controller ) 구조로 사용자 인터페이스와 비즈니스 로직을 분리하여 개발 하는 것을 말합니다.
MVC에서는 Model1 과 Model2로 나누어져 있으며 일반적인 MVC는 Model2를 지칭합니다.
Model
- 데이터 처리를 담당하는 부분으로 Service영역과 DAO영역으로 나누어지게 되고 여기서 중요한 것은 Service 부분은 불피요하게 HTTP통신을 하지 않아야 하고 Request나 Response와 같은 객체를 매개 변수로 받아선 안된다.
또한 Model 부분의 Service는 view에 종속적인 코득 없어야 하고 View 부분이 변경되더라도 Service부분은 그대로 재사용 할 수 있어야 한다. Model에서는 View와 Controller 어떠한 정보도 가지고 있어서는 안된다.
View
- View는 사용자 Interface를 담당하며 사용자에게 보여지는 부분입니다. View는 Controller를 통해 모델에 데이터에 대한 시각화를 담당하며 View는 자신이 요청을 보낼 Controller의 정보만 알고 있어야 하는 것이 핵심
Model이 가지고 있는 정보를 저장해서는 안되며 Model, Controller에 구성 요소를 알아서는 안된다.
Controller
- Controller에서는 View에 받은 요청을 가공하여 Model(Service 영역)에 이를 전달한다. 또한 Model로 부터 받은 결과를 View로 넘겨주는 역할을 합니다. Controller에서는 모든 요청에러와 모델 에러를 처리하며 View와 Controller에 정보를 알고 있어야한다. Model과 View의 정보에대해 알고 있어야 함.
Model, View, Controller를 나누는 이유는 소스를 분리함으써 각 소스의 목적이 명확해지고 유지보수하는데 있어서 용이하기 때문입니다. Model의 Service영역은 자신을 어떠한 Controller가 호출하든 상관없이 정해진 매개변수만 받는다면 자신의 비즈니스 로직을 처리 할 수 있어야 함.
View의 정보가 달라 지더라도 Controller에서 Service에 넘겨줄 매개변수 데이터 가공만 처리하면 되기 때문에 유지보수 비용을 절감 할 수 있는 효과가 있음. 또한 Service영역의 재사용이 용이하기 때문에 확장성 부분에서도 큰 효과를 볼 수 있눈 장점이 있음.
'자바 > 스프링' 카테고리의 다른 글
[Spring]게시판 수정/삭제 boardUpdate (0) | 2020.03.14 |
---|---|
[Spring]게시판 작성 boardWriter (0) | 2020.03.14 |
[Spring] 게시판 답변 BoardReply (0) | 2020.03.13 |
[Spring]게시판 상세조회 boardDetail (0) | 2020.03.13 |
[Spring] 게시판 리스트 boardList (0) | 2020.03.13 |