0614 - 0620
# 0614 - 0620
# 0615 - ๋ฆฌ๋ ์ค ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
# ๋ฆฌ๋ ์ค ํ์ผ ์์คํ ๊ตฌ์กฐ
๋ฆฌ๋ ์ค ์์คํ ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ ์ญ ํธ๋ฆฌ(tree) ๊ตฌ์กฐ
๋ฆฌ๋ ์ค ๋ฐฐํฌํ๋ค์ '๋ฆฌ๋ ์ค ํ์ผ ์์คํ ๊ตฌ์กฐ'์ธ FSSTND๋ผ๋ ํ์ค์ ์ค์
# /
์ต์์ ๋๋ ํ ๋ฆฌ ๋ฃจํธ
# /bin
๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด๊ฐ ์ ์ฅ๋ ๋๋ ํ ๋ฆฌ, ๋ช ๋ น์ด ๋๋ ํ ๋ฆฌ
# /boot
๋ฆฌ๋ ์ค ๋ถํธ๋ก๋๊ฐ ์กด์ฌํ๋ ๋๋ ํ ๋ฆฌ
# /dev
์์คํ ๋๋ฐ์ด์ค ํ์ผ์ ์ ์ฅํ๊ณ ์๋ ๋๋ ํ ๋ฆฌ
# etc
์์คํ ์ ๊ฑฐ์ ๋ชจ๋ ์ค์ ํ์ผ์ด ์กด์ฌํ๋ ๋๋ ํ ๋ฆฌ
# /home
์ฌ์ฉ์์ ํ๋๋ ํ ๋ฆฌ
# lib
์ปค๋๋ชจ๋ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌํ์ผ ์ฆ, ์ปค๋์ด ํ์๋กํ๋ ์ปค๋๋ชจ๋ํ์ผ๋ค๊ณผ ํ๋ก๊ทธ๋จ์ ํ์ํ ๊ฐ์ข ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ๋ค์ด ์กด์ฌํ๋ ๋๋ ํ ๋ฆฌ
# /tmp
๊ณตํต๋๋ ํ ๋ฆฌ
# /usr
์์คํ ์ด ์๋ ์ผ๋ฐ์ฌ์ฉ์๋ค์ด ์ฃผ๋ก ์ฌ์ฉํ๋ ๋๋ ํ ๋ฆฌ
# /var
์์คํ ์ด์ฉ์ค์ ์์ฑ๋์๋ค๊ฐ ์ญ์ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๊ธฐ ์ํ ๋๋ ํ ๋ฆฌ
# 0616 - Spring Webflux๋?
Spring WebFlux๋ Spring 5์์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๋ชจ๋. WebFlux๋ ํด๋ผ์ด์ธํธ, ์๋ฒ์์ reactive ์คํ์ผ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋์์ฃผ๋ ๋ชจ๋. WebFlux๋ reactive-stack web framework์ด๋ฉฐ non-blocking์ reactive stream์ ์ง์.
- reactive?
: I/O ์ด๋ฒคํธ์ ๋ฐ์ํ๋ ๋คํธ์ํฌ ์ปดํฌ๋ํธ, ๋ง์ฐ์ค ์ด๋ฒคํธ์ ๋ฐ์ํ๋ UI ์ปจํธ๋กค๋ฌ ๋ฑ๊ณผ ๊ฐ์ ๋ณํ์ ๋ํ ๋ฐ์์ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ. non-blocking์ blocking๊ณผ ๋ค๋ฅด๊ฒ ์์ ์ด ์๋ฃ๋๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ๊ฐ๋ฅํ ์ํ๊ฐ ๋๋ฉด ์๋ฆผ์ ๋ฐ์ํ๋ ๋ฐฉ์์ด ์์ผ๋ฏ๋ก reactiveํ๋ค๊ณ ๋ง ํ ์ ์๋ค. - reactive Streams๋ back pressure๊ฐ ์๋ ๋น๋๊ธฐ ์ปดํฌ๋ํธ๊ฐ์ ์ํธ ์์ฉ์ ์ ์ํ๋ ์๊ท๋ชจ ์ฌ์
- Subscriber๊ฐ Publisher์ ๋ฐ์ดํฐ ์์ฑ ์๋(๋น ๋ฅด๊ฒ/๋๋ฆฌ๊ฒ)๋ฅผ ์ ์ด ํ ์ ์๋๋ก ํ๋๊ฒ
=> Spring์ด ๊ฐ์ง์ง ๋ชปํ๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๋ณด์ํ๊ธฐ ์ํ Spring5์ webflux ๋ชจ๋์ ์ฌ์ฉ
# ์ฉ๋
- ๋น๋๊ธฐ-๋ ผ๋ธ๋กํน ๋ฆฌ์ํฐ๋ธ ๊ฐ๋ฐ์ ์ฌ์ฉ
- ํจ์จ์ ์ผ๋ก ๋์ํ๋ ๊ณ ์ฑ๋ฅ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
- ์๋น์ค ๊ฐ ํธ์ถ์ด ๋ง์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์ ํฉ
# ๋๊ฐ์ง ๊ฐ๋ฐ๋ฐฉ์ ์ง์
- ๊ธฐ์กด์ MVC ๋ฐฉ์
- ์๋ก์ด ํจ์ํ ๋ชจ๋ธ (RouterFuction, HandlerFuction)
# ์๋ก์ด ์์ฒญ - ์๋ต ๋ชจ๋ธ
- ์๋ธ๋ฆฟ ์คํ๊ณผ API์์ ํํผ (์๋ธ๋ฆฟ API๋ ๋ฆฌ์ํฐ๋ธ ํจ์ํ ์คํ์ผ์ ์ ํฉํ์ง ์์ - HttpServletRequest, HttpServletResponse)
- ServerRequest, ServerResponse
# ๋์ํ๋ฆ
- MVC : request - Dispatcher Servlet - Handler Mapper - Controller - B/L - Controller - ViewResolver ...
- WebFlux : request - HttpHandler - WebHandler - Handler Mapper / Handler Adapter - Controller - B/L -Controller - ViewResolver ...
# Mono / Flux
Reactive Streams ์ธํฐํ์ด์ค ์ค์์ Publisher๋ฅผ ๊ตฌํ ํด ๋์ ๋ฐํ์.
- Mono : 0 ~ 1๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ
- Flux : 0 ~ N ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ
# 0620 - ํด๋ผ์ฐ๋ ์๋น์ค (IaaS, PaaS, SaaS)
# IaaS
- ์๋น์ค๋ก์์ ์ธํ๋ผ์คํธ๋ญ์ฒ(Infrastructure as a Service)๋ ์๋ฒ, ์คํ ๋ฆฌ์ง, ๋คํธ์ํฌ๋ฅผ ํ์์ ๋ฐ๋ผ ์ธํ๋ผ ์์์ ์ฌ์ฉํ ์ ์๊ฒ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํํ => ๊ฐ๋ตํ๊ฒ ์ปดํจํฐ๋ง ํ ๋น ๋ฐ๋๊ฒ
- ๋ํ ์๋น์ค
- AWS EC2, Google Cloud Platform, Azure Virtual Machines, Naver Cloud Platform
# PaaS
- PaaS(Platform as a Service)๋ผ๊ณ ๋ํ๋ ํด๋ผ์ฐ๋ ํ๋ซํผ ์๋น์ค๋ ์ฃผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๋ ๋์ ํน์ ์ํํธ์จ์ด์ ํด๋ผ์ฐ๋ ๊ตฌ์ฑ์์๋ฅผ ์ ๊ณต => ์๋ฒ, ํ๊ฒฝ๊ตฌ์ฑ ์ ๊ณต ๊ฐ๋ฐ์๋ ์์ค๋ง ์ฌ๋ฆฌ๋ฉด ๋๋ค.
- ๋ํ ์๋น์ค
- AWS Elastic Beanstalk, Windows Azure, Heroku
# SaaS
- ์๋น์ค๋ก์์ ์ํํธ์จ์ด(Software as a Service)๋ ์ํํธ์จ์ด ๋ฐ ๊ด๋ จ ๋ฐ์ดํฐ๋ ์ค์์ ํธ์คํ ๋๊ณ ์ฌ์ฉ์๋ ์น ๋ธ๋ผ์ฐ์ ๋ฑ์ ํด๋ผ์ด์ธํธ๋ฅผ ํตํด ์ ์ํ๋ ํํ์ ์ํํธ์จ์ด ์ ๋ฌ ๋ชจ๋ธ์ด๋ค. ์ฃผ๋ฌธํ ์ํํธ์จ์ด(on-demand software, ์จ๋๋งจ๋)๋ผ๊ณ ๋ ํ๋ค.