Node.js
- Javscript ์ธ์ด ๊ธฐ๋ฐ
- Javascript๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ Non-blocking I/O๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ต์ ํ๋ ํ๋ซํผ
(๋น๋๊ธฐ ํธ์ถ์ด ๊ฐ๋ฅํ๋ฏ๋ก, System call์ด ๋ค์ด์ค๋ฉด, ์ปค๋์ I/O ์์ ์๋ฃ ์ฌ๋ถ์ ๋ฌด๊ดํ๊ฒ ์ฆ์ ์๋ต์ ํด์ค)
- ์ฑ๊ธ ์ค๋ ๋ ๊ธฐ๋ฐ.
์ฅ์ : context switch ํ๋ก์ธ์ค ๋น์๊ตฌ, ์์ ์ ๊ทผ ๋๊ธฐํ ์ ๊ฒฝ ์์จ๋ ๋จ, CPU ์ฌ์ฉ ํจ์จ์ ๋ฑ..
๋จ์ : ํ๋ ์ฃฝ์ผ๋ฉด ์๋ฒ ๋, ์ฐ์ฐ๋์ด ๋ง์ ์์ ์ ๊ฒฝ์ฐ ํ ์์ ์๋ฃ๋์ผ ๋ค๋ฅธ ์์ ์ํ ๊ฐ๋ฅ, ์๋ฌ ์ฒ๋ฆฌ ๋ถ๊ฐํ ๊ฒฝ์ฐ stop ๋จ ๋ฑ..
- NPM(node package manager)๋ฅผ ํตํด ๋ค์ํ ํจํค์ง ์ ๊ณต
- ์๋น์ค ๋ก์ง์ด ๋ณต์กํด์ง๊ฑฐ๋, ์ ๋ฌด ๋์ด๋๊ฐ ๋์ ๊ฒฝ์ฐ๋ Javascript์ ํน์ฑ(ํ์ ์ด ๋น๊ณ ์ ์ ์)์ผ๋ก ์ธํ์ฌ Type์ผ๋ก ์ธํ ๋ฐํ์ ์๋ฌ๋ฅผ ๋ฑ์ด๋ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. : ํ๋ก์ ํธ ํ์ฅ ๋จ์๊ฐ ์ปค์ง ์์ ๋ฆฌํฉํ ๋ง๊ณผ ํ์ฅ์ ๋ํญ์ ๊ฒช๊ฒ ๋จ.
์์ ๊ฐ์ ํน์ฑ์ผ๋ก ์ธํ์ฌ
ํ๋์ ์์ ์์ฒด๊ฐ ์ค๋ ๊ฑธ๋ฆฌ๋(๋ฐ์ดํฐ์ ๋ฌด๊ฒ๊ฐ ๋ฌด๊ฑฐ์ด) ์น ์๋น์ค์๋ ์ด์ธ๋ฆฌ์ง ์์ผ๋ฉฐ,
๊ฐ๋ฒผ์ด I/O๋ฅผ ๋ง์ด ์๊ตฌํ๋ ๊ฒ์ํ, ์ฑํ , ์คํธ๋ฆฌ๋ฐ๊ณผ ๊ฐ์ ์น์๋น์ค์ ์ ํฉํ๋ค.
Spring boot
- Java ๊ธฐ๋ฐ์ผ๋ก ์์ ์ ์ด๋ค.
- POJO(Plan Old Java Object: ์ค๋๋ ๋ฐฉ์์ ๊ฐ๋จํ ์๋ฐ ์ค๋ธ์ ํธ) ๋ฐฉ์์ ํ๋ ์์ํฌ. ๊ธฐ์กด์ ์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ์ง์ํ๊ธฐ์ ์ฉ์ดํ๊ณ ๊ฐ์ฒด๊ฐ ๊ฐ๋ฒผ์
- ์ ์ด ๋ฐ์ (IoC: Inversion of Control) ์ง์: ์ปจํธ๋กค์ ์ ์ด๊ถ์ด ์ฌ์ฉ์๊ฐ ์๋๋ผ ํ๋ ์์ํฌ์ ์์ด์ ํ์์ ๋ฐ๋ผ ์คํ๋ง์์ ์ฌ์ฉ์์ ์ฝ๋๋ฅผ ํธ์ถ.
- ์์กด์ฑ ์ฃผ์ (DI: Dependency Injection) ์ง์: ๊ฐ๊ฐ์ ๊ณ์ธต์ด๋ ์๋น์ค๋ค ๊ฐ์ ์์กด์ฑ์ด ์กด์ฌํ ๊ฒฝ์ฐ ํ๋ ์์ํฌ๊ฐ ์๋ก ์ฐ๊ฒฐ ์์ผ์ค
- ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ(Aspect-Oriented Programming) ์ง์.
( ์ ํ๋ฆฌ์ผ์ด์ ํต์ฌ ์ ๋ฌด ๋ก์ง์์ ๊ณตํต ๊ธฐ๋ฅ ๋ก์ง๋ค์ ๋ถ๋ฆฌํ๋ ๊ฒ)