4๋ฒ
- ์ธํฐํ์ด์ค ๊ตฌํ
- ์ก, ์์ ์์คํ ๊ฐ ๋ฐ์ดํฐ ๊ตํ ๋ฐ ์ฒ๋ฆฌ๋ฅผ ์คํํด์ฃผ๋ ์์
- ๋ฐ์ดํฐ ํต์ ์ ์ด์ฉํ ๊ตฌํ - AJAX, Http2, Rest, ...
- Application ์์ญ์์ data format์ ์ธํฐํ์ด์ค ๋์์ผ๋ก ์ ์ก
- ์์ ์ธก์์ ํ์ฑํ์ฌ ํด์
- JSON, XML ํ์์ ๋ฐ์ดํฐ ํฌ๋งท์ด ์์.
- JSON์ ์ด์ฉํ ์ธํฐํ์ด์ค ๊ตฌํ ์์
- ์ก์ ์ธก
- ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ ์์คํ ํ๊ฒฝ์ ๋ง๊ฒ ์ธํฐํ์ด์ค ๊ฐ์ฒด๋ฅผ ์ ํ
- JSON์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์ธํฐํ์ด์ค ๊ฐ์ฒด๋ก ๋ง๋ฆ
- ์ธํฐํ์ด์ค ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํฐ ํต์ ๊ธฐ์ ๋ฑ์ ์ด์ฉํด ์์ ์ธก์ผ๋ก ์ ์ก
- ์์ ์ธก
- ์ธํฐํ์ด์ค ๊ฐ์ฒด๋ฅผ ์์
- ํ์ฑ ํ ์ฒ๋ฆฌ
- ์ก์ ์ธก์ผ๋ก ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ์ ์ก
- ์ก์ ์ธก
- AJAX (Asynchronous Javascript and XML)
- js ๋ฅผ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ XML ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ '๋น๋๊ธฐ ํต์ ' ๊ธฐ์
- JSON (JavaScript Object Notation)
- ์ฉ๋์ด ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํ ๋ฐ์ดํฐ์ ์(Attribute-Value Pairs) ํํ๋ก ํํํ๋ ๊ฐ๋ฐฉํ ํ์ค ํฌ๋งท
- XML์ ๋์ฒดํด์ ์ฌ์ฉ๋๊ณ ์์.
- ์ธํฐํ์ด์ค ์ํฐํฐ๋ฅผ ์ด์ฉํ ์ธํฐํ์ด์ค ๊ตฌํ - API Docs (Swagger)
- ์ธํฐํ์ด์ค๊ฐ ํ์ํ ์์คํ ์ฌ์ด ๋ณ๋์ ์ธํฐํ์ด์ค ์ํฐํฐ๋ฅผ ๋์ด ์ํธ์ฐ๊ณ
- ์ผ๋ฐ์ ์ผ๋ก ์ธํฐํ์ด์ค ํ ์ด๋ธ์ ์ํฐํฐ๋ก ํ์ฉ
- ์ธํฐํ์ด์ค ํ
์ด๋ธ์ ์ด์ฉํ ์ธํฐํ์ด์ค ๊ตฌํ ์์
- ์ก์ ์ธก
- ์ธํฐํ์ด์ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ ์ ์ธํฐํ์ด์ค ํ ์ด๋ธ์ ์ธํฐํ์ด์ค ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ก
- ์ธํฐํ์ด์ค ํ ์ด๋ธ์์ ์ ํด์ง ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์ธํฐํ์ด์ค ๋ฐ์ดํฐ๋ฅผ ์ ์ก
- ์์ ์ธก
- ์ธํฐํ์ด์ค ํ ์ด๋ธ์ ์ธํฐํ์ด์ค ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๋ฉด ์ ํด์ง ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์ธํฐํ์ด์ค ๋ฐ์ดํฐ๋ฅผ ์ฝ์
- ์ธํฐํ์ด์ค ํ ์ด๋ธ์์ ์ธํฐํ์ด์ค ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์ฌ์ ์ ์ ์๋ ๋ฐ์ดํฐ ํธ๋์ญ์ ์ ์ํ
- ์ก์ ์ธก
6๋ฒ
- VPN (Virtual Private Network, ๊ฐ์ ์ฌ์ค ํต์ ๋ง)
- ์ธํฐ๋ท ๋ฑ ํต์ ์ฌ์ ์(ISP)์ ๊ณต์ค ๋คํธ์ํฌ์ ์ํธํ ๊ธฐ์ ์ ์ด์ฉ
- ์ฌ์ฉ์๊ฐ ๋ง์น ์ ์ฉ ํ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ํด์ฃผ๋ ๋ณด์ ์๋ฃจ์
- SSL VPN
- PC์ VPN Client ํ๋ก๊ทธ๋จ์ ์ค์นํ์ฌ VPN ์๋ฒ์ ์ ์ํ๋ ๋ฐฉ์
- ์ํธํ๋ฅผ ์ํด SSL ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ค.
- IPSec VPN
- VPN ์๋ฒ๊ฐ ์ค์น๋ ๊ฐ ๋คํธ์ํฌ๋ฅผ ์๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉ์
- ์ํธํ๋ฅผ ์ํด IPSec ํ๋กํ ์ฝ์ ์ฌ์ฉ
- SSL(Secure Sockets Layer)
- ์ก, ์์ ํ๋ ์ปดํจํฐ ์ฌ์ด TCP/IP ๊ณ์ธต๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ์ฌ์ด์์ ์ธ์ฆ, ์ํธํ, ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ํ์ค ํ๋กํ ์ฝ
- ์ฆ, ์ ์ก ๊ณ์ธต๊ณผ ์ดํ๋ฆฌ์ผ์ด์ ๊ณ์ธต
- IPsec(IP security)
- ๋คํธ์ํฌ ๊ณ์ธต์์ IP ํจํท ๋จ์์ ๋ฐ์ดํฐ ๋ณ์กฐ ๋ฐฉ์ง ๋ฐ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณต
- PPTP(Point-to-Point Tunneling Protocol)
- ์ง์ ๊ฐ ํฐ๋๋ง ํ๋กํ ์ฝ
- MS๊ฐ ์ ์ํ VPN ํ๋กํ ์ฝ
- PPP์ ๊ธฐ์ด, ๋ ๋๊ฐ ์ง๋ ฌ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด ํต์
- ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต
- L2F(Layer 2 Forwarding)
- Cisco Systems๊ฐ ๊ฐ๋ฐํ VPN ํ๋กํ ์ฝ
- PPTP๋ IPsec๊ณผ ๋ฌ๋ฆฌ, ๋ฐ์ดํฐ ๋งํฌ ์์ค์์ ์บก์ํ๊ฐ ๊ฐ๋ฅ
- IP ๋คํธ์ํฌ ์ด์ธ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ
- L2TP (Layer 2 Tunneling Protocol)
- ํฐ๋๋ง ํ๋กํ ์ฝ์ธ PPTP์ VPN ๊ตฌํ์ ์ฌ์ฉ
- L2F์ ๊ธฐ์ ์ ์ฅ์ ์ ๊ฒฐํฉ
- ์์ฒด์ ์ผ๋ก ์ํธํ ๋ฐ ์ธ์ฆ์ ์ ๊ณตํ์ง ์์.
- ๋ค๋ฅธ ๋ณด์ ํ๋กํ ์ฝ๊ณผ ๊ฐ์ด ์ฌ์ฉ
8๋ฒ
- ์ํฐ๋ง ํ (Watering Hole)
- ๋ชฉํ ์กฐ์ง์ด ์์ฃผ ๋ฐฉ๋ฌธํ๋ ์น ์ฌ์ดํธ๋ฅผ ์ฌ์ ์ ๊ฐ์ผ
- ๋ชฉํ ์กฐ์ง์ด ์น ์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ์ ๋, ์ ์ฑ ์ฝ๋์ ๊ฐ์ผ๋๊ฒ ํ๋ ์น ๊ธฐ๋ฐ ๊ณต๊ฒฉ
- ์ (Worm)
- ๋คํธ์ํฌ๋ฅผ ํตํด ์ฐ์์ ์ผ๋ก ์์ ์ ๋ณต์
- ์์คํ ๋ถํ๋ฅผ ๋์ฌ ์์คํ ์ ๋ค์ด ์ํด
- ๋ถ์ฐ ์๋น์ค ๊ณต๊ฒฉ (Dos), ๋ฒํผ ์ค๋ฒํ๋ก ๊ณต๊ฒฉ, ์ฌ๋๋จธ ๋ฑ์ผ๋ก ์งํ
- ์ข๋น(Zombie) PC
- ์ ์ฑ์ฝ๋์ ๊ฐ์ผ๋์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ด๋ ์ปดํจํฐ๋ฅผ ์กฐ์ข ํจ.
- C&C (Command & Control) ์๋ฒ์ ์ ์ด๋ฅผ ๋ฐ์ Ddos ๊ณต๊ฒฉ ๋ฑ์ ์ด์ฉ๋๋ PC
- C&C ์๋ฒ
- ํด์ปค๊ฐ ์๊ฒฉ์ง์์ ๊ฐ์ผ๋ ์ข๋น PC์ ๋ช ๋ น์ ๋ด๋ฆผ
- ์ ์ฑ์ฝ๋๋ฅผ ์ ์ดํ๋ ์ฉ๋๋ก ์ฌ์ฉ ๋จ.
- ๋ด๋ท (Botnet)
- ์ ์ฑ ํ๋ก๊ทธ๋จ์ ๊ฐ์ผ๋์ด ์ ์์ ์ธ ์๋๋ก ์ฌ์ฉ๋ ์ ์๋ ๋ค์์ PC๊ฐ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋ ํํ
- ์ฆ, ์ข๋น PC์ ๋คํธ์ํฌ(?)
- ๊ณต๊ฒฉ์๋ Master ์์คํ (์ข๋น PC)์ผ๋ก Agent ์์คํ (์ข๋น PC)๋ฅผ ์กฐ์ข ํด ๊ณต๊ฒฉ๋์์ ๋ถ์ฐ ๊ณต๊ฒฉ์ ํ๋ ํ ์ ์์
- Master ์์คํ ์ญํ ์ ํธ๋ค๋ฌ(Handler)๋ผ๊ณ ํ๊ณ Agent ์์คํ ์ญํ ์ ๋ฐ๋ชฌ(Demon)์ด๋ผ๊ณ ํ๋ค.
- ์ ๋ก ๋ฐ์ด ๊ณต๊ฒฉ (Zero Day Attack)
- ๋ณด์ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ ๋์์ ๋, ๋ฐ๊ฒฌ๋ ์ทจ์ฝ์ ์ด ๊ณตํ๋๊ธฐ ์ ๊ณต๊ฒฉ
- ์ทจ์ฝ์ ์ ํตํด ์ด๋ฃจ์ด์ง๋ ๋ณด์ ๊ณต๊ฒฉ, ์ ์ํ๊ฒ ํด์ผ ํ๋ฏ๋ก ์ ๋ก๋ฐ์ด
- ํค๋ก๊ฑฐ ๊ณต๊ฒฉ (Key Logger AttacK)
- ์ปดํจํฐ ์ฌ์ฉ์์ ํค๋ณด๋ ์์ง์์ ํ์งํด ์ค์ํ ์ ๋ณด๋ฅผ ๋นผ๊ฐ
- ๋์ฌ ์จ์ด (Ransomeware)
- ์ธํฐ๋ท ์ฌ์ฉ์ PC์ ์ ์ , ๋ด๋ถ ๋ฌธ์๋ ํ์ผ ๋ฑ์ ์ํธํ ํจ.
- ์ํธ ํด๋ ์ฉ ํ๋ก๊ทธ๋จ์ ์กฐ๊ฑด์ผ๋ก ๋์ ์๊ตฌ ํ๋ ์ ์ง
- ๋ฐฑ๋์ด (Back Door, Trap Door)
- ์์คํ ์ค๊ณ์๊ฐ ์๋น์ค ๊ธฐ์ ์, ์ ์ง ๋ณด์ ํ๋ก๊ทธ๋๋จธ ๋ฑ์ ์ ๊ทผ ์ฉ์ด์ฑ์ ์ํด ๋ง๋ค์ด ๋์ ๋น๋ฐ ํต๋ก
- ํด์ปค๊ฐ ์์คํ ๋ณด์์ด ์ ๊ฑฐ๋ ๋น๋ฐ ํต๋ก๋ฅผ ์ฐพ์์ ์ปดํจํฐ ๋ฒ์ฃ์ ์ ์ฉํจ
- ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ, ์ด๋ฆฐ ํฌํธ, ๋ก๊ทธ ๋ถ์, setUID ํ์ผ ๊ฒ์ฌ ๋ฑ์ผ๋ก ๋ฐฑ๋์ด ํ์ง ๊ฐ๋ฅ
- ํธ๋ก์ด ๋ชฉ๋ง (Trojan Horse)
- ์ ์์ ์ธ ๊ธฐ๋ฅ์ ํ๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฅํด ํ๋ก๊ทธ๋จ ๋ด ์จ์ด ์์
- ํ๋ก๊ทธ๋จ์ด ๋์ํ ๋, ํ์ฑํ๋์ด ๋ถ์์ฉ์ ์ผ์ผํด
- ์ข๋น PC๋ก ๋ง๋ค ๋, ์ ์ฑ ํ๋ก๊ทธ๋จ์ ์ ์ ํ๋ก๊ทธ๋จ๊ณผ ํฉ์ฑํด์ ๋ฐฐํฌ
- ์ ์ ํ๋ก๊ทธ๋จ ์คํ ์ ์ข๋น PC๊ฐ ๋จ.
11๋ฒ
- ๋์์ธ ํจํด
- ๋ชจ๋ ๊ฐ ๊ด๊ณ ๋ฐ ์ธํฐํ์ด์ค ์ค๊ณ ์ ์ฐธ์กฐํ ์ ์๋ ์ ํ์ ์ธ ๋ฐฉ์ ๋๋ ์์
- GoF์ ๋์์ธ ํจํด
์์ฑ ํจํด (Creational Pattern)
- ํด๋์ค๋ ๊ฐ์ฒด์ ์์ฑ๊ณผ ์ฐธ์กฐ ๊ณผ์ ์ ์ ์
- ์ถ์ ํฉํ ๋ฆฌ (Abstract Factory)
- ๊ตฌ์ฒด์ ์ธ ํด๋์ค์ ์์กดํ์ง ์์.
- ์๋ก ์ฐ๊ด ๋ฐ ์์กดํ๋ ๊ฐ์ฒด๋ค์ ๊ทธ๋ฃน์ผ๋ก ์์ฑํด ์ถ์์ ์ผ๋ก ํํ
- ์ธํฐํ์ด์ค๋ก ์์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๊ฒ๋ค์ ๋ฏธ๋ฆฌ ์ ์ํด ๋ .
- ์๋์ฐจ์ ๋ฐํด, ์์ง, ๊ธฐ๋ฅ ๋ค
- ๋น๋ (Builder)
- ์๊ฒ ๋ถ๋ฆฌ๋ ์ธ์คํด์ค๋ฅผ ๊ฑด์ถ ํ๋ฏ์ด ์กฐํฉํด ๊ฐ์ฒด๋ฅผ ์์ฑ
- ๊ฐ์ฒด์ ์์ฑ ๊ณผ์ , ํํ ๋ฐฉ๋ฒ์ ๋ถ๋ฆฌํ๊ณ ์์.
- ๋์ผํ ๊ฐ์ฒด ์์ฑ์์๋ ์๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค ์ ์์.
- ํฉํ ๋ฆฌ ๋ฉ์๋ (Factory Method)
- Virtual Constructor(๊ฐ์ ์์ฑ์) ํจํด
- ๊ฐ์ฒด ์์ฑ์ ์๋ธ ํด๋์ค์์ ์ฒ๋ฆฌํ๋๋ก ๋ถ๋ฆฌ ํ ์บก์ํ
- ์์ ํด๋์ค์์ ์ธํฐํ์ด์ค๋ง ์ ์ํ๊ณ ์ค์ ์์ฑ์ ์๋ธ ํด๋์ค๊ฐ ํจ.
- ํ๋กํ ํ์
(Prototype)
- ์๋ณธ ๊ฐ์ฒด๋ฅผ ๋ณต์ ํ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํจํด์ผ๋ก ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑ - new
- ๋น์ฉ์ด ํฐ ๊ฒฝ์ฐ ์ฃผ๋ก ์ด์ฉ
- ์ฑ๊ธํค (Singleton)
- ํ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ์ด๋์๋ ์ฐธ์กฐํ ์ ์๋ค.
- ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฐธ์กฐํ ์๋ ์๋ค.
- ํด๋์ค ๋ด์์ ์ธ์คํด์ค๊ฐ ํ๋ ๋ฟ์์ ๋ณด์ฅํด์ผํ๋ค.
- ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ต์ํ ํ ์ ์๋ค.
๊ตฌ์กฐ ํจํด(Structural Pattern)
- ๊ตฌ์กฐ๊ฐ ๋ณต์กํ ์์คํ ์ ๊ฐ๋ฐํ๊ธฐ ์ฝ๋๋ก ํด๋์ค๋ ๊ฐ์ฒด๋ค์ ์กฐํฉํ์ฌ ๋ ํฐ ๊ตฌ์กฐ๋ก ๋ง๋ฌ
- ์ด๋ํฐ (Adapter)
- ํธํ์ฑ์ด ์๋ ํด๋์ค๋ค์ ์ธํฐํ์ด์ค๋ฅผ ๋ค๋ฅธ ํด๋์ค๊ฐ ์ด์ฉํ ์ ์๋๋ก ๋ณํ
- ๊ธฐ์กด์ ํด๋์ค๋ฅผ ์ด์ฉํ๊ณ ์ถ์ง๋ง ์ธํฐํ์ด์ค๊ฐ ์ผ์นํ์ง ์์ ๋, ์ด๋ํฐ๋ก ๋ณํํด์ ์ฌ์ฉ
- ๋ธ๋ฆฌ์ง (Bridge)
- ๊ตฌํ๋ถ์์ ์ถ์์ธต์ ๋ถ๋ฆฌ
- ์๋ก๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅํ ์ ์๋๋ก ๊ตฌ์ฑํ ํจํด
- ๊ธฐ๋ฅ๊ณผ ๊ตฌํ์ ๋ ๊ฐ์ ๋ณ๋ ํด๋์ค๋ก ๊ตฌํํ๋ค.
- Spring ์์ Repository, Controller์์ ๋ค๋ฅธ Interface๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ธ๋ฆฌ์ง๋ก ๋์ด์๋๊ฑฐ
- ์ปดํฌ์งํธ (Composite)
- ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง ๋ณตํฉ ๊ฐ์ฒด์ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ ์์ด ๋ค๋ฃฐ ๋ ์ฌ์ฉ
- ๊ฐ์ฒด๋ค์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ๋ค.
- ๋๋ ํฐ๋ฆฌ ์์ ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ฏ, ๋ณตํฉ ๊ฐ์ฒด ์ ๋ณตํฉ ๊ฐ์ฒด๊ฐ ํฌํจ๋๋๋ก ๊ตฌ์กฐ ๊ฐ๋ฅ
- List
- ๋ฐ์ฝ๋ ์ดํฐ (Decorator)
- ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ์ ํตํด ๋ฅ๋์ ์ผ๋ก ๊ธฐ๋ฅ๋ค์ ํ์ฅํ ์ ์๋ ํจํด
- ์์์ ๊ฐ์ฒด์ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํจ.
- ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ๋ง๋ถ์ด๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ
- ํผ์ธ๋(Facade)
- ๋ณต์กํ ์๋ธ ํด๋์ค๋ค์ ํผํด ๋ ์์์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ
- ์๋ธ ํด๋์ค๋ค์ ๊ธฐ๋ฅ์ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์์.
- ์๋ธ ํด๋์ค๋ค ์ฌ์ด ํตํฉ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ Wrapper ๊ฐ์ฒด๊ฐ ํ์
- ํ๋ผ์ด์จ์ดํธ(Flyweight)
- ์ธ์คํด์ค๊ฐ ํ์ํ ๋ ๋ง๋ค ๋งค๋ฒ ์์ฑํ์ง ์์.
- ๊ฐ๋ฅํ ๊ณต์ ํด์ ์ฌ์ฉํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝ
- ๋ค์์ ์ ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ์กฐ์ํ ๋ ์ ์ฉํจ.
- MAP
- ํ๋ก์ (Proxy)
- ์ ๊ทผ์ด ์ด๋ ค์ด ๊ฐ์ฒด์ ์ ๊ทผ์ด ์ด๋ ค์ด ๊ฐ์ฒด์ ์ฐ๊ฒฐํ๋ ค๋ ๊ฐ์ฒด ์ฌ์ด์์ ์ธํฐํ์ด์ค๋ฅผ ์ํ
ํ์ ํจํด (Behavioral Pattern)
- ํด๋์ค๋ ๊ฐ์ฒด๋ค์ด ์๋ก ์ํธ์์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ ์ฑ
์ ๋ถ๋ฐฐ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ํจํด
- ์ฑ
์ ์ฐ์(Chain Of Responsibility)
- ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฐ์ฒด๊ฐ ๋ ์ด์ ์กด์ฌํ ๋
- ํ ๊ฐ์ฒด๋ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค๋ฉด ๋ค์ ๊ฐ์ฒด๋ก ๋์ด๊ฐ๋ ํํ์ ํจํด
- ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฐ ๊ฐ์ฒด๊ฐ Chain์ผ๋ก ๋ฌถ์ฌ ์๋ ํํ
- ์์ฒญ์ด ํด๊ฒฐ ๋ ๋๊น์ง Chain์ ๋ฐ๋ผ ์ฑ ์์ด ์ฐ์๋จ.
- ์ปค๋งจ๋ (Command)
- ์์ฒญ์ ๊ฐ์ฒด์ ํํ๋ก ์บก์ํํ์ฌ ์ฌ์ด์ฉ, ์ทจ์, ์ ์ฅ, ๊ธฐ๋ก์ ํ๋ ํจํด
- ์์ฒญ์ ์ฌ์ฉ๋๋ ๊ฐ์ข ๋ช ๋ น์ ์ถ์ ํด๋์ค์ ๊ตฌ์ฒด ํด๋์ค๋ก ๋ถ๋ฆฌํด์ ๋จ์ํ
- ์ธํฐํ๋ฆฌํฐ (Interpreter)
- ์ธ์ด์ ๋ฌธ๋ฒ ํํ์ ์ ์, SQL ๋ฐ ํต์ ํ๋กํ ์ฝ ๊ฐ๋ฐ ์ ์ฌ์ฉ
- ๋ฐ๋ณต์ (Iterator)
- ์๋ฃ๊ตฌ์กฐ์ ๊ฐ์ด ์ ๊ทผ์ด ์ฆ์ ๊ฐ์ฒด์ ๋ํด ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋ ํจํด
- ๋ด๋ถ ํํ ๋ฐฉ๋ฒ์ ๋ ธ์ถ ์์ด ์์ฐจ์ ์ ๊ทผ ๊ฐ๋ฅ
- ์ค์ฌ์ (Mediator)
- ์๋ง์ ๊ฐ์ฒด๊ฐ ๋ณต์กํ ์ํธ์์ฉ์ ์บก์ํํ์ฌ ๊ฐ์ฒด๋ก ์ ์
- ๊ฐ์ฒด ์ฌ์ด์ ์์กด์ฑ์ ์ค์ฌ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถค
- ๋ฉ๋ฉํ (Memento)
- ํน์ ์์ ์์์ ๊ฐ์ฒด ๋ด๋ถ ์ํ๋ฅผ ๊ฐ์ฒดํ
- ์์ฒญ์ ๋ฐ๋ผ ๊ฐ์ฒด๋ฅผ ํด๋น ์์ ์ ์ํ๋ก ๋๋ฆด ์ ์๋ ๊ธฐ๋ฅ ์ ๊ณต
- Ctrl + Z์ ๊ฐ์ ๋๋๋ฆฌ๊ธฐ ๊ธฐ๋ฅ
- ์ต์ ๋ฒ (Observer)
- ํ ๊ฐ์ฒด์ ์ํ๊ฐ ๋ณํํ๋ฉด ๊ฐ์ฒด์ ์์๋์ด ์๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์๊ฒ ๋ณํ๋ ์ํ๋ฅผ ์ ๋ฌ
- ์ผ๋๋ค์ ์์กด์ฑ์ ์ ์
- ๋ถ์ฐ ์์คํ ๊ฐ ์ด๋ฒคํธ๋ฅผ ์์ฑ,๋ฐํ(Publish)ํ๊ณ ์์ (Subscribe)ํด์ผ ํ ๋ ์ด์ฉ
- ์ํ (State)
- ๊ฐ์ฒด์ ์ํ์ ๋ฐ๋ผ ๋์ผํ ๋์์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผํ ๋ ์ฌ์ฉ๋๋ ํจํด
- ๊ฐ์ฒด ์ํ๋ฅผ ์บก์ํํ๊ณ ์ด๋ฅผ ์ฐธ์กฐํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ
- ์ ๋ต (Strategy)
- ๋์ผํ ๊ณ์ด ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ์บก์ํํ์ฌ ์ํธ ๊ตํํ ์ ์๊ฒ ์ ์
- ํด๋ผ์ด์ธํธ๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ํ๋ ์๊ณ ๋ฆฌ์ฆ ์ ํ ๊ฐ๋ฅ
- ํด๋ผ์ด์ธํธ์ ์ํฅ ์์ด ์๊ณ ๋ฆฌ์ฆ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ์คํ๋ง์ DI
- ํ
ํ๋ฆฟ ๋ฉ์๋ (Template Method)
- ์์ ํด๋์ค์์ ๊ณจ๊ฒฉ์ ์ ์
- ํ์ ํด๋์ค์์ ์ธ๋ถ ์ฒ๋ฆฌ๋ฅผ ๊ตฌ์ฒดํ ํ๋ ๊ตฌ์กฐ์ ํจํด
- ์ ์ฌํ ์๋ธ ํด๋์ค๋ฅผ ๋ฌถ์ด ๊ณตํต๋ ๋ด์ฉ์ ์์ ํด๋์ค์์ ์ ์
- ์ฝ๋์ ์์ ์ค์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํจ
- Spring-tx
- ๋ฐฉ๋ฌธ์ (Visitor)
- ๊ฐ ํด๋์ค๋ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ๋ณ๋์ ํด๋์ค๋ก ๊ตฌ์ฑ
- ๋ถ๋ฆฌ๋ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ ํด๋์ค๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ์ํ
- ์ฑ
์ ์ฐ์(Chain Of Responsibility)
12๋ฒ
- ํํ : ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ํ, ํ์ผ ๊ตฌ์กฐ์์๋ ๋ ์ฝ๋์ ํด๋น
- ์์ฑ : ๋ฆด๋ ์ด์
์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ์ด
- ์์ฑ์ ๊ฐ์๋ฅผ ์ฐจ์(Degree)๋ผ๊ณ ํจ.
- ํ ์์ฑ์ ํ๋๋ฅผ ์ ์ธํ ๋ฆด๋ ์ด์ ์ธ์คํด์ค๋ฅผ ๋๋ฉ์ธ์ด๋ผ๊ณ ํจ.
- ๋ฆด๋ ์ด์
์ธ์คํด์ค: ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋ ์์ฑ๋ค์ ๋ฐ์ดํฐ ํ์
์ด ์ ์๋์ด ๊ตฌ์ฒด์ ์ธ ๊ฐ์ ๊ฐ์ง ๊ฒ
- ์ค์ ๊ฐ์ ๊ฐ์ง ํํ์ ์๋ฏธ, ํ ์ด๋ธ์ ๋ฐ๋
- ๋ฆด๋ ์ด์
์คํค๋ง: ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๊ณ ์๋ ์์ฑ๋ค์ ๋ฐ์ดํฐ ํ์
์ด ์ ์ ๋ ํ๋์ ์ด๋ฆ
- ํ ์ด๋ธ์ ํค๋, ์์ฑ์ ์งํฉ
- ์นด๋๋๋ฆฌํฐ : ํํ์ ๊ฐ์ (๊ธฐ์, ๋์์๋ผ๊ณ ๋ ํจ)
18๋ฒ
- ์ธ๋ถ ์คํค๋ง
- ์ฌ์ฉ์๋ ์์ฉ ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ์ธ์ ์ ์ฅ์์ ํ์๋ก ํ๋ DB์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์
- ํด๋ผ์ด์ธํธ ์ ์ฅ
- ๊ฐ๋
์คํค๋ง
- DB์ ์ ์ฒด์ ์ธ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ๋ชจ๋ ์์ฉํ๋ก๊ทธ๋จ์ด๋ ์ฌ์ฉ์๊ฐ ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ข ํฉํ ์ ์ฒด DB๋ก ํ๋๋ง ์กด์ฌ
- ๊ฐ์ฒด ๊ฐ ๊ด๊ณ์ ์ ์ฝ ์กฐ๊ฑด์ ๋ํ๋
- DB์ ์ ๊ทผ ๊ถํ, ๋ณด์, ๋ฌด๊ฒฐ์ฑ ๊ท์น์ ๋ํด ๋ช ์ธ
- ERD๋ก ํํ
- ๋ด๋ถ ์คํค๋ง
- ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ์ ์ฅ์์ ๋ณธ DB
- ์ค์ ๋ก DB์ ์ ์ฅ๋ ๋ ์ฝ๋ ํ์์ ์ ์
- ์ ์ฅ๋ ๋ฐ์ดํฐ ํญ๋ชฉ์ ํํ ๋ฐฉ๋ฒ
- ๋ด๋ถ ๋ ์ฝ๋์ ๋ฌผ๋ฆฌ์ ์์
- ์ค์ DB์ ์ ํ , ์ธ๋ฑ์ค ๋ฑ์ ์ถ๊ฐํด์ ์ ํ
'์๊ฒฉ์ฆ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๊ธฐ] ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ 24๋ 1ํ ๊ธฐ์ถ ์ค๋ต๋ ธํธ (0) | 2024.07.28 |
---|---|
[์ค๊ธฐ] ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ 22๋ 3ํ ๊ธฐ์ถ ์ค๋ต๋ ธํธ (0) | 2024.07.26 |
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ์ํํธ์จ์ด ์ค๊ณ (0) | 2024.07.25 |
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ์๊ตฌ์ฌํญ ๋ถ์ (0) | 2024.07.25 |
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ํ๋ก์ ํธ ๊ณํ (0) | 2024.07.25 |