โจ ์๋ฃ ๊ตฌ์กฐ
- ์ ํ ๊ตฌ์กฐ : ๋ฐฐ์ด, ์ ํ ๋ฆฌ์คํธ(์ฐ์ ๋ฆฌ์คํธ, ์ฐ๊ฒฐ ๋ฆฌ์คํธ), ์คํ, ํ, ํ ํฌ
- ๋น์ ํ ๊ตฌ์กฐ : ํธ๋ฆฌ, ๊ทธ๋ํ
โจ ์ ํ ๋ฆฌ์คํธ
(1) ์ฐ์ ๋ฆฌ์คํธ
- ๋ฐฐ์ด๊ณผ ๊ฐ์ด ์ฐ์๋๋ ๊ธฐ์ต์ฅ์์ ์ ์ฅ๋๋ ์๋ฃ ๊ตฌ์กฐ
- ๊ธฐ์ต์ฅ์๋ฅผ ์ฐ์์ ์ผ๋ก ๋ฐฐ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ต์ฅ์ ์ด์ฉ ํจ์จ์ ๋ฐ๋๊ฐ 1๋ก์ ๊ฐ์ฅ ์ข๋ค.
- ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๊ธฐ ์ํด์๋ ์ฐ์๋ ๋น ๊ณต๊ฐ์ด ์์ด์ผ ํ๋ฉฐ, ์ฝ์ /์ญ์ ์ ์๋ฃ์ ์ด๋์ด ํ์
(2) ์ฐ๊ฒฐ ๋ฆฌ์คํธ
- ์๋ฃ๋ค์ ๋ฐ๋์ ์ฐ์์ ์ผ๋ก ๋ฐฐ์ด์ํค์ง๋ ์๊ณ ์์์ ๊ธฐ์ต๊ณต๊ฐ์ ๊ธฐ์ต์ํค๋, ์๋ฃ ํญ๋ชฉ์ ์์์ ๋ฐ๋ผ ๋ ธ๋์ ํฌ์ธํฐ ๋ถ๋ถ์ ์ด์ฉํ์ฌ ์๋ก ์ฐ๊ฒฐ ์ํจ ์๋ฃ ๊ตฌ์กฐ
- ๋ ธ๋์ ์ฝ์ /์ญ์ ์์ ์ฉ์ด
- ๊ธฐ์ต ๊ณต๊ฐ์ด ์ฐ์์ ์ผ๋ก ๋์ฌ ์์ง ์์๋ ์ ์ฅํ ์ ์๋ค.
- ์ฐ๊ฒฐ์ ์ํ ๋งํฌ(ํฌ์ธํฐ) ๋ถ๋ถ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์์ฐจ ๋ฆฌ์คํธ์ ๋นํด ๊ธฐ์ต ๊ณต๊ฐ์ ์ด์ฉ ํจ์จ์ด ์ข์ง ์๋ค.
- ์ฐ๊ฒฐ์ ์ํ ํฌ์ธํฐ๋ฅผ ์ฐพ๋ ์๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ์๋๊ฐ ๋๋ฆฌ๋ค.
- ์ค๊ฐ ๋ ธ๋ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ฉด ๊ทธ ๋ค์ ๋ ธ๋๋ฅผ ์ฐพ๊ธฐ ํ๋ค๋ค.
โจ ์คํ
๋ฆฌ์คํธ์ ํ์ชฝ ๋์ผ๋ก๋ง ์๋ฃ์ ์ฝ์ /์ญ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋ ์๋ฃ ๊ตฌ์กฐ
- LIFO (ํ์ ์ ์ถ) : ๊ฐ์ฅ ๋์ค์ ์ฝ์ ๋ ์๋ฃ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์
- ์คํ๊ทธ์ด ๋ชจ๋ ๊ธฐ์ต ๊ณต๊ฐ์ด ๊ฝ ์ฑ์์ ธ ์๋ ์ํ์์ ๋ฐ์ดํฐ๊ฐ ์ฝ์ ๋๋ฉด → ์ค๋ฒํ๋ก Overflow
- ๋ ์ด์ ์ญ์ ํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ฉด → ์ธ๋ํ๋ก Underflow
โจ ํ
๋ฆฌ์คํธ์ ํ์ชฝ์์๋ ์ฝ์ ์์ ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ค๋ฅธ ํ์ชฝ์์๋ ์ญ์ ์์ ์ด ์ด๋ฃจ์ด์ง๋๋ก ๊ตฌ์ฑํ ์๋ฃ ๊ตฌ์กฐ
- FIFO (์ ์ ์ ์ถ) : ๊ฐ์ฅ ๋จผ์ ์ฝ์ ๋ ์๋ฃ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ญ์
- ์์๊ณผ ๋์ ํ์ํ๋ ๋ ๊ฐ์ ํฌ์ธํฐ๊ฐ ์๋ค.
โจ ๋ฐฉํฅ/๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ์ต๋ ๊ฐ์ ์ ์
n ๊ฐ์ ์ ์
- ๋ฌด๋ฐฉํฅ : n(n-1)/2
- ๋ฐฉํฅ : n(n-1)
โจ ํธ๋ฆฌ
์ ์ (Node)์ ์ ๋ถ(Branch)์ ์ด์ฉํ์ฌ ์ฌ์ดํด์ ์ด๋ฃจ์ง ์๋๋ก ๊ตฌ์ฑํ ๊ทธ๋ํ
- ๋ ธ๋ Node : ํธ๋ฆฌ์ ๊ธฐ๋ณธ ์์๋ก์ ์๋ฃ ํญ๋ชฉ๊ณผ ๋ค๋ฅธ ํญ๋ชฉ์ ๋ํด ๊ฐ์ง(Branch)๋ฅผ ํฉ์น ๊ฒ
- ๊ทผ ๋ ธ๋ Root Node : ํธ๋ฆฌ์ ๋งจ ์์ ์๋ ๋ ธ๋
- ์ฐจ์ Degree : ๊ฐ ๋ ธ๋์์ ๋ป์ด ๋์จ ๊ฐ์ง์ ์
- ๋จ๋ง ๋ ธ๋ Terminal Node = ์ ๋ ธ๋ Leaf Node : ์์์ด ํ๋๋ ์๋ ๋ ธ๋ (Degree = 0)
- ํธ๋ฆฌ์ degree : ๋ ธ๋๋ค์ ๋๊ทธ๋ฆฌ ์ค์์ ๊ฐ์ฅ ๋ง์ ์
โจ ํธ๋ฆฌ ์ดํ๋ฒ
- Preorder : Root → Left → Right : A, B, C
- Inorder : Left → Root → Right : B, A, C
- Postorder : Left → Right → Root : B, C, A
โจ ์์์ ํ๊ธฐ๋ฒ
- ์ ์ ํ๊ธฐ๋ฒ PreFix : ์ฐ์ฐ์ → Left → Right : +AB
- ์ค์ ํ๊ธฐ๋ฒ InFix : Left → ์ฐ์ฐ์ → Right : A+B
- ํ์ ํ๊ธฐ๋ฒ PostFix : Left → Right → ์ฐ์ฐ์ : AB+
โจ ์ฝ์ ์ ๋ ฌ
โจ ์ ํ ์ ๋ ฌ
โจ ๋ฒ๋ธ ์ ๋ ฌ
โจ ํต ์ ๋ ฌ Quick Sort
๋ ์ฝ๋์ ๋ง์ ์๋ฃ ์ด๋์ ์์ ๊ณ ํ๋์ ํ์ผ์ ๋ถ๋ถ์ ์ผ๋ก ๋๋์ด ๊ฐ๋ฉด์ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ ๊ฐ์ ์ผ์ชฝ, ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ ์๋ธํ์ผ๋ก ๋ถํด์ํค๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ
- ๋ถํ Divide๊ณผ ์ ๋ณตConquer์ ํตํด ์๋ฃ๋ฅผ ์ ๋ ฌํ๋ค.
- ํ๊ท ์ํ ์๊ฐ ๋ณต์ก๋ : O(nlogn)
- ์ต์ ์ ์ํ ์๊ฐ ๋ณต์ก๋ : O(n^2)
โจ ํ ์ ๋ ฌ Heap Sort
์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree)๋ฅผ ์ด์ฉํ ์ ๋ ฌ ๋ฐฉ์
ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์๊ฐ ๋ณต์ก๋ : O(nlogn)
โจ 2-Way ํฉ๋ณ ์ ๋ ฌ
์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ ๋ ๊ฐ์ ํ์ผ์ ํ ๊ฐ์ ํ์ผ๋ก ํฉ๋ณํ๋ ์ ๋ ฌ ๋ฐฉ์
ํ๊ท ๊ณผ ์ต์ ๋ชจ๋ ์๊ฐ ๋ณต์ก๋ : O(nlogn)
โจ ์ด๋ถ ๊ฒ์, ์ด์ง ๊ฒ์, Binary Search
์ ์ฒด ํ์ผ์ ๋ ๊ฐ์ ์๋ธํ์ผ๋ก ๋ถ๋ฆฌํด ๊ฐ๋ฉด์ Key ๋ ์ฝ๋๋ฅผ ๊ฒ์ํ๋ ๋ฐฉ์
- ๋ฐ๋์ ์์ํ๋ ํ์ผ์ด์ด์ผ ๊ฒ์ํ ์ ์๋ค
- ์ฐธ๊ณ ์ ํ๋ Key ๊ฐ์ ํ์ผ์ ์ค๊ฐ ๋ ์ฝ๋ Key ๊ฐ๊ณผ ๋น๊ตํ๋ฉด์ ๊ฒ์
โจ ํด์ฑ ํจ์ Hashing Function
- ์ ์ฐ๋ฒ
- ์ ๊ณฑ๋ฒ
- ํด๋ฉ๋ฒ
- ๊ธฐ์ ๋ณํ๋ฒ
- ๋์์ ์ฝ๋ฉ๋ฒ
- ์ซ์ ๋ถ์๋ฒ
- ๋ฌด์์๋ฒ
โจ ์คํค๋ง
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ดํ ์ ๋ฐ์ ์ธ ๋ช ์ธ๋ฅผ ๊ธฐ์ ํ ๋ฉํ๋ฐ์ดํฐ์ ์งํฉ์ด๋ค.
์ฌ์ฉ์์ ๊ด์ ์ ๋ฐ๋ผ ์ธ๋ถ ์คํค๋ง, ๊ฐ๋ ์คํค๋ง, ๋ด๋ถ ์คํค๋ง๋ก ๋๋์ด์ง๋ค.
- ์ธ๋ถ ์คํค๋ง : ์ฌ์ฉ์๋ ์์ฉ ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ ๊ฐ์ธ์ ์ ์ฅ์์ ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ ์
- ๊ฐ๋ ์คํค๋ง : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฒด์ ์ธ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ๋ด๋ถ ์คํค๋ง : ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ์ ์ฅ์์ ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
โจ ๋จ์ ๋ชจ๋ Unit Module
์ํํธ์จ์ด ๊ตฌํ์ ํ์ํ ์ฌ๋ฌ ๋์ ์ค ํ ๊ฐ์ง ๋์์ ์ํํ๋ ๊ธฐ๋ฅ์ ๋ชจ๋๋ก ๊ตฌํ
- ๋จ์ ๋ชจ๋๋ก ๊ตฌํ๋๋ ํ๋์ ๊ธฐ๋ฅ์ ๋จ์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ๋ค.
- ์ฌ์ฉ์๋ ๋ค๋ฅธ ๋ชจ๋๋ก๋ถํฐ ๊ฐ์ ์ ๋ฌ๋ฐ์ ์์๋๋ ์์ ํ๋ก๊ทธ๋จ์ ์๋ฏธ
- ๋ ๊ฐ์ ๋จ์ ๋ชจ๋์ด ํฉ์ณ์ง ๊ฒฝ์ฐ ๋ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํ
- ๊ตฌ์ฑ ์์ : ์ฒ๋ฆฌ๋ฌธ, ๋ช ๋ น๋ฌธ, ๋ฐ์ดํฐ ๊ตฌ์กฐ
- ๋จ์ ๊ธฐ๋ฅ ๋ช ์ธ์ ์์ฑ → ์ /์ถ๋ ฅ ๊ธฐ๋ฅ ๊ตฌํ → ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
โจ IPC
Inter-Process Communication
๋ชจ๋ ๊ฐ ํต์ ๋ฐฉ์์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ํ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค ์งํฉ
๋ณต์์ ํ๋ก์ธ์ค๋ฅผ ์ํํ๋ฉฐ ์ด๋ค์ง๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ๊น์ง ๊ตฌํ ๊ฐ๋ฅ
- Shared Memory
- Socket
- Semaphores : ๊ณต์ ์์์ ๋ํ ์ ๋ ์ ์ด๋ฅผ ํตํด ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ์ํ
- Pipes&named Pipes
- Message Queueing
โจ ๋จ์ ๋ชจ๋ ํ ์คํธ
ํ๋ก๊ทธ๋จ ๋จ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ชจ๋์ด ์ ํด์ง ๊ธฐ๋ฅ์ ์ ํํ ์ํํ๋์ง ๊ฒ์ฆ
- ํ์ดํธ๋ฐ์ค ํ ์คํธ
- ๋ธ๋๋ฐ์ค ํ ์คํธ
โจ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ IDE
Integrated Development Environment
ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ์์ ์ ํ๋์ ํ๋ก๊ทธ๋จ์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ ๊ณตํ๋ ์ํํธ์จ์ด์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ
๋ํ์ ์ธ ๊ธฐ๋ฅ : ์ฝ๋ฉ, ์ปดํ์ผ, ๋๋ฒ๊น , ๋ฐฐํฌ
โจ ๋น๋ ๋๊ตฌ
๋น๋ : ์์ค ์ฝ๋ ํ์ผ๋ค์ ์ปดํจํฐ์์ ์คํํ ์ ์๋ ์ ํ ์ํํธ์จ์ด๋ก ๋ณํํ๋ ๊ณผ์ ๋๋ ๊ฒฐ๊ณผ๋ฌผ
๋น๋ ๋๊ตฌ : ์์ค ์ฝ๋๋ฅผ ์ํํธ์จ์ด๋ก ๋ณํํ๋ ๊ณผ์ ์ ํ์ํ ์ ์ฒ๋ฆฌ(Preprocessing), ์ปดํ์ผ(Compile) ๋ฑ์ ์์ ๋ค์ ์ํํ๋ ์ํํธ์จ์ด ex) Ant, Maven, Gradle
โจ ์ํํธ์จ์ด ํจํค์ง
๋ชจ๋๋ณ๋ก ์์ฑํ ์คํ ํ์ผ๋ค์ ๋ฌถ์ด ๋ฐฐํฌ์ฉ ์ค์น ํ์ผ์ ๋ง๋๋ ๊ฒ
๊ฐ๋ฐ์๊ฐ ์๋ ์ฌ์ฉ์ ์ค์ฌ์ผ๋ก ์งํ
โจ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ Release Note
๊ฐ๋ฐ ๊ณผ์ ์์ ์ ๋ฆฌ๋ ๋ฆด๋ฆฌ์ฆ ์ ๋ณด๋ฅผ ์ํํธ์จ์ด์ ์ต์ข ์ฌ์ฉ์์ธ ๊ณ ๊ฐ๊ณผ ๊ณต์ ํ๊ธฐ ์ํ ๋ฌธ์
์ ํํ๊ณ ์์ ํ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํ์์ ์ง์ ํ์ฌ ์์ ๋ก ์์ฑํด์ผ ํ๋ค.
โจ ๋์งํธ ์ ์๊ถ ๊ด๋ฆฌ DRM
Digital Right Management
์ ์๊ถ์๊ฐ ๋ฐฐํฌํ ๋์งํธ ์ฝํ ์ธ ๊ฐ ์ ์๊ถ์๊ฐ ์๋ํ ์ฉ๋๋ก๋ง ์ฌ์ฉ๋๋๋ก ๋์งํธ ์ฝํ ์ธ ์ ์์ฑ, ์ ํต, ์ด์ฉ๊น์ง์ ์ ๊ณผ์ ์ ๊ฑธ์ณ ์ฌ์ฉ๋๋ ๋์งํธ ์ฝํ ์ธ ๊ด๋ฆฌ ๋ฐ ๋ณดํธ ๊ธฐ์
- ์๋ณธ ์ฝํ ์ธ ๊ฐ ์๋ ๋ก๊ทธ์ธ ๊ฒฝ์ฐ์๋ ๋์งํธ๋ก ๋ณํํ ์ ํจํค์ ์ ์ํด DRM ํจํค์ง์ ์ํ
- ํจํค์ง ์ํํ๋ฉด ์ฝํ ์ธ ์๋ ์ํธํ๋ ์ ์๊ถ์์ ์ ์์๋ช ์ด ํฌํจ๋๊ณ ์ ์๊ถ์๊ฐ ์ค์ ํ ๋ผ์ด์ ์ค ์ ๋ณด๊ฐ ํด๋ฆฌ์ด๋ง ํ์ฐ์ค Clearing house์ ๋ฑ๋ก
โจ ์ํํธ์จ์ด ์ค์น ๋งค๋ด์ผ
๊ฐ๋ฐ ์ด๊ธฐ์์๋ถํฐ ์ ์ฉ๋ ๊ธฐ์ค์ด๋ ์ฌ์ฉ์๊ฐ ์ํํธ์จ์ด๋ฅผ ์ค์นํ๋ ๊ณผ์ ์ ํ์ํ ๋ด์ฉ์ ๊ธฐ๋กํ ์ค๋ช ์์ ์๋ด์
- ์ฌ์ฉ์ ๊ธฐ์ค
- ์์ฑ ์์ : ๊ธฐ๋ฅ ์๋ณ → UI ๋ถ๋ฅ → ์ค์น ํ์ผ/๋ฐฑ์ ํ์ผ ํ์ธ → Uninstall ์ ์ฐจ ํ์ธ → ์ด์ Case ํ์ธ → ์ต์ข ๋งค๋ด์ผ ์ ์ฉ
โจ ์ํํธ์จ์ด ํจํค์ง์ ํ์ ๊ด๋ฆฌ SCM
Software Configuration Management
์ํํธ์จ์ด ๊ฐ๋ฐ ๊ณผ์ ์์ ์ํํธ์จ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ์ผ๋ จ์ ํ๋
- ๊ด๋ฆฌ ํญ๋ชฉ์๋ ์์ค ์ฝ๋๋ฟ๋ง ์๋๋ผ ๊ฐ์ข ์ ์์, ์ง์นจ์, ๋ถ์์ ๋ฑ์ด ํฌํจ
- ํ์ ๊ด๋ฆฌ๋ฅผ ํตํด ๊ฐ์์ฑ๊ณผ ์ถ์ ์ฑ์ ๋ณด์ฅํจ์ผ๋ก์จ ์ํํธ์จ์ด์ ์์ฐ์ฑ๊ณผ ํ์ง์ ๋์ผ ์ ์๋ค.
- Git, CVS, Subversion
โจ ๊ณต์ ํด๋ ๋ฐฉ์
SCCS, RCS, PVCS, QVCS
โจ ํด๋ผ์ด์ธํธ/์๋ฒ ๋ฐฉ์
๋ฒ์ ๊ด๋ฆฌ ์๋ฃ๊ฐ ์ค์ ์์คํ (์๋ฒ)์ ์ ์ฅ๋์ด ๊ด๋ฆฌ๋๋ ๋ฐฉ์
- ์๋ฒ ์๋ฃ๋ฅผ ๊ฐ๋ฐ์๋ณ๋ก ์์ ์ PC(ํด๋ผ์ด์ธํธ)๋ก ๋ณต์ฌํ์ฌ ์์ ํ ์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์๋ฒ์ ๋ฐ์
- ๋ชจ๋ ๋ฒ์ ๊ด๋ฆฌ๋ ์๋ฒ์์ ์ํ
- CVS, SVN(Subversion), CVSNT, Clear Case, CMVC, Perforce
โจ ๋ถ์ฐ ์ ์ฅ์ ๋ฐฉ์
๋ฒ์ ๊ด๋ฆฌ ์๋ฃ๊ฐ ํ๋์ ์๊ฒฉ ์ ์ฅ์์ ๋ถ์ฐ๊ดธ ๊ฐ๋ฐ์ PC์ ๋ก์ปฌ ์ ์ฅ์์ ํจ๊ป ์ ์ฅ๋์ด ๊ด๋ฆฌ๋๋ ๋ฐฉ์
- Git, GNU arch, DCVS, Bazaar, Mercurial, TeamWare, BitKeeper, Platic SCM
โจ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ
- ํ์ธ Validation : ์ฌ์ฉ์์ ์ ์ฅ์์ ๊ฐ๋ฐํ ์ํํธ์จ์ด๊ฐ ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ง๊ฒ ๊ตฌํ๋์๋์ง ํ์ธ
- ๊ฒ์ฆ Verification : ๊ฐ๋ฐ์์ ์ ์ฅ์์ ๊ฐ๋ฐํ ์ํํธ์จ์ด๊ฐ ๋ช ์ธ์์ ๋ง๊ฒ ๋ง๋ค์ด์ก๋์ง ์ ๊ฒ
[๊ด๋ จ ์ฉ์ด]
- ๊ฒฐํจ ์ง์ค Defect Clustering : ๋๋ถ๋ถ์ ๊ฒฐํจ์ด ์์์ ํน์ ๋ชจ๋์ ์ง์คํด์ ๋ฐ์
- ํ๋ ํ ๋ฒ์น Pareto Principle : ํ ์คํธ๋ก ๋ฐ๊ฒฌ ๋ 80%์ ์ค๋ฅ๋ 20%์ ๋ชจ๋์์ ๋ฐ๊ฒฌ
- ์ด์ถฉ์ ํจ๋ฌ๋ ์ค Pesticide Paradox : ์ด์ถฉ์ ๋ฅผ ์ง์์ ์ผ๋ก ๋ฟ๋ฆฌ๋ฉด ๋ฒ๋ ๊ฐ ๋ด์ฑ์ด ์๊ฒจ์ ์ฃฝ์ง ์๋ ํ์
- ์ค๋ฅ-๋ถ์ฌ์ ๊ถค๋ณ Absence of Errors Fallacy : ์ํํธ์จ์ด์ ๊ฒฐํจ์ ๋ชจ๋ ์ ๊ฑฐํด๋ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ๋ง์กฑ์ํค์ง ๋ชปํ๋ฉด ํด๋น ์ํํธ์จ์ด๋ ํ์ง์ด ๋๋ค๊ณ ๋งํ ์ ์๋ค.
โจ ํ๋ก๊ทธ๋จ ์คํ ์ฌ๋ถ์ ๋ฐ๋ฅธ ํ ์คํธ
- ์ ์ ํ ์คํธ : ํ๋ก๊ทธ๋จ์ ์คํํ์ง ์๊ณ ๋ช ์ธ์๋ ์์ค ์ฝ๋๋ฅผ ๋์์ผ๋ก ๋ถ์ (ex: ์ํฌ์ค๋ฃจ, ์ธ์คํ์ , ์ฝ๋ ๊ฒ์ฌ ๋ฑ)
- ๋์ ํ ์คํธ : ํ๋ก๊ทธ๋จ์ ์คํํ์ฌ ์ค๋ฅ๋ฅผ ์ฐพ๋ ํ ์คํธ (ex: ๋ธ๋๋ฐ์ค ํ ์คํธ, ํ์ดํธ๋ฐ์ค ํ ์คํธ)
โจ ํ ์คํธ ๊ธฐ๋ฐ์ ๋ฐ๋ฅธ ํ ์คํธ
- ๋ช ์ธ ๊ธฐ๋ฐ ํ ์คํธ : ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ์ ๋ํ ๋ช ์ธ๋ฅผ ๋น ์ง์์ด ํ ์คํธ ์ผ์ด์ค๋ก ๋ง๋ค์ด ๊ตฌํํ๊ณ ์๋์ง ํ์ธ
- ๊ตฌ์กฐ ๊ธฐ๋ฐ ํ ์คํธ : ์ํํธ์จ์ด ๋ด๋ถ์ ๋ ผ๋ฆฌ ํ๋ฆ์ ๋ฐ๋ผ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ ํ์ธํ๋ ํ ์คํธ
- ๊ฒฝํ ๊ธฐ๋ฐ ํ ์คํธ : ํ ์คํฐ์ ๊ฒฝํ์ ๊ธฐ๋ฐ์ผ๋ก ์ํํ๋ ํ ์คํธ
โจ ํ์ดํธ๋ฐ์ค ํ ์คํธ
๋ชจ๋์ ์์ ์ฝ๋๋ฅผ ์คํ์ํจ ์ํ์์ ์์ ์ฝ๋์ ๋ ผ๋ฆฌ์ ์ธ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ ์คํธํ์ฌ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ
- ๊ธฐ์ด ๊ฒฝ๋ก ๊ฒ์ฌ : ํ ์คํธ ์ผ์ด์ค ์ค๊ณ์๊ฐ ์ ์ฐจ์ ์ค๊ณ์ ๋ ผ๋ฆฌ์ ๋ณต์ก์ฑ์ ์ธก์ ํ ์ ์๊ฒ ํด์ฃผ๋ ํ ์คํธ ๊ธฐ๋ฒ
- ์ ์ด ๊ตฌ์กฐ ๊ฒ์ฌ : ์กฐ๊ฑด ๊ฒ์ฌ, ๋ฃจํ ๊ฒ์ฌ, ๋ฐ์ดํฐ ํ๋ฆ ๊ฒ์ฌ
โจ ๋ธ๋๋ฐ์ค ํ ์คํธ
์ํํธ์จ์ด๊ฐ ์ํํ ํน์ ๊ธฐ๋ฅ์ ์๊ธฐ ์ํด์ ๊ฐ ๊ธฐ๋ฅ์ด ์์ ํ ์๋๋๋ ๊ฒ์ ์ ์ฆํ๋ ํ ์คํธ (=๊ธฐ๋ฅ ํ ์คํธ)
- ๋์น ๋ถํ ๊ฒ์ฌ
- ๊ฒฝ๊ณ๊ฐ ๋ถ์
- ์์ธ-ํจ๊ณผ ๊ทธ๋ํ ๊ฒ์ฌ
- ์ค๋ฅ ์์ธก ๊ฒ์ฌ
- ๋น๊ต ๊ฒ์ฌ
โจ ๊ฐ๋ฐ ๋จ๊ณ์ ๋ฐ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ
V-๋ชจ๋ธ : ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋จ๊ณ๋ฅผ ์ฐ๊ฒฐํ์ฌ ํํ
โจ ํตํฉ ํ ์คํธ
- ๋น์ ์ง์ ํตํฉ ๋ฐฉ์ : ํ๋ก๊ทธ๋จ ์ ์ฒด๋ฅผ ํ ์คํธ, ๋น ๋ฑ ํตํฉ ํ ์คํธ ๋ฐฉ์
- ์ ์ง์ ํตํฉ ์ฅ์ : ํํฅ์, ์ํฅ์, ํผํฉ์ ํตํฉ ๋ฐฉ์
โจ ์ธ์ ํ ์คํธ
์ฌ์ฉ์๊ฐ ์ง์ ํ ์คํธ
- ์ํ ํ ์คํธ : ๊ฐ๋ฐ์์ ์ฅ์์์ ์ฌ์ฉ์๊ฐ ๊ฐ๋ฐ์ ์์์ ํ ์คํธ ์งํ
- ๋ฒ ํ ํ ์คํธ : ์ต์ข ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์ ์์์ ํ ์คํธ ์งํ (=ํ๋ ํ ์คํ )
โจ ํํฅ์ ํตํฉ ํ ์คํธ
ํ๋ก๊ทธ๋จ ์์ ๋ชจ๋์์ ํ์ ๋ชจ๋ ๋ฐฉํฅ์ผ๋ก ํตํฉํ๋ฉด์ ํ ์คํธ
- ์ฃผ์ ์ ์ด ๋ชจ๋์ ๊ธฐ์ค์ผ๋ก ํ์ฌ ์๋ ๋จ๊ณ๋ก ์ด๋ํ๋ฉด์ ํตํฉ
- ํ ์คํธ ์ด๊ธฐ๋ถํฐ ์ฌ์ฉ์์๊ฒ ์์คํ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค.
- ์์ ๋ชจ๋์์๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค.
โจ ์ํฅ์ ํตํฉ ํ ์คํธ
ํ์ ๋ชจ๋์์ ์์ ๋ชจ๋ ๋ฐฉํฅ์ผ๋ก ํตํฉํ๋ฉด์ ํ ์ค์ค
- ๊ฐ์ฅ ํ์ ๋จ๊ณ์ ๋ชจ๋๋ถํฐ ํตํฉ ๋ฐ ํ ์คํธ๊ฐ ์ํ๋๋ฏ๋ก ์คํ Stub์ ํ์ํ์ง ์์ง๋ง, ํ๋์ ์ฃผ์ ์ ์ด ๋ชจ๋๊ณผ ๊ด๋ จ๋ ์ข ์ ๋ชจ๋์ ๊ทธ๋ฃน์ธ ํด๋ฌ์คํฐCluster๊ฐ ํ์
โจ ํ ์คํธ ๋๋ผ์ด๋ฒ / ํ ์คํธ ์คํ
- ๋๋ผ์ด๋ฒ : ๋ฐ์คํธ ๋์์ ํ์๋ชจ๋ ํธ์ถํ๋ ๋๊ตฌ, ์ํฅ์ ํ ์คํธ, ์ด๋ฏธ ์กด์ฌํ๋ ํ์ ๋ชจ๋๊ณผ ์กด์ฌํ์ง ์๋ ์์ ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค ์ญํ ์ ํจ, ์ํํธ์จ์ด ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉด ๋๋ผ์ด๋ฒ๋ ๋ณธ๋์ ๋ชจ๋๋ก ๊ต์ฒด๋จ
- ์คํ : ์ ์ด ๋ชจ๋์ด ํธ์ถํ๋ ํ๋ชจ๋์ ๊ธฐ๋ฅ์ ๋จ์ํ ์ํํ๋ ๋๊ตฌ, ํํฅ์ ํ ์คํธ, ์ผ์์ ์ผ๋ก ํ์ํ ์กฐ๊ฑด๋ง์ ๊ฐ์ง๊ณ ์์๋ก ์ ๊ณต๋๋ ๊ฐ์ง ๋ชจ๋์ ์ญํ , ์ํ์ฉ ๋ชจ๋์ด๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๋๋ผ์ด๋ฒ๋ณด๋ค ์์ฑํ๊ธฐ ์ฝ๋ค.
โจ ํ ์คํธ ์ค๋ผํด
ํ ์คํธ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ๋จํ๊ธฐ ์ํด ์ฌ์ ์ ์ ์๋ ์ฐธ ๊ฐ์ ๋์ ํ์ฌ ๋น๊ตํ๋ ๊ธฐ๋ฒ ๋ฐ ํ๋
- ์ฐธ ์ค๋ผํด
- ์ํ๋ง ์ค๋ผํด
- ์ถ์ ์ค๋ผํด : ์ํ๋ง ์ค๋ผํด ๊ฐ์ , ํน์ ํ ์คํธ ์ผ์ด์ค ์ ๋ ฅ ๊ฐ์ ๋ํด ๊ธฐ๋ํ๋ ๊ฒฐ๊ณผ ์ ๊ณต ํ ๋๋จธ์ง ์ ๋ ฅ ๊ฐ๋ค์ ๋ํด ์ถ์ ์ผ๋ก ์ฒ๋ฆฌ
- ์ผ๊ด์ฑ ๊ฒ์ฌ ์ค๋ผํด : ํ ์คํธ ์ผ์ด์ค์ ์ํ ์ ๊ณผ ํ์ ๊ฒฐ๊ณผ ๊ฐ์ด ๋์ผํ์ง ํ์ธ
โจ ์ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ๋ถ์
- ์ฒ๋ฆฌ๋ Throughout : ์ผ์ ์๊ฐ ๋ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฒ๋ฆฌํ๋ ์ผ์ ์
- ์๋ต ์๊ฐ Response Time : ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒญ์ ์ ๋ฌํ ์๊ฐ๋ถํฐ ์๋ต์ด ๋์ฐฉํ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
- ๊ฒฝ๊ณผ ์๊ฐ Turn Around Time : ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ ์๋ขฐํ ์๊ฐ๋ถํฐ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
- ์์ ์ฌ์ฉ๋ฅ Resource Usage : ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ขฐํ ์์ ์ ์ฒ๋ฆฌํ๋ ๋์์ CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๋คํธ์ํฌ ์ฌ์ฉ๋ ๋ฑ ์์ ์ฌ์ฉ๋ฅ
โจ ํด๋ฆฐ์ฝ๋
- ๊ฐ๋ ์ฑ
- ๋จ์์ฑ
- ์์กด์ฑ ๋ฐฐ์ : ์ฝ๋๊ฐ ๋ค๋ฅธ ๋ชจ๋์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํ, ์ฝ๋ ๋ณ๊ฒฝ ์ ๋ค๋ฅธ ๋ถ๋ถ์ ์ํฅ์ด ์๋๋ก ์์ฑ
- ์ค๋ณต์ฑ ์ต์ํ
- ์ถ์ํ : ์์ ํด๋์ค/๋ฉ์๋/ํจ์์์๋ ๊ฐ๋ตํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ฑ์ ๋ํ๋ด๊ณ , ์์ธ ๋ด์ฉ์ ํ์ ํด๋์ค/๋ฉ์๋/ํจ์์์ ๊ตฌํํจ
โจ EAI
Enterprise Application Integration
๊ธฐ์ ๋ด ๊ฐ์ข ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ํ๋ซํผ ๊ฐ์ ์ ๋ณด ์ ๋ฌ, ์ฐ๊ณ, ํตํฉ ๋ฑ ์ํธ ์ฐ๋์ด ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์๋ฃจ์
๋น์ง๋์ค ๊ฐ ํตํฉ ๋ฐ ์ฐ๊ณ์ฑ์ ์ฆ๋ → ํจ์จ์ฑ ๋ฐ ๊ฐ ์์คํ ๊ฐ์ ํ์ ์ฑ์ ๋์ธ๋ค.
- Point-to-point : ๋ณ๊ฒฝ ๋ฐ ์ฌ์ฌ์ฉ ์ด๋ ค์
- Hub&Spoke : ๋จ์ผ ์ ์ ์ธ ํ๋ธ ์์คํ ์ ํตํด ๋ฐ์ดํฐ ์ ์กํ๋ ์ค์ ์ง์คํ ๋ฐฉ์, ํ์ฅ/์ ์ง๋ณด์ ์ฉ์ด, ํ๋ธ ์ฅ์ ๋ฐ์ ์ ์์คํ ์ ์ฒด ์ํฅ
- Message Bus (ESB) : ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ด์ ๋ฏธ๋ค์จ์ด๋ฅผ ๋์ด ์ฒ๋ฆฌ, ํ์ฅ์ฑ์ด ๋ฐ์ด๋๋ฉฐ ๋์ฉ๋ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- Hybrid : Hub&Spoke์ Message Bus ํผํฉ ๋ฐฉ์, ๊ทธ๋ฃน ๋ด์์ Hub&Spoke, ๊ทธ๋ฃน ๊ฐ์๋ Message Bus, ํ๊ฐ์ง ๋ฐฉ์์ผ๋ก EAI ๊ตฌํ ๊ฐ๋ฅ, ๋ฐ์ดํฐ ๋ณ๋ชฉ ํ์ ์ต์ํ ๊ฐ๋ฅ
โจ ESB
Enterprise Service Bus
์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ์ฐ๊ณ, ๋ฐ์ดํฐ ๋ณํ, ์น ์๋น์ค ์ง์ ๋ฑ ํ์ค ๊ธฐ๋ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์๋ฃจ์
์ ํ๋ฆฌ์ผ์ด์ ํตํฉ ์ธก๋ฉด์์๋ EAI์ ์ ์ฌํ์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ๋ณด๋ค๋ ์๋น์ค ์ค์ฌ์ ํตํฉ์ ์งํฅ
๋ฒ์ฉ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ์ ๊ฒฐํฉ๋๋ฅผ ์ฝํ๊ฒ ์ ์ง
โจ APM
Application Performance Management/Monitoring
์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ ๊ด๋ฆฌ๋ฅผ ์ํด ์ ์์, ์์ ํํฉ, ํธ๋์ญ์ ์ํ ๋ด์ญ, ์ฅ์ ์ง๋จ ๋ฑ ๋ค์ํ ๋ชจ๋ํฐ๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋๊ตฌ
- ๋ฆฌ์์ค ๋ฐฉ์ : Nagios, Zabbix, Cacti ๋ฑ
- ์๋ํฌ์๋ ๋ฐฉ์ : VisualVM, ์ ๋ํผ, ์ค์นด์ฐํฐ ๋ฑ