1. Servlet : Java에서 Http 통신에 필요한 내용들을 편하게 받아 처리할 수 있게 하는 웹 애플리케이션 프로그래밍 기술
▶ Http : 웹 개발에서 서버 간 데이터를 주고 받기 위한 프로토콜
- Http는 요청(Request)과 응답(Response) 구조로 통신하는 것이 규칙이다.
- POST, GET, PUT 등의 메서드로 동작 방식을 설명하는 규칙이 있다.
▶ 프로토콜(Protocol) : 컴퓨터와 같은 기계들이 서로 데이터를 주고 받을 때 사용하는 약속/규칙
▶ Servlet에서는 Http 규칙을 지키기 위해 다양한 객체를 지원한다. (HttpServletRequest/HttpServletResponse)
▶ DispatchServlet : Spring MVC에서 개발해서 사용. Java에서 Servlet을 만들어놓은 것을 Spring에서 편하게 쓰려고 발전시킨 것 -> Servlet을 가지고 있지만 숨겨져 있다!
2. 쓰레드(Thread) : 프로그램에서 실행되는 작업의 최소 단위
▶ Postman을 통해 API를 Spring에 요청 -> 쓰레드가 할당되며 클라이언트 요청 처리
▶ Spring은 쓰레드를 어러 개 만들어 한 번에 여러 개의 요청을 처리한다(멀티쓰레드)
- 쓰레드 풀 :우리가 사용 할 쓰레드를 여러 개 생성해 미리 저장해둔 개념
→ 미리 생성하는 이유 : 쓰레드를 생성할 때는 시스템 자원을 할당해야 하고, 제거할 때는 자원을 해제해야 해서 많은 쓰레드를 생성하고 제거하는 경우 성능 저하가 발생할 수 있기 때문이다. (만들었다가 파괴할 일이 없도록)
→ 동작 원리와 재활용 : 쓰레드 풀은 일정 수의 쓰레드를 미리 생성해 재사용한다. 새로운 작업이 들어오면 다시 풀로 반환된다. -> 대여, 반환 느낌
→ 미리 많이 만들면 되는 거 아닌가? : 리소스는 한정되어있기 때문에 안됨!
▶ 단계 정리
1. 클라이언트 -> Postman으로 요청을 보낸다.
2. 서블릿 컨테이너에 요청이 들어온다.
3. 쓰레드 풀에서 쓰레드가 할당된다.
4. 할당된 쓰레드는 필터 체인에 등록된 필터를 순서대로 통과한다.
5. 필터를 통과한 쓰레드는 DispatchServlet을 호출해 어떤 Servlet을 사용할 지 결정
6. Spring 3 layered architecture을 통과한다.
< 새배개 >
▶ Spring과 Spring Boot : 둘 다 스프링 프레임워크를 기반으로 한 자바 웹 개발 프레임워크이다.
▷ Spring : 스프링 프레임워크의 핵심 모듈을 모아 만든 프레임워크
- 개발자가 직접 설정 파일을 작성해 스프링 컨테이너를 구성
- 필요한 빈 객체 직접 등록
- 빈 객체 간의 의존성을 설정해줘야 함
- 특정한 구성을 위해 추가적인 라이브러리와 설정이 필요
▷ Spring Boot : 스프링 프레임워크를 보다 쉽게 사용할 수 있도록 만든 프레임워크
- 설정 파일을 작성할 필요 없이 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리
- 실행 가능한 JAR 파일을 생성해줌
- Spring에서 제공하는 Spring MVC, Data JPA, Security와 같은 기능을 자동으로 설정
- Actuator라는 모니터링과 관리를 위한 기능 제공 -> 상태 모니터링, 필요한 조치 제공
정리 : Spring 은 세밀하게 제어할 때, Spring Boot는 빠르고 간단하게 스프링 애플리케이션을 개발할 때!
'내일배움캠프 > TIL' 카테고리의 다른 글
[Spring_4기 본캠프] Spring 심화 - 아웃소싱 프로젝트 | Day 57 (0) | 2025.01.13 |
---|---|
[Spring_4기 본캠프] Spring 심화 - Java Exception | Day 55 (1) | 2025.01.03 |
[Spring_4기 본캠프] Spring 심화 - 일정관리 앱 개선하기, 리팩토링 | Day 53 (0) | 2024.12.31 |
[Spring_4기 본캠프] Spring 심화 - HttpMessageConverter | Day 52 (0) | 2024.12.30 |
[Spring_4기 본캠프] 프로젝트 주간 - 프로젝트 발표와 피드백 정리 | Day 51 (0) | 2024.12.28 |