1. 프레임워크 vs 라이브러리
![](https://blog.kakaocdn.net/dn/bu9EZs/btsIQZ5lM5g/s7WOAeazkfFaDpbaakSYkK/img.png)
- 프레임워크 : 주도권이 프레임워크에 있음
- 라이브러리 : 주도권이 개발자에게 있음
![](https://blog.kakaocdn.net/dn/bSxGvD/btsIPY7cxpx/SsfApxMgjgHDOqTqovHRJK/img.png)
- Java와 스프링부트가 대표적인 이유
![](https://blog.kakaocdn.net/dn/bXYGnj/btsIQ0wot1x/kjHZdnonnDCRGJpIl4dukk/img.png)
![](https://blog.kakaocdn.net/dn/K5IFn/btsIRW714Uq/ujE0C3BFZrhaX6DYhsO8o1/img.png)
- Spring과 Spring Boot
![](https://blog.kakaocdn.net/dn/bfEuD4/btsIP6xpoo8/ihtTSlgrL3Nra6VLD0qkG1/img.png)
1. Web
- 웹이란? 인터넷을 통해 사람들과 정보를 공유하는 공간
- 정보를 렌더링하는 두가지 대표 방식
- SSR(Server Side Rendering) : 서버에서 주도적으로 렌더링을 해서 클라이언트에 전달해주는 방식
-- 서버-> 클라이언트로 HTML을 세팅해서 넘겨줌
- CSR(Client Side Rendering) : 서버로부터 받아온 정보를 클라이언트에서 렌더링 하는 방식
-- 서버에서 데이터를 클라이언트로 보낸 뒤 -> 클라이언트에서 받아온 HTML과 JS등을 이용해 조합해서 페이지 표시
2. WAS(Web Application Server) : WEB + 서블릿 컨테이너
- 클라이언트의 요청(특히 HTTP)을 받아 의미 있는 웹 어플리케이션을 실행하는 서버
![](https://blog.kakaocdn.net/dn/cg9zrq/btsIRYYZnh7/XHlp2kH7RVcjOlj3sLOzF0/img.png)
- WAS web 서버의 역할
![](https://blog.kakaocdn.net/dn/bRJzvI/btsISWTKp6m/okjTXzQaZtoWI3LtxLyS30/img.png)
- 서블릿 컨테이너
![](https://blog.kakaocdn.net/dn/bevnZZ/btsIRMEu4UH/FjHSFpcWiPiGJ7cAK8MEg1/img.png)
- 현실 웹 서비스 시스템 구조
![](https://blog.kakaocdn.net/dn/ddlcWb/btsIQICBZRs/RAaH0U8JA1OQDfWUsOlB3k/img.png)
- 서블릿 컨테이너 흐름
- 서블릿 : 클라이언트 요청을 처리하고 서버에서 동적인 웹페이지를 생성하는데 사용되는 주체
![](https://blog.kakaocdn.net/dn/beUGYw/btsISeAAWvL/0mB1nkGAMdKIpdMB4fmkDK/img.png)
- 스프링 컨테이너 : 스프링 프레임워크 객체와 생성 등을 총 관리하는 컴포넌트
![](https://blog.kakaocdn.net/dn/dwZRzP/btsIQmGGFu3/PeDwzVUQaXxtDPiSiMS88K/img.png)
- 세부 동작
![](https://blog.kakaocdn.net/dn/bNXXq9/btsISf0zOfB/CZ4mMjSSKyUhSjXwTdOpV1/img.png)
- 전체 동작 흐름 정리
![](https://blog.kakaocdn.net/dn/BoWNz/btsISpIRLjD/V825mInI7BMYaf9hwkRwf1/img.png)
- 디스패치 서블릿 동작 흐름
![](https://blog.kakaocdn.net/dn/bwkek2/btsITadlL9G/0kBDO0uzkqQtryR5gF9mB0/img.png)
- SSR 컨트롤러 동작 흐름
![](https://blog.kakaocdn.net/dn/PV3g7/btsIQgNinaq/rKkgtsYAzTxrKcmfN4kqc1/img.png)
![](https://blog.kakaocdn.net/dn/cZFYwe/btsIQnMqDJI/gDNpZQTETKXACmQfEtC9ak/img.png)
![](https://blog.kakaocdn.net/dn/cD5CCR/btsIRW1dTBx/t8NZcO9ByaU6DCOlSrymak/img.png)
- CSR 컨트롤러 동작 흐름
![](https://blog.kakaocdn.net/dn/Zxk2C/btsIQEAm7C0/GKiSlqa0zeLI4DuZOgErq1/img.png)
![](https://blog.kakaocdn.net/dn/cRv2vW/btsISeURaP0/Jnkad51CVV0iJNsiu59eyK/img.png)
- 스프링 MVC 패턴, 프론트 컨트롤러 패턴
![](https://blog.kakaocdn.net/dn/bV9vc9/btsIRw9xmIP/tRqGhOWb72MlDCfv6rRgK0/img.png)
- 전체 WAS의 동작 흐름을 알아야하는 이유 : 스프링 구현시 서블릿 컨테이너의 일부분을 구현하게 된다.
![](https://blog.kakaocdn.net/dn/wQcYG/btsIQLGbnqY/X9WXXkKqdzkKuM10gbCvg0/img.png)
1. 스프링의 삼각형
![](https://blog.kakaocdn.net/dn/vnhDi/btsIROPPLsY/ZEoXw1DUSzjqov923IKOkk/img.png)
- 스프링 3대 요소 구현 기술
![](https://blog.kakaocdn.net/dn/wYFex/btsISNCF1Ip/R1ZbTeI4op4RnECgL6yQKK/img.png)
![](https://blog.kakaocdn.net/dn/c2BkAn/btsIQnsbiUx/lsl6ZER4LhfaMLjpqFBNbK/img.png)
![](https://blog.kakaocdn.net/dn/lMfzp/btsISGp4BxD/B8gtKvbVtHPLMKd3nVpXG0/img.png)
- 제어의 역전
![](https://blog.kakaocdn.net/dn/bRGNpK/btsISVN4EeG/lLeewOSnEXGxL7r25xH81k/img.png)
- 의존성 주입
![](https://blog.kakaocdn.net/dn/cbNM7T/btsIRYScFwH/KfNJh54ELQXEEh7S2mNp60/img.png)
![](https://blog.kakaocdn.net/dn/noykQ/btsIS9eqmI4/O8S1mSLoypX7vgrHFfkswK/img.png)
#슈퍼코딩, #1:1관리형부트캠프, #백엔드, #backend, #백엔드공부, #개발공부, #백엔드개발자 #취준일기, #취준기록, #취뽀, #빡공, #HTML/CSS, #javascript, #react , #java, #spring