1. Proxy? ํ๋ก์๋ ๋๋ฆฌ์, ๋๋ณ์ธ์ ๋งํฉ๋๋ค. ๋๋ฆฌ์๋ ๋๊ตฐ๊ฐ์ ์ญํ ์ ๋์ ์ํํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ํ๋ง๋๋ก ๋น์ ์ญํ ์ ํ๋ค๊ณ ์ด์ผ๊ธฐํ ์ ์์ต๋๋ค. ์ฌ์ฅ์ด ์ง์ ํ๋ํ๋ ๊ฒ์ด ์๋ ๋น์๊ฐ ์ญํ ์ ๋์ ์ํํ๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฏธ์ ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๋ํ
์ด์ ์ดํดํ์ง ๋ชปํ๋ ์ปค๋งจ๋ ํจํด์ ๋ํด ์๋ฐ ๊ฐ์ฒด์งํฅ ๋์์ธ ํจํด์ ํตํด ํ์ตํ๋ค. ์ปค๋งจ๋ ํจํด์ ์คํํ ๊ธฐ๋ฅ์ ์บก์ํํ๋ ํจํด์ด๋ค. ์บก์ํ(capsulation)์ ๊ฐ์ฒด์ ์์ฑ๊ณผ ํ์๋ฅผ ๋ฌถ๊ณ ๊ทธ์ ๊ด๋ จ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ธ๋ถ์ ๋ ธ์ถํ์ง ์๋๋ค๋ ์๋ฏธ์ด๋ค. ๊ฐ ์ญํ ์ด
์ ๋ต ํจํด(strategy pattern) ๊น์ํ๋ ๊ฐ์ ์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ณ ๊ธํธ์์ ์ ๋ต ํจํด์ ๊ดํ ๋ด์ฉ์ ํ์ตํ๋ค. ์ด์ ์ ์ฑ ์์ ํ๋ฒ ํ์ตํ ๋ด์ฉ์ด์์ง๋ง ์ ๋ต ํจํด์ ์ฌ์ฉ ์ด์ ์ ์ฅ๋จ์ ์ ๋ํ ๋ด์ฉ์ ๋ํด ์ฝ๊ฒ ์ค๋ช ํด ์ฃผ์ ์ ์ด์ ์ ๋นํด ๋์ฑ ๊น์ด์๋ ์ด
๋๋ ์ผ๋ง๋ ๊ฐ์ฒด์ ์ผ๋ก ์ค๊ณํ๋ ๋ฒ์ ๋ํด ์ดํดํ๋์ง ๊ถ๊ธํ๊ธฐ๋ ํ๊ณ ์ฃผ๋ง์ ์๋ฌด๊ฒ๋ ์ํ๊ธฐ์๋ ์กฐ๊ธ ๊ทธ๋์ ๋์์ธ ํจํด์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ์๋ฐ ๊ฐ์ฒด์งํฅ ๋์์ธ ํจํด๋ค๊ณ ์นดํ๋ก ์๋ค.SRP์ด ๋จ์ผ ์ฑ ์ ์์น์ธ ๊ฒ์ ์๊ณ ์์ง๋ง ์ฑ ์์ด๋ผ๋ ๋จ์ด๊ฐ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋ก ๋ฌด์จ ์๋ฏธ
๊ทธ๋ฆฌ๋ ๋ฌธ์ ์ ๋ ฌ์ ํตํ ๊ทธ๋ฆฌ๋ ๋ก์ง ์ ์ฉํ๊ธฐ๊ฐ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ๋ฒ์ด๋๋ ์ง์ (routes\[1])์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.(CollectionFramework์์ ์ ๊ณตํ๋ ์ ๋ ฌ์ QuickSort๋ฅผ ์ฌ์ฉํ๋ค.)์ฐจ๋์ ํ์ธํ๋ฉฐ ์ด์ ์ ์ฐจ๋์ด ๊ณ ์๋๋ก๋ฅผ ๋ฒ์ด๋๋ ์
ํด๋น ๋ด์ฉ์ ๋ฐ์ฑ๋ฒ๋์ ์บ์๊ฐ ๋์ํ๋ ๊ตฌ์ฒด์ ์ธ ์๋ฆฌ์ ๋ด์ฉ์ ๋ณด๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ํ๋ก์ธ์์ ์ฑ๋ฅ์ด ํฅ์๋์์ง๋ง ๋ฉ๋ชจ๋ฆฌ ์๋๋ ํ๋ก์ธ์ ์ฑ๋ฅ๋งํผ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ๋ค. ํ๋ก์ธ์ค์ ์ฑ๋ฅ์ด ์๋ฌด๋ฆฌ ์ข์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฒ๋ฆฌ ์๋๊ฐ ๋๋ฆฌ๋ค๋ฉด ์ ์ฒด ์๋๋ ๋๋ ค์ง ์ ๋ฐ์ ์๋ค. ์ด
๊ทธ๋ฆฌ๋ ๋ฌธ์ ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ๋ชปํด์ ๋ค๋ฅธ๋ถ ํ์ด๋ฅผ ํ๋ฒ ๋ฐ๋ผํด๋ดค๋ค.์ฒ์์ DFS๋ก ํด๊ฒฐํ๋ ค๊ณ ํ์ง๋ง DFS ๋ด๋ถ ํ์ํ๋ ๋ก์ง์ ์ด๋ป๊ฒ ์์ฑํด์ผํ ์ง ๋ชฐ๋๋ค.ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ์ฒ์ ๋ค์ด๋ณด๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ์ ์์ํ์ง๋ง ์๋ก์ด ๋ด์ฉ์ ์๊ฒ ๋์ด ์ข์๋ค.์๊ฐ ์
(์ด์ TIL ์ ์๋ผ๊ณ ์๊ฐํ๋ค๊ฐ ์ ๋ค์ด์ ์ ์ง ๋ชปํ TILใ ใ ) ๊ธฐ์ตํด๋ณด๋ ์ด์ ๋ฉด์ ์ง๋ฌธ ์ค์ CQRS๋ฅผ ์๋์ง์ ๊ดํ ์ง๋ฌธ์ด ์์๋๋ฐ ์ ๋๋ก ๋๋ตํ์ง ๋ชปํด์ ๊ฐ๋จํ๊ฒ ๊ฐ๋ ์ด๋ผ๋ ์ ๋ฆฌํ๋ค.๊ฐ๋จํ๊ณ ๊ธฐ๋ณธ์ ์ธ CRUD์์ ์ ํ๋ ๊ฒฝ์ฐ, ์ฟผ๋ฆฌ์ ์ ๋ฐ์ดํธ๋ฅผ ๋์ผํ ๋ฐ์ดํฐ
์ค๋ ๋ณธ ๋ฉด์ ์ ๋ฆฌ 1. ๋ฉด์ ํ๊ธฐ ์ค๋ ๊ธฐ์ ๋ฉด์ ์ 2๋1๋ก ์งํ๋์๋ค. ๊ฐ๋ฐํ์ฅ๊ณผ ์์ ํ ๋ถ์ฉ ๋ค์ด์ค์ ์ ๋ฉด์ ์ ๋ณด์๋ค. ๋ง์กฑ์ค๋ฌ์ด ๋ฉด์ ์ด์๋ค. ๊ทธ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ์ด๋ค ๊ณ ๋ฏผ์ ํ๋ฉด์ ์ฝ๋๋ฅผ ์งฐ๋์ง์ ๋ํ ์ง๋ฌธ๊ณผ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ๋์ณค๋ ๋ถ๋ถ, ๊ฐ์ ํ
\[ํ๋ก๊ทธ๋๋จธ์ค]์ฒด์ก๋ณต๊ธฐ๋ณธ ๊ตฌํ ๋ฌธ์ ํ์ ๋ฒํธ๋๋ก ์์ฐจ์ ์ผ๋ก ์ฒด์ก๋ณต์ ๋๋ ์ค๋ค.์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๊ณผ ๋๋ ๋นํ์ง ์๋ ํ์์ ์ฒด์ก๋ณต ์๋ฅผ ์์ ํ๋ค.์ฃผ๋ณ์ ํ์์๊ฒ ์ฒด์ก๋ณต์ ๋๋ ์ค๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค]๊ตฌ๋ช ๋ณดํธ
UML : ์์คํ ๊ฐ๋ฐ ๊ณผ์ ์์ ๊ฐ๋ฐ์ ์ฌ์ด์ ์ดใ ก์ฌ ์ํต์ด ์ํํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ก ํ์คํํ ํตํฉ ๋ชจ๋ธ๋งUML ์ข ๋ฅ๊ตฌ์กฐ ๋ค์ด์ด๊ทธ๋จ : ํด๋์ค, ๊ฐ์ฒด, ๋ณตํฉ์ฒด, ๋ฐฐ์น, ์ปดํฌ๋ํธ, ํจํค์งํ์ ๋ค์ด์ด๊ทธ๋จ : ํ๋, ์ํ ๋จธ์ , ์ ์ฆ ์ผ์ด์ค, ์ํธ์์ฉํด๋์ค ๋ค์ด์ด๊ทธ๋จ : ์์คํ
\[ํ๋ก๊ทธ๋๋จธ์ค] ํฐ ์ ๋ง๋ค๊ธฐ๊ทธ๋ฆฌ๋๋ฅผ ์ด์ฉํ ํด๋น ๋ฒ์ ๋ด, ์ต๋๊ฐ ๋ฐํ ๋ฌธ์ ๋ฌธ์์ด์ ํ์ํ๋ฉด์ ํด๋น ๋ฒ์ ๋ด ์ต๋ ๊ฐ ๋ฐํํ๋ ๋ฌธ์ ์ฒซ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ ๋, ์ซ์์ ์ต์๊ฐ k๊ฐ๋ฅผ ๋ฝ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ ์ค๋ต์ด ๋์๋ค.๋ฌธ์ ์ ํต์ฌ์ ์์ฐจ์ ์ผ๋ก ํ์ํด
Docker Resistry ๋์ปค ์ด๋ฏธ์ง ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ญํ . ๋๊ตฌ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํด์ ํธ์ฌ ๋ฐ ๋ค์ด๋ก๋๊ฐ ๊ฐ๋ฅํ๋ค. ๊ฐ์ธ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ, [์ฌ์ฉ์ ์ด๋ฆ]/[image ์ด๋ฆ]์ ๋ช ์ํด์ ๋ง๋ค์ด์ง๋ค. private registry๋ฅผ ์ฌ์ฉํ ์ ์๋ค. 1.
\[ํ๋ก๊ทธ๋๋จธ์ค]๋ชจ์๊ณ ์ฌ์์ ํ์์ ์ด์ฉํ ์ ํ์ ์ธ ์นด์ดํ ๋ฌธ์ ๋ฌธ์ ์ ๋ต์ ์ํํ๋ฉด ์์ฑํ ๋ต๊ณผ ์ผ์นํ ๊ฒฝ์ฐ, ์ ๋ต ์๋ฅผ ์นด์ดํ ํ๋ค.๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ฐ ๋ญ๊ฐ ํ์ด ๋ฐฉ์์ด ์นด์ดํ ์ ๋ ฌ์ ์ ์ฌํด์ ๊ณ์ ์ ๋ ฌ ๋ค์ ์ฐพ์๋ด.๊ณ์ ์ ๋ ฌ : ์ ๋ ฌ๋ ์ํ์์ ๊ฐ ๊ฐ์ ๋น๋์๋ฅผ ํ์ธํ
\[ํ๋ก๋๋จธ์ค] h-index์ ๋ ฌ์ ํตํ ๊ฒฐ๊ณผ ๋ฐํ์ ๋ ฌ์ ํ ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ํด๋น ์ธ๋ฑ์ค์ ๊ฐ๋ณด๋ค ๋์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ ์๋ฅผ ํ์ ํ๊ธฐ ์์ํ๋ค.
๋ฌธ์ ํต์ฌ ์ ํ ์ ๋ ฌ์ ํตํ ํด๋น ์ซ์ ๋ฐํ ๋ค์ํ ์ ๋ ฌ์ด ์กด์ฌํ์ง๋ง quicksort๋ฅผ ์ง์ ๊ตฌํํ์๋ค. ํด๊ฒฐ ์ ๋ต pivot์ ๊ธฐ์ค์ผ๋ก ๊ฐ์ ๊ตฌ๋ถํ๋ค. ์ผ์ชฝ์ pivot๋ณด๋ค ์์ ๊ฐ์ ์์น์ํจ๋ค. ์ค๋ฅธ์ชฝ์์๋ pivot๋ณด๋ค ํฐ ๊ฐ์ ์์น์ํจ๋ค.
Docker Abstract | ๊ฐ์ํ ๋ฐฉ์ | ์ปจํ ์ด๋ | | --- | --- | | | | (1) docker ์ฌ์ฉ ์ด์ ์ด์ ์ ๊ฐ์ํ๋ฐฉ์์ธ ํ์ดํผ๋ฐ์ด์ (Hypervisor)์ ๋นํจ์จ์ฑ ํ์ดํผ๋ฐ์ด์ (Hypervisor)์ ์ด์ ์ ํ๋์ ํธ์คํธ์
์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด ์ต๋๊ฐ, ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ฐ์ ์์ ํ์ ์ ๋ ฌ ๊ธฐ์ค์ ์ค์ ํ ์ ์๋์ง ํ์ธํ๋ ๋ฌธ์ ์ฒ์์๋ 2๊ฐ์ ์ฐ์ ์์ ํ์ ๊ฐ๋ค์ ์ผ๊ด์ฑ์ ๊ด๋ฆฌํ๊ธฐ ์ํด Map์ ๊ตฌํํด์ key๊ฐ์ด ์กด์ฌํ ๋ ๊ฐ์ ์ถ์ถํ๋ ๋ฐฉ์์ ๋์ ํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค.์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ
์ฐ๋ฆฌ๊ฐ ๋ง๋ MVC์ ์ค์ Spring MVC์ ์ฐจ์ด๋ฅผ ํ์ธํด๋ณด์!Spring MVC์์ FrontController ์ญํ DispatcherServlet๋ ๋ถ๋ชจ ํด๋์ค๋ก HttpServlet์ ์์๋ฐ์ ์ฌ์ฉํ๊ณ ์๋ค.DispatcherServlet -> Framewor