일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 미국영어연음
- 암홀트롭
- 헤이큐
- 우레탄지퍼
- 비리짐
- WHATTIMEOFTHEDAY
- 엑셀드래그단축키
- 봉제용어
- 엑셀자동서식
- 지연환가료
- TACKING
- 웹API
- 고급영어단어
- 필터링후복사붙여넣기
- AATCC
- 요척합의
- 클린코드
- 엑셀필터복사붙여넣기
- 와끼
- Armhole Drop
- 자켓실측
- 40HQ컨테이너
- MERN스택
- 나일론지퍼
- 핸드캐리쿠리어차이점
- 슈퍼코딩
- 40HQ컨테이너40GP컨테이너차이
- 미니마카
- 영어시간읽기
- 비슬론지퍼
- Today
- Total
CASSIE'S BLOG
90강 스프링 부트와 서블릿컨테이너 (부제: 서버 흐름 파악하기) 실습 따로 없음 본문
90강 스프링 부트와 서블릿컨테이너 (부제: 서버 흐름 파악하기) 실습 따로 없음
ITSCASSIE1107 2024. 1. 1. 14:55
백엔드 서버를 배포한다는 것은 웹 애플리케이션 서버를 배포한다라는 말만 똑같다고 함.
크롬에서 뭘 검색어를 하면 그게 구글 WAS로 가는거다.
WAS는 세부적으로 2개로 나뉘어져있음
웹과 서블릿컨테이너로
백엔드를 개발한다는 것은 WAS를 개발하는거다.
서블릿컨테이너 위에 스프링이 돌아감.
Spring만 있는건 아니다.. sprut, 뭐 다른것들 다 프레임워크 받을 준비가 되어있다.
서블릿은 크게 프로토콜관련 Server 관련으로 나뉨.
스프링으로 구현했다 저의 요청은 dispatcher servlet으로 가는거다.
Dispatcher Servlet 이 문 같은거라서 이제 스프링 컨테이너 영역에 들어온거임.
Dispatcher Servlet이 컨트롤러를 인식하고 있다.
RestController: 클라이언트 사이드 렌더링할 때 많이 사용하는 컨트롤러
Controller: 동적인 페이지를 만드는 그냥 컨트롤러
여러번 듣기 매우 좋음
16분부터~
GetMapping: http get 메소드를해놓으면 Handler Mapping이 캐치를 해준다.
model은 뭘 적어주지않아도 그냥 들고가고 view는 이름 적어야 return 들어간다.
ViewResolver가 samplePage라는 파일을 찾는다.
스프링을 개발하는 것은 서블릿 컨테이너의 한 부분을 개발하는것이다.
흐름들은 우리가 컨트롤하는 것이 아니라 서블릿 컨테이너가 흐름을 관장한다.
우리는 작은 기능이나 기존에 있는 것을 커스터마이징하는그 정도다.
🎈실시간/동적 이라는게 굉장히 중요한 포인트다.
WAS는 정적 파일 서비스뿐만 아니라 동적인 서비스를 위한 서블릿 컨테이너를 포함하고 있습니다. 이렇게 정적 파일 서비스와 서블릿 컨테이너를 함께 가지고 있는 WAS는 동적인 웹 애플리케이션을 개발하고 실행하는 데 사용됩니다.
여기에서 간단히 설명하면:
- 정적 파일 서비스 (Web 서버):
- WAS는 클라이언트에게 정적인 웹 페이지나 리소스(이미지, CSS, JavaScript 파일 등)를 제공하는 역할을 합니다. 이는 WAS 내부에 내장된 웹 서버를 통해 이루어집니다.
- 서블릿 컨테이너 (동적인 코드 처리):
- 동적인 웹 애플리케이션은 서블릿 컨테이너를 통해 처리됩니다. 서블릿은 Java로 작성된 서버 측 코드로, 클라이언트의 요청에 동적으로 응답을 생성합니다. 이 서블릿들은 WAS 내에서 실행되며, 클라이언트의 요청에 따라 데이터베이스와 상호 작용하거나 비즈니스 로직을 수행하는 등의 작업을 수행합니다.
- WAS의 역할:
- WAS는 클라이언트로부터의 HTTP 요청을 받아 정적 파일이나 동적인 서블릿 등을 통해 적절한 응답을 생성하여 클라이언트에게 전달합니다. 이 과정에서 서블릿 컨테이너는 서블릿을 실행하고, 필요에 따라 JDBC를 통해 데이터베이스와 통신하거나 다양한 업무를 수행합니다.
결국 WAS는 웹 서버와 서블릿 컨테이너를 통합한 형태로, 동적이고 정적인 콘텐츠를 효율적으로 제공하고 실행하는 역할을 수행합니다. 이를 통해 웹 애플리케이션의 전체적인 개발과 실행 환경을 제공하고 관리합니다.
🎈 @Controller vs RestController
- @Controller:
- 뷰(View)를 반환합니다.
- 전통적인 서버 사이드 렌더링을 지원합니다.
- HTML 파일과 같은 뷰 템플릿을 사용하여 동적인 웹 페이지를 생성합니다.
- @RestController:
- 뷰를 반환하지 않습니다.
- 데이터를 반환합니다.
- JSON 또는 XML 형식의 데이터를 주로 반환하여 RESTful API를 구현합니다.
간단하게 말하면, @Controller는 웹 페이지를 생성하는 데 사용되고, @RestController는 데이터를 반환하는 데 사용됩니다.
🎈
REST API를 사용하는 경우, 주로 프론트엔드와 백엔드를 분리하여 개발하는 경향이 있습니다. 이것을 "클라이언트-서버 아키텍처" 또는 "프론트엔드와 백엔드의 분리"라고 합니다.
프론트엔드와 백엔드가 독립적으로 개발되면, 다양한 프론트엔드 프레임워크 및 라이브러리를 사용하여 보다 동적이고 사용자 친화적인 UI를 만들 수 있습니다.
백엔드는 데이터를 제공하고 비즈니스 로직을 처리하며, 프론트엔드는 사용자 인터페이스를 담당합니다. 이러한 분리는 애플리케이션의 확장성, 유지보수성 및 개발 효율성을 향상시킬 수 있습니다.
'PROGRAMMING > 슈퍼코딩 강의 정리' 카테고리의 다른 글
93강 web layered 살펴보기 + postman 실습 very impo (0) | 2024.01.02 |
---|---|
92강 스프링 부트 코드 구조 둘러보기 (93강 하기위한 프로젝트 셋팅 부분있음) (0) | 2024.01.02 |
89강 스프링 부트 무작정 따라하기 + 실습 많음 (깃허브에 없음) (0) | 2024.01.01 |
88강 스프링 부트 개요 (0) | 2024.01.01 |
[슈퍼코딩] 74강 SQL 기본 문법 익히기 v1 (0) | 2023.12.28 |