Study/Java91 [TIL] Project Reactor ๐๐ป Project Reactor - Spring Reactive Web Application ๊ฐ๋ฐ์ ์์ด ํต์ฌ ์ญํ ์ ๋ด๋น - Spring MVC ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๊ฑฐ์นจ → ์ฐจ์ด์ ์ ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ ์ด๋๊ฐ์์ Reactor๊ฐ ํต์ฌ์ ์ธ ์ญํ ์ ํจ ๐ Reactor - ๋ฆฌ์กํฐ๋ธ ์คํธ๋ฆผ์ฆ ํ์ค ์ฌ์์ ๊ตฌํํ ๊ตฌํ์ฒด ์ค ํ๋ - Spring 5 ๋ฒ์ ๋ถํฐ ์ง์ํ๋ ๋ฆฌ์กํฐ๋ธ ์คํ์ ํฌํจ๋์ด ๋ฆฌ์กํฐ๋ธํ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋์ํ๋๋ฐ ์์ด ํต์ฌ์ ์ธ ์ญํ ๋ด๋น ๐ Reactor ํน์ง (1) ๋ฆฌ์กํฐ๋ธ ์คํธ๋ฆผ์ฆ๋ฅผ ๊ตฌํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (2) Non-Blocking ํต์ ์ ์ง์ํจ (3) Publisher ํ์ ์ผ๋ก Mono[0|1]์ Flux[N]์ด๋ผ๋ ๋ ๊ฐ์ง ํ์ ์ ๊ณต - 0๊ณผ .. 2022. 8. 11. [TIL] ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ ๐๐ป ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ - ์ ํต์ ์ธ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์(ex. Spring MVC) ๊ณผ ๋ฌ๋ฆฌ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ฌ์ฉ ๐ก ๋ฆฌ์กํฐ๋ธ : Reactive - ๋ฐ์์ ํ๋, ๋ฐ์์ ๋ณด์ด๋ ๐ ๋ฆฌ์กํฐ๋ธ ์์คํ : Reactive System - ๋ฐ์์ ์ํ๋ ์์คํ - ์ฆ, ๋ฆฌ์กํฐ๋ธ ์์คํ ์ ์ด์ฉํ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ ์ํ๋ ์์คํ - ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์๋ต ๋๊ธฐ ์๊ฐ์ ์ต์ํ ํ ์ ์๋๋ก ์์ฒญ ์ฐ๋ ๋๊ฐ ์ฐจ๋จ ๋์ง ์๊ฒํจ์ผ๋ก์จ ํด๋ผ์ด์ธํธ์๊ฒ ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ์ํ๋๋ก ๊ตฌ์ฑ๋ ์์คํ โช๏ธ ๋ฆฌ์กํฐ๋ธ ์์คํ ํน์ง โฝ๏ธ MEANS - ๋ฆฌ์กํฐ๋ธ ์์คํ ์์ ์ฌ์ฉํ๋ ์ปค๋ฎค๋์ผ์ด์ ์๋จ ๐น Message Driven : ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ - ๋ฆฌ์กํฐ๋ธ ์์คํ ์์๋ ๋ฉ์์ง ๊ธฐ๋ฐ ํต์ ์ ํตํด ์ฌ๋ฌ ์์คํ ๊ฐ์.. 2022. 8. 10. [TIL] ์ด์ ์ ๋ต (2) ๐๐ป TOMCAT - Apache์ฌ์์ ๊ฐ๋ฐํ ์๋ธ๋ฆฟ ์ปจํ ์ด๋๋ง ์๋ ์คํ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ๐ Tomcat ํน์ง - ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ํ์ ์ธ ์คํ ์์ค : Web Application Server(WAS) - ์คํ์์ค์ด๊ธฐ ๋๋ฌธ์ ๋ผ์ด์ ์ค ๋น์ฉ ๋ถ๋ด ์์ด ์ฌ์ฉ ๊ฐ๋ฅ - ๋ ๋ฆฝ์ ์ผ๋ก๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ฉฐ Apache ๊ฐ์ ๋ค๋ฅธ ์น ์๋ฒ์ ์ฐ๋ํ์ฌ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅ - ์๋ฐ ์๋ธ๋ฆฟ ์ปจํ ์ด๋์ ๋ํ ๊ณต์ ๊ตฌํ์ฒด๋ก ์คํ๋ง ๋ถํธ์ ๋ด์ฅ๋์ด ๋ณ๋์ ์ค์น ๊ณผ์ ์ด ํ์ ์์ ๐ก Servlet : ์๋ธ๋ฆฟ - ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์น ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ - ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๋ฉด ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ์กํด์ฃผ๋ ์ญํ - ์๋ธ๋ฆฟ์ ํตํด ์์ฒญ ๋ฉ์์ง๋ฅผ ์ฝ๊ณ ์๋ต์ ๋ง๋ค์ด ์ค ๐ก Servlet .. 2022. 8. 9. [TIL] ์ด์ ์ ๋ต (1) ๐ค๐ป Proxy Server : ํ๋ก์ ์๋ฒ - ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ํตํ ๋ ์๋ฒ์ ๋ฐ๋ก ์ ๊ทผํ์ง ์๊ณ ์์ ์ ํตํด ์๋ฒ์ ์ ๊ทผํ ์ ์๋๋ก ํด์ฃผ๋ ๋๋ฆฌ ์๋ฒ - ์ผ๋ฐ ์ฌ์ฉ์๋ ์ง์ญ์ด ์ ํ๋์ด ์๋ ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ์ฐํํ๊ฑฐ๋ ์บ์๋ฅผ ํตํด ๋ ๋น ๋ฅธ ์ด์ฉ์ ์ํด ํ๋ก์ ์๋ฒ๋ฅผ ์ฌ์ฉ ๐ํ๋ก์ ์๋ฒ ์ข ๋ฅ โ Forward Proxy - ํ๋ก์ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ๊ฐ๊น์ด ์๋ ๊ฒฝ์ฐ - ํด๋ผ์ด์ธํธ ๊ฐ๊น์ด์ ์์นํ ํ๋ก์ ์๋ฒ๋ก ํด๋ผ์ด์ธํธ๋ฅผ ๋์ ํ์ฌ ์๋ฒ์ ์์ฒญ ์ ๋ฌ - ์ฃผ๋ก ์บ์ฑ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์ฌ์ฉ์๊ฐ ๋น ๋ฅธ ์๋น์ค ์ด์ฉ ๊ฐ๋ฅํ๋๋ก ๋์์ค ๐ Forward Proxy ์ฅ์ โธ ์บ์ฑ์ ํตํ ๋น ๋ฅธ ์๋น์ค ์ด์ฉ ๊ฐ๋ฅ - ํด๋ผ์ด์ธํธ๋ ์๋ฒ๊ฐ ์๋ ํ๋ก์ ์๋ฒ์ ์ํต - ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๊ฐ ๋์ผํ ์์ฒญ์ ๋ณด๋ด.. 2022. 8. 9. [TIL] Github Actions ๐๐ป Github Actions - ๊นํ๋ธ๊ฐ ๊ณต์์ ์ผ๋ก ์ ๊ณตํ๋ ๋น๋, ํ ์คํธ ๋ฐ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์๋ํ ํ ์ ์๋ CI / CD ํ๋ซํผ - ๋ ํฌ์งํ ๋ฆฌ์์ Pull Request๋ Push ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐ๋ก Github ์์ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ * Work Flow : ์ํฌํ๋ก์ฐ - ํ๋ ์ด์์ ์์ ์ด ์คํ๋๋ ์๋ํ ํ๋ก์ธ์ค - ๊ฐ ์์ ์ ์์ฒด ๊ฐ์ ๋จธ์ ๋๋ ์ปจํ ์ด๋ ๋ด๋ถ์์ ์คํ๋จ - .yml / .yaml ํ์ผ์ ์ํด ๊ตฌ์ฑ๋จ - ํ ์คํธ, ๋ฐฐํฌ ๋ฑ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ์ํฌํ๋ก์ฐ๋ฅผ ๋ง๋ค ์ ์์ - ์์ฑ๋ ์ํฌํ๋ก์ฐ๋ .github/workflows์ ์์นํจ - ๋น๊ณต๊ฐ ๋ ํฌ์งํ ๋ฆฌ์ ๊ฒฝ์ฐ Github Actions๊ฐ ์๋ํ ๋์ ์ฉ๋๊ณผ ์๊ฐ์ด ์ ํ๋์ด ์์ - ๊ณต๊ฐ ๋ ํฌ์งํ ๋ฆฌ์ ๊ฒฝ.. 2022. 8. 8. [TIL] ๋ฐฐํฌ ์๋ํ ๐๐ป ๋ฐฐํฌ ์๋ํ : Automated Deployment - ํ ๋ฒ์ ํด๋ฆญ ํน์ ๋ช ๋ น์ด ์ ๋ ฅ์ ํตํด ์ ์ฒด ๋ฐฐํฌ ๊ณผ์ ์ ์๋์ผ๋ก ์งํํ๋ ๊ฒ ๐ก ๋ฐฐํฌ ์๋ํ๊ฐ ํ์ํ ์ด์ ? - ์๋์ ์ด๊ณ ๋ฐ๋ณต์ ์ธ ๋ฐฐํฌ ๊ณผ์ ์ ์๋ํํจ์ผ๋ก์จ ์๊ฐ์ด ์ ์ฝ๋จ - ํด๋จผ ์๋ฌ๋ฅผ ๋ฐฉ์งํ ์ ์์ (ํด๋จผ ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ๋ฎ์ถ ์ ์์) * ํด๋จผ ์๋ฌ : Human Error - ์ฌ๋์ด ์๋์ ์ผ๋ก ๋ฐฐํฌํ๋ ๊ณผ์ ์์ ์๊ธฐ๋ ์ค์ - ๊ทธ ์ ์ ๋ฐฐํฌ์ ๋ค๋ฅด๊ฒ ์งํํ๊ฑฐ๋ ํน์ ๊ณผ์ ์ ์๋ตํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ ๐ ํ์ดํ ๋ผ์ธ : Pipeline ๐ AWS ๊ฐ๋ฐ์ ๋๊ตฌ * AWS์๋ ๊ฐ๋ฐ์ ๋๊ตฌ ์ธ์ ์ด ์กด์ฌ → ์ด๋ฅผ ํ์ฉํ์ฌ ๋ฐฐํฌ ์๋ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ ๊ฐ๋ฅ โ CodeCommit - Source ๋จ๊ณ๋ฅผ ๊ตฌ์ฑํ ๋ CodeCommit .. 2022. 8. 8. [TIL] Docker ๐๐ป ์ปจํ ์ด๋ ๋ฐฉ์ - ์คํ ํ๊ฒฝ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ๊ฐ๋ฅ - ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ ๋ด์ ๊ตฌ์ฑํจ → ์ปจํ ์ด๋์์ ์คํ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ค ์์กด์ฑ๋ ๊ณต์ ํ์ง ์๊ณ ๊ฐ์ ๊ณ ์ ์ ์์กด์ฑ์ ํฌํจํ๊ณ ์์ ๐ก ์ปจํ ์ด๋ - ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์กด์ฑ, ๋คํธ์ํฌ ํ๊ฒฝ, ํ์ผ ์์คํ ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ๋์ปค๋ผ๋ ๊ธฐ์ ์์ ์คํ๋ ์ ์๋๋ก ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๐ ์ปจํ ์ด๋ ๋ฐฉ์(๊ธฐ์ )์ ์ฅ์ : ์์กด์ฑ ์ถฉ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค โ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ ํ๊ฒฝ์ ์ผ์น์ํด โก ์ํ ํ์ฅ์ ์ฝ๊ฒ ํด์ค โข ๊ฐ ์๋ฒ์ ์๋ก์ด ๋ด์ฉ์ ๋ฐฐํฌํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ค ๐๐ป ์ปจํ ์ด๋ ๊ธฐ์ ์ ์ด์ฉํ๋ฉด ์ฒ ์ ํ๊ฒ ์คํ ํ๊ฒฝ์ด ๊ฒฉ๋ฆฌ๋์ด ์์ด ์์กด์ฑ ์ถฉ๋์ด ์ผ์ด๋์ง ์์ ์ฆ, ํ ์ปดํจํฐ์ ์ฌ๋ฌ ๋์ ์ปจํ ์ด๋๊ฐ ์กด์ฌํ๊ณ ์ด๋ฅผ ํตํด ์ ํ.. 2022. 8. 4. [TIL] Cloud ์ด์ ํ๊ฒฝ ๐๐ป Cloud Computing : ํด๋ผ์ฐ๋ ์ปดํจํ : ์ธํฐ๋ท ๊ธฐ๋ฐ์ ์ปดํจํ - ์ธํฐ๋ท ์์ ๊ฐ์ํ๋ ์๋ฒ์ ํ๋ก๊ทธ๋จ์ ๋๊ณ ํ์ํ ๋๋ง๋ค ์ปดํจํฐ๋ ์ค๋งํธํฐ ๋ฑ์ ๋ถ๋ฌ์ ์ฌ์ฉํ๋ ์๋น์ค ๐ธ ๊ธฐ์กด ์๋ฒ์ ์์ฒญ์ ๋ํ ์์ฉ โ ๊ฐ์ ๊ณต๊ฐ์ ๋ ๋ง์ ์ปดํจํฐ ์ถ๊ฐ - ๊ฐ์ ๊ณต๊ฐ์ ๋ ๋ง์ ์ปดํจํฐ๋ฅผ ์ ๊ณตํ์ฌ ํ ๋๊ฐ ํด๊ฒฐํ ์ ์๋ ์์ฒญ์ ์ฌ๋ฌ ๋๊ฐ ๋๋๋ ๋ฐฉ์ โก ์ปดํจํฐ ์ฑ๋ฅ ์ ๊ทธ๋ ์ด๋ - ์ปดํจํฐ ํ ๋์ ์ฑ๋ฅ์ ๋์ด๋ ๋ฐฉ์ ๐ ๊ธฐ์กด ์๋ฒ์ ํ๊ณ โ ์ฃผ๊ธฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ํ์ - ์ธ๋ ฅ ๋ฐ ๋น์ฉ ํฌ์ ๋์ด์ผ ํจ → ๊ธฐ๊ธฐ ์๊ฐ ๋ง์์ง ์๋ก ์ธ๋ ฅ ๋น์ฉ ์ฆ๊ฐ โก ๊ณต๊ฐ์ ํ๊ณ - ํ ๊ณต๊ฐ์ ์ปดํจํฐ๋ฅผ ๋ฐฐ์นํด๋๊ณ ํ์ํ ๋๋ง๋ค ์ถ๊ฐ์ ์ธ ์ปดํจํฐ๋ฅผ ์ถ๊ฐํ์ฌ ์์ฉ ๋ฅ๋ ฅ ํฅ์ ์ํด → ๊ณต๊ฐ์ด ๋ถ์กฑํด์ ธ ์ปดํจํฐ๋ฅผ ๋ ์ด์ ๋ฐฐ์นํ ์ .. 2022. 8. 3. [TIL] OAuth2 ์ธ์ฆ ๐๐ป OAuth2 - ํด๋ผ์ด์ธํธ - ์๋ฒ - ์ 3์ ์๋น์ค ์ฌ์ด์ ์ธ์ฆ - ์ธ์ฆ์ ์ํ ํ์ค ํ๋กํ ์ฝ์ ํ ์ข ๋ฅ - ๋ณด์๋ ๋ฆฌ์์ค์ ์ ๊ทผ(์์ธ์ค)ํ๊ธฐ ์ํด ํด๋ผ์ด์ธํธ์๊ฒ ๊ถํ์ ์ ๊ณตํ๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๋ ํ๋กํ ์ฝ - ์ฆ, ์ด๋ฏธ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ ์น ์๋น์ค ( ์นด์นด์ค, ๊นํ, ๊ตฌ๊ธ, ํ์ด์ค๋ถ ๋ฑ )์์ ์ฌ์ฉ์ ์ธ์ฆ์ ๋์ ํด์ฃผ๊ณ ์ ๊ทผ ๊ถํ์ ๋ํ ํ ํฐ์ ๋ฐ๊ธํ ํ ์ด๋ฅผ ์ด์ฉํด์ ๋ด ์๋ฒ์์ ์ธ์ฆ์ด ๊ฐ๋ฅํด์ง - ์ธ์ฆ๋ง ๋ค๋ฅธ ์๋น์ค์ ๋งก๊ธฐ๊ณ ์ธ๊ฐ๋ ๋ด ์๋ฒ์์ ! โ ํธ๋ฆฌํ ์ธ์ฆ โก ๋ณด์์ ์ด์ ๐ก Resource Owner - ์ก์ธ์ค ์ค์ธ ๋ฆฌ์์ค์ ์ ์ - ๊ทธ๋ฆผ์์ User๋ฅผ ์๋ฏธ ( User์ Facebook ๊ณ์ ์ ์ด์ฉํด์ APP์ ๋ก๊ทธ์ธ ํ ๊ฒฝ์ฐ User๋ Resource Owner) ๐ก .. 2022. 8. 3. ์ด์ 1 2 3 4 ยทยทยท 11 ๋ค์