본문 바로가기

Spring Framework

1. Spring Framework란?

⭐️ 프레임워크와 라이브러리 

이 둘은 모두 소프트웨어 개발에 사용되는 도구이다. 그러나, 목적과 사용방법에는 차이가 있다. 

 

프레임워크(Framework)

소프트웨어 개발을 위한 구조와 규칙, 템플릿 등을 제공하는 일종의 추상적인 설계 도구로, 개발에 필요한 여러 기능을 미리 구현해 놓고, 이를 사용하여 개발자가 손십게 개발을 할 수 있도록 도와준다. 

대표적인 프레임워크: Java-Spring, Python-Django ...

 

라이브러리(Library)

특정 기능을 수행하기 위한 코드들의 집합(함수, 클래스, 인터페이스 등)으로, 라이브러리에서 제공하는 함수를 사용하여 특정 기능을 구현할 수 있다. 라이브러리를 호출하여 라이브러리가 제공하는 기능을 대개 개발자 자신이 작성한 코드에 추가하여 사용한다.대표적인 라이브러리: JavaScript-React, Python-Numpy ...

 

즉, 프레임워크는 개발자가 애플리케이션을 개발하기 위한 구조와 규칙을 제공하는 도구, 개발자가 특정 기능을 수행하기 위해 코드를 작성하는 것이 아니라 이미 구성된 템플릿이나 코드를 수정하여 개발을 할 수 있다. 

라이브러리는 개발자가 자신이 작성하는 코드에서 사용하기 위한 도구로, 구체적인 구현방법을 제시하지 않으며 개발자가 필요한 기능을 구현하고 조합한다. 

 

또한, 프레임워크는 애플리케이션의 구조와 제어흐름에 대한 제어권을 가지고 있어서 개발자가 프레임워크의 규칙에 따라 개발을 수행해야 하지만, 라이브러리는 단순히 함수나 클래스를 제공하는 것으로 개발자가 필요한 기능을 호출하여 사용하기만 하면 되는 것이다. 

 

 


 

🍃 스프링 프레임워크

Java 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로, 동적인 웹 사이트 개발을 위한 여러가지 서비스를 제공하고 있으며 대한민국 공공기관의 웹서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크(Spring MVC Project 기반 프레임워크)의 기반 기술로서 쓰이고 있다. 

* Spring MVC

더보기

Spring MVC 

- Spring Framework의 하나로, 웹 애플리케이션 개발을 위한 프레임워크.

- Model-View-Controller 아키텍처 패턴을 따르며, 스프링에서 제공하는 기능들과 함께 사용하여 빠르고 안정적인 구축 

[주요기능]

Servlet API와 호환하여 Servlet 기반의 웹 애플리케이션 개발 시 사용. 

- DispathcerServlet: HTTP 요청, 응답 처리 및 애플리케이션의 다른 구성요소와의 상호작용 조율

- HandlerMapping: HTTP 요청에 대한 처리 매핑

- Controller: 실제 요청을 처리를 담당하는 컴포넌트 

- Model and View: 컨트롤러가 반환하는 모델 데이터와 뷰의 이름을 캡슐화 

   * 캡슐화: 외부에서 직접 접근하지 못하도록 접근제어를 설정하여 객체 내부 구조 보호(접근제어자 사용)

- ViewResolver: 뷰 이름을 실제 뷰로 매핑 

 

특징 

1. IOC(Invension of Control) : 제어반전 

컨트롤의 제어권이 개발자가 아닌 프레임워크에게 있음. 

: 기존에는 개발자가 객체를 생성하고 다른 객체에 의존성을 주입하는 등 객체 간의 관계를 직접 관리했다면, 프레임워크는 객체 생성과 의존성 관리를 대신 담당하여, 개발자는 필요한 객체를 가져와 사용하면 된다. 이런 방식으로 유연성하고 확장 가능한 코드를 작성할 수 있다. 

 

2. DI(Dependency Injection) : 의존성 주입 

객체를 생성하고 의존성을 주입하는 것을 컨테이너에게 맡기는 것. 

: 객체간의 결합도를 낮추고 유현하며 확장 가능한 코드를 작성할 수 있으며 대규모 프로젝트에서 유용한다. 

 

3. POJO(Plain Old Java Object)기반 프레임워크 

특정 기술이나 라이브러리에 의존하지 않고, 순수한 Java코드로 구현된 객체. 

: 특정 클래스에 종속되지 않으므로 자바의 객체지향적 설계가 쉬워지고 코드 길이 감소, 유지보수성 증가 등 더 큰 자유도와 유연성을 가짐. 

 

4. Spring AOP(Aspect Oriented Programming) : 관점 지향 프로그래밍 

트랜잭션, 로깅, 보안 등 여러 모듈이나 계층에서 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리. 

 

 

Spring MVC 요청 처리 과정

Spring MVC 구성요소 

DispatcherServlet 클라이언트의 요청을 전달받고, 요청에 맞는 컨트롤러가 리턴한 결과 값을 View에 전달하여 알맞은 응답을 생성 
HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정
Controller 클라이언트의 요청을 처리한 뒤, 결과를 DispatcherServlet에 리턴
ModelAndView 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담음
ViewResolver 컨트롤러의 처리 결과를 생성할 View 결정
View 컨트롤러의 처리 결과 화면을 생성, JSP나 Velocity 템플릿 파일 등을 View로 사용

 

'Spring Framework' 카테고리의 다른 글

5. 1행만 조회하기  (0) 2023.04.25
4. Mybatis  (0) 2023.04.25
3. 파라미터 얻어오기, 화면 전환하기  (0) 2023.04.24
2. DispatcherServlet, logger  (0) 2023.04.22