๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐Ÿ“œ ์ž๊ฒฉ์ฆ/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

2021๋…„ 2ํšŒ์ฐจ ํ•„๊ธฐ ๊ธฐ์ถœ๋ฌธ์ œ ํ’€์ด

by ๋ฐ”์ฟ„๋ฆฌ 2025. 1. 23.

 

 

2. GoF(Gangs of Four) ๋””์ž์ธ ํŒจํ„ด

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” 23๊ฐœ์˜ ๋””์ž์ธ ํŒจํ„ด์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•œ ๊ฐœ๋…

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋ฐ˜๋ณต์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณต

๋””์ž์ธ ํŒจํ„ด ๋ชฉ์ : ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ, ์žฌ์‚ฌ์šฉ์„ฑ ์ฆ๋Œ€, ํ™•์žฅ ์šฉ์ด์„ฑ, ๊ฐ์ฒด์ง€ํ–ฅ ์›์น™ ๊ฐ•ํ™”

 

[GoF ๋””์ž์ธ ํŒจํ„ด ๋ถ„๋ฅ˜]

1๏ธโƒฃ ์ƒ์„ฑ Creational ํŒจํ„ด: ๊ฐ์ฒด ์ƒ์„ฑ ๊ณผ์ •์„ ์บก์Аํ™”ํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ ๋กœ์ง์ด ์ฝ”๋“œ์— ๋ถ„์‚ฐ๋˜์ง€ ์•Š๋„๋ก ๋•๋Š”๋‹ค.

- Factory Method: ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•˜๋„๋ก ์œ„์ž„

- Abstract Factory: ๊ด€๋ จ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ ์…์„ฑ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

- Singleton: ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•˜๊ณ  ์ „์—ญ์ ์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ

- Builder: ๋ณต์žกํ•œ ๊ฐ์ฒด๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ƒ์„ฑ

- Prototype: ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฐ์ฒด ์ƒ์„ฑ

 

2๏ธโƒฃ ๊ตฌ์กฐ Structural ํŒจํ„ด: ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๋” ํฐ ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑํ•˜๊ณ , ๊ด€๊ณ„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.

- Adapter: ์„œ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฐ๊ฒฐ

- Bridge: ์ถ”์ƒํ™”์™€ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ

- Composite: ๊ฐ์ฒด๋ฅผ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋ถ€๋ถ„-์ „์ฒด ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„

- Decorator: ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€

- Facade: ์„œ๋ธŒ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋‹จ์ˆœํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

- Flyweight: ๊ณต์œ ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์ตœ์†Œํ™”

- Proxy: ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋Œ€๋ฆฌ์ธ ์—ญํ• ์„ ์ˆ˜ํ–‰

 

3๏ธโƒฃ ํ–‰๋™ Behavioral ํŒจํ„ด: ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ์ฑ…์ž„ ๋ถ„๋ฐฐ๋ฅผ ์ •์˜

- Chain of Responsibility: ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๊ฐ์ฒด๋ฅผ ์—ฐ๊ฒฐ๋œ ์ฒด์ธ์œผ๋กœ ๊ตฌ์„ฑ

- Command: ์š”์ฒญ์„ ์บก์Аํ™”ํ•˜์—ฌ ์‹คํ–‰, ์ทจ์†Œ, ๋กœ๊ทธ ๋“ฑ์˜ ์ž‘์—… ์ˆ˜ํ–‰

- Interpreter: ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ํด๋ž˜์Šคํ™”ํ•˜์—ฌ ํ•ด์„

- Iterator: ์ง‘ํ•ฉ ๊ฐ์ฒด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผ

- Mediator: ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ค‘์žฌ

- Memento: ๊ฐ์ฒด ์ƒํƒœ๋ฅผ ์ €์žฅ ๋ฐ ๋ณต์›

- Observer: ๊ฐ์ฒด ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์•Œ๋ฆผ

- State: ๊ฐ์ฒด ์ƒํƒœ์— ๋”ฐ๋ผ ๋™์ž‘ ๋ณ€๊ฒฝ

- Strategy: ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜๊ณ  ๊ต์ฒด ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค๊ณ„

- Template Method: ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ณจ๊ฒฉ์„ ์ •์˜ํ•˜๊ณ  ์„ธ๋ถ€ ๋‚ด์šฉ์€ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„

- Visitor: ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ์—ฐ์‚ฐ ์ถ”๊ฐ€

 

4. ์œ ์Šค์ผ€์ด์Šค

์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ์ž ๋˜๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜ ์š”์†Œ ์ค‘ ํ•˜๋‚˜

์ฃผ๋กœ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋‹จ๊ณ„์—์„œ ์ž‘์„ฑ, ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์ •์˜

- ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ: UML์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„

 

5. CASE

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๊ฑฐ๋‚˜ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ ๋ฐ ๊ธฐ์ˆ ์„ ์ง€์นญํ•œ๋‹ค.

 

8. ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ์š”์†Œ

์‹œ์Šคํ…œ์„ ์ •์˜ํ•˜๊ณ  ์„ค๊ณ„ํ•˜๋ฉฐ ์šด์˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ ๋‹จ์œ„

- ์ž…๋ ฅ Input

- ์ฒ˜๋ฆฌ Process

- ์ถœ๋ ฅ Output

- ํ”ผ๋“œ๋ฐฑ Feedback

- ์ œ์–ด Control

- ๊ฒฝ๊ณ„ Boundary

- ํ™˜๊ฒฝ Environment

- ์ž์› Resources

- ๋ชฉ์  Objective

- ์ƒํ˜ธ์ž‘์šฉ Interaction

 

10. ์š”๊ตฌ์‚ฌํ•ญ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

(1) ์š”๊ตฌ์‚ฌํ•ญ ๋„์ถœ: ์š”๊ตฌ์‚ฌํ•ญ์„ ์‹๋ณ„ํ•˜๊ณ  ์ˆ˜์ง‘

(2) ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„: ์ˆ˜์ง‘ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฒ€ํ† , ์ •๋ฆฌ, ์šฐ์„ ์ˆœ์œ„ ์„ค์ •

(3) ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธํ™”: ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”

(4) ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ ๋ฐ ๊ฒ€์ฆ: ์š”๊ตฌ์‚ฌํ•ญ์˜ ์ •ํ™•์„ฑ๊ณผ ํƒ€๋‹น์„ฑ์„ ๊ฒ€์ฆ

(5) ์š”๊ตฌ์‚ฌํ•ญ ๊ด€๋ฆฌ: ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€๊ฒฝ ๋ฐ ์ถ”์ 

 

18. UML(Unified Modeling Language) ๋‹ค์ด์–ด๊ทธ๋žจ

์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์™€ ๋™์ž‘์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์–ธ์–ด

(1) ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ: ์‹œ์Šคํ…œ์˜ ์ •์ ์ธ ๊ตฌ์กฐ, ์ฆ‰ ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

- ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

- ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ

- ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ

- ๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ

- ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ

- ๋ณตํ•ฉ ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ

- ํ”„๋กœํŒŒ์ผ ๋‹ค์ด์–ด๊ทธ๋žจ

 

(2) ํ–‰๋™ ๋‹ค์ด์–ด๊ทธ๋žจ: ์‹œ์Šคํ…œ์˜ ๋™์ž‘, ์ฆ‰ ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๋ชจ๋ธ๋ง

- ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

- ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

- ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ

- ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ

- ํ™œ๋™ ๋‹ค์ด์–ด๊ทธ๋žจ

- ํƒ€์ด๋ฐ ๋‹ค์ด์–ด๊ทธ๋žจ

- ์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ

 

20. ์บก์Аํ™” vs ์ •๋ณด ์€๋‹‰

- ์บก์Аํ™”: ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์ž‘๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์˜ ๋…๋ฆฝ๋œ ๋‹จ์œ„๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ์ดˆ์ ์ด ์žˆ๋‹ค.

- ์ •๋ณด ์€๋‹‰: ๋ฐ์ดํ„ฐ์™€ ๊ตฌํ˜„์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ณด๋กœํ•˜๋Š”๋ฐ ์ค‘์ ์„ ๋‘”๋‹ค.

 

28. ๋ฒ„๋ธ” ์ •๋ ฌ

์ธ์ ‘ํ•œ ๋‘ ๊ฐœ์˜ ์š”์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ, ํ•„์š”์— ๋”ฐ๋ผ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๋ฉฐ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ฐ Pass๋Š” ๋ฐฐ์—ด์„ ํ•œ ๋ฒˆ ์ „์ฒด์ ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ, ํฐ ๊ฐ’์„ ๋’ค๋กœ ์ด๋™์‹œํ‚จ๋‹ค.

 

์˜ˆ) ์ฃผ์–ด์ง„ ๋ฐฐ์—ด: 9, 6, 7, 3, 5

(1) Pass 1

- 9์™€ 6 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ → 6, 9, 7, 3, 5

- 9์™€ 7 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ → 6, 7, 9, 3, 5

- 9์™€ 3 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ → 6, 7, 3, 9, 5

- 9์™€ 5 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ → 6, 7, 3, 5, 9

Pass 1 ๊ฒฐ๊ณผ: 6, 7, 3, 5, 9

 

(1) Pass 2

- 6๊ณผ 7 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ ์—†์Œ → 6, 7, 3, 5, 9

- 7๊ณผ 3 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ → 6, 3, 7, 5, 9

- 7๊ณผ 5 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ → 6, 3, 5, 7, 9

- 7๊ณผ 9 ๋น„๊ต → ์ž๋ฆฌ ๊ตํ™˜ ์—†์Œ → 6, 3, 5, 7, 9

 

Pass 2 ๊ฒฐ๊ณผ: 6, 3, 5, 7, 9

 

31. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์„ (Best Case) ํ‰๊ท (Average Case) ์ตœ์•…(Worst Case) ๊ณต๊ฐ„ ๋ณต์žก๋„ ํŠน์ง•
๋ฒ„๋ธ” ์ •๋ ฌ O(N) O(N²) O(N²) O(1) ๋‹จ์ˆœํ•˜์ง€๋งŒ ๋น„ํšจ์œจ์ , ์ž‘์€ ๋ฐ์ดํ„ฐ์— ์ ํ•ฉ
์„ ํƒ ์ •๋ ฌ O(N²) O(N²) O(N²) O(1) ๊ตํ™˜ ํšŸ์ˆ˜๊ฐ€ ์ ์Œ, ์•ˆ์ • ์ •๋ ฌ ์•„๋‹˜
์‚ฝ์ž… ์ •๋ ฌ O(N) O(N²) O(N²) O(1) ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฑฐ์˜ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ ํšจ์œจ์ , ์•ˆ์ • ์ •๋ ฌ
ํ€ต ์ •๋ ฌ O(N log N) O(N log N) O(N²) O(log N) ํ‰๊ท ์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฆ„, ๋ถˆ์•ˆ์ • ์ •๋ ฌ
๋ณ‘ํ•ฉ ์ •๋ ฌ O(N log N) O(N log N) O(N log N) O(N) ์•ˆ์ • ์ •๋ ฌ, ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•„์š”
ํž™ ์ •๋ ฌ O(N log N) O(N log N) O(N log N) O(1) ๋ถˆ์•ˆ์ • ์ •๋ ฌ, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ 
๊ณ„์ˆ˜ ์ •๋ ฌ O(N + K) O(N + K) O(N + K) O(N + K) ๋ฐ์ดํ„ฐ ๋ฒ”์œ„๊ฐ€ ์ž‘๊ณ  ์ •์ˆ˜ํ˜•์ผ ๋•Œ ๋งค์šฐ ํšจ์œจ์ 
๊ธฐ์ˆ˜ ์ •๋ ฌ O(N × d) O(N × d) O(N × d) O(N + K) ์•ˆ์ • ์ •๋ ฌ, ์ˆซ์ž๋‚˜ ๋ฌธ์ž์—ด์— ์ ํ•ฉ
์‰˜ ์ •๋ ฌ O(N log N) O(N^(3/2)) O(N²) O(1) ์‚ฝ์ž… ์ •๋ ฌ ๊ธฐ๋ฐ˜, ๊ฐ„๊ฒฉ์„ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ •๋ ฌ

 

46. ๋ณ‘ํ–‰์ œ์–ด ๊ธฐ๋ฒ•

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ๋™์‹œ์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•

- ๋กœํ‚น ๊ธฐ๋ฒ•: ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ฝ๊ธฐ ์ „์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด Lock์„ ์„ค์ •ํ•˜์—ฌ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œ์–ด

- ํƒ€์ž„ ์Šคํƒฌํ”„ ๊ธฐ๋ฒ•: ๊ฐ ํŠธ๋žœ์žญ์…˜์— ํƒ€์ž„์Šคํƒฌํ”„(๊ณ ์œ  ์‹œ๊ฐ„๊ฐ’)๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์˜ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •, ํŠธ๋žœ์žญ์…˜ ๊ฐ„ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์œ ์ง€, ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •ํ•˜๋ฏ€๋กœ ๊ต์ฐฉ ์ƒํƒœ(Deadlock)๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ

- ๋‹ค์ค‘ ๋ฒ„์ „ ๊ธฐ๋ฒ•: ๋ฐ์ดํ„ฐ์˜ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์œ ์ง€ํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋‹ค๋ฅธ ๋ฒ„์ „์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ

โœ… ์‹œ๋ถ„ํ•  ๊ธฐ๋ฒ•: CPU๋ฅผ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉํ•˜๋Š” ์šด์˜ ์ฒด์ œ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ → ์ด๋Š” ๋ณ‘ํ–‰์ œ์–ด ๊ธฐ๋ฒ•์ด ์•„๋‹ˆ๋ผ ์šด์˜ ์ฒด์ œ์˜ ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง ๊ธฐ๋ฒ•์— ํ•ด๋‹น

 

56. ๋ณ‘๋ ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™˜๊ฒฝ ์ค‘ ์ˆ˜ํ‰ ๋ถ„ํ• ์— ํ™œ์šฉ๋˜๋Š” ๋ถ„ํ•  ๊ธฐ๋ฒ•

: ๋ฒ”์œ„ ๋ถ„ํ• , ํ•ด์‹œ ๋ถ„ํ• , ๋ฆฌ์ŠคํŠธ ๋ถ„ํ• , ์กฐํ•ฉ ๋ถ„ํ• , ๋ผ์šด๋“œ-๋กœ๋นˆ ๋ถ„ํ• , ํ‚ค ๋ถ„ํ• 

 

61. ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์—์„œ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์งˆ์ˆ˜๋ก ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ

- ํŽ˜์ด์ง€ ์ˆ˜ ์ฆ๊ฐ€

- ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํฌ๊ธฐ ์ฆ๊ฐ€: ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๊ฐ ํŽ˜์ด์ง€์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. ํŽ˜์ด์ง€ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ๋„ ์ฆ๊ฐ€ํ•˜๋ฉฐ, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

- ๋‚ด๋ถ€ ๋‹จํŽธํ™” ๊ฐ์†Œ

- I/O ์ž‘์—… ์ฆ๊ฐ€

 

67. ์‘์ง‘๋„

(๋‚ฎ) ์šฐ์—ฐ์  → ๋…ผ๋ฆฌ์  → ์‹œ๊ฐ„์  → ์ ˆ์ฐจ์  → ํ†ต์‹ ์  → ์ˆœ์ฐจ์  → ๊ธฐ๋Šฅ์  (๋†’)

 

* ๊ฒฐํ•ฉ๋„

(๋†’) ๋‚ด์šฉ Content → ๊ณตํ†ต Common → ์™ธ๋ถ€ External → ์ œ์–ด Control → ์Šคํƒฌํ”„ Stamp → ์ž๋ฃŒ Data (๋‚ฎ)

 

69. JAVA

public class Operator {
    public static void main(String[] args) {
        int x = 5, y = 0, z = 0;
        y = x++;         // ํ›„์œ„ ์ฆ๊ฐ€ ์—ฐ์‚ฐ: x์˜ ํ˜„์žฌ ๊ฐ’์„ y์— ๋Œ€์ž…ํ•œ ํ›„ x๋ฅผ 1 ์ฆ๊ฐ€
        z = --x;         // ์ „์œ„ ๊ฐ์†Œ ์—ฐ์‚ฐ: x๋ฅผ 1 ๊ฐ์†Œํ•œ ํ›„ ๊ทธ ๊ฐ’์„ z์— ๋Œ€์ž…
        System.out.print(x + ", " + y + ", " + z);
    }
}

 

(1) ์ดˆ๊ธฐ๊ฐ’

x = 5, y = 0, z = 0

(2) y = x++;

- x์˜ ํ˜„์žฌ ๊ฐ’(5)์„ y์— ๋Œ€์ž… → y = 5

- x๋ฅผ 1 ์ฆ๊ฐ€ → x = 6

๊ฒฐ๊ณผ: x = 6, y = 5

(3) z = --x;

- x๋ฅผ 1 ๊ฐ์†Œ → x = 5

- ๊ฐ์†Œ๋œ ๊ฐ’์„ z์— ๋Œ€์ž… → z = 5

๊ฒฐ๊ณผ: x = 5, z = 5

โœจ ์ตœ์ข…๊ฐ’ x = 5, y = 5, z = 5

 

79. TCP

Transmission Control Protocol

์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

์ฃผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ ๋ณด์žฅ, ํ๋ฆ„ ์ œ์–ด, ์˜ค๋ฅ˜ ์ œ์–ด ๋“ฑ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

- ์ข…๋‹จ ๊ฐ„(end-to-end) ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ์œ„์—์„œ ๋™์ž‘ (์ธ์ ‘ํ•œ ๋…ธ๋“œ ์‚ฌ์ด์˜ ํ”„๋ ˆ์ž„ ์ „์†ก → ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์˜ ์—ญํ• , ์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„)

- ํ๋ฆ„ ์ œ์–ด(Flow Control)์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

- ์ „์ด์ค‘(Full Duplex) ๋ฐฉ์‹์˜ ์–‘๋ฐฉํ–ฅ ๊ฐ€์ƒํšŒ์„ ์„ ์ œ๊ณต

- ์ „์†ก ๋ฐ์ดํ„ฐ์™€ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ฐ์ดํ„ฐ ํŒจํ‚ท์— ACK(์‘๋‹ต)๋ฅผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ „์†ก ๋ฐ์ดํ„ฐ์™€ ACK๋ฅผ ํ•จ๊ป˜ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ Piggybacking ์ด๋ผ๊ณ  ํ•œ๋‹ค.)

 

80. CSMA/CA ์™€ CSMA/CD

ํŠน์ง• CSMA/CA CSMA/CD
์˜๋ฏธ ์ถฉ๋Œ ํšŒํ”ผ (Collision Avoidance) ์ถฉ๋Œ ๊ฐ์ง€ (Collision Detection)
์‚ฌ์šฉ ํ™˜๊ฒฝ ๋ฌด์„  ๋„คํŠธ์›Œํฌ (Wi-Fi) ์œ ์„  ๋„คํŠธ์›Œํฌ (Ethernet)
์ถฉ๋Œ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์ „์— ํšŒํ”ผ ์ถฉ๋Œ ๋ฐœ์ƒ ํ›„ ๊ฐ์ง€ํ•˜์—ฌ ์ฒ˜๋ฆฌ
์ž‘๋™ ๋ฐฉ์‹ ๋งค์ฒด๊ฐ€ ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ๋Œ€๊ธฐ ๋ฐ ์ „์†ก ๋งค์ฒด๊ฐ€ ๋น„์–ด ์žˆ๋Š” ์ง€ ํ™•์ธ ํ›„ ์ „์†ก, ์ถฉ๋Œ ๋ฐœ์ƒ ์‹œ ๊ฐ์ง€

 

82. ์นจ์ž… ์ฐจ๋‹จ ์‹œ์Šคํ…œ(๋ฐฉํ™”๋ฒฝ)

 

 

→ Screened Subnet ์Šคํฌ๋ฆฐ๋“œ ์„œ๋ธŒ๋„ท

: ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ(์ธํ„ฐ๋„ท)์™€ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์‚ฌ์ด์— ๋‘ ๊ฐœ์˜ ๋ผ์šฐํ„ฐ์™€ ์ค‘๊ฐ„ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‘๋Š” ๋ฐฉ์‹

: DMZ๋Š” ์™ธ๋ถ€์™€ ๋‚ด๋ถ€์˜ ์ค‘๊ฐ„ ์ง€์ ์œผ๋กœ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ณดํ˜ธ

 

89. OSPF (Open Shortest Path First)

๋งํฌ ์ƒํƒœ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ, IP ๋„คํŠธ์›Œํฌ์—์„œ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

- ๋„คํŠธ์›Œํฌ ๋ณ€ํ™”์— ์‹ ์†ํ•˜๊ฒŒ ๋Œ€์ฒ˜

- ๋ฉ€ํ‹ฐ์บ์ŠคํŒ… ์ง€์›

- ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰์— Dijkstra ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ

 

90. SAN (Storage Area Network)

- ๋„คํŠธ์›Œํฌ ์ƒ์— ๊ด‘์ฑ„๋„ ์Šค์œ„์น˜์˜ ์ด์ ์ธ ๊ณ ์† ์ „์†ก๊ณผ ์žฅ๊ฑฐ๋ฆฌ ์—ฐ๊ฒฐ ๋ฐ ๋ฉ€ํ‹ฐ ํ”„๋กœํ† ์ฝœ ๊ธฐ๋Šฅ์„ ํ™œ์šฉ

- ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๊ธฐ์ข…๋“ค์ด ๋„คํŠธ์›Œํฌ์ƒ์—์„œ ๋™์ผ ์ €์žฅ์žฅ์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ €์žฅ์žฅ์น˜๋‚˜ ๋ฐฑ์—… ์žฅ๋น„๋ฅผ ๋‹จ์ผํ™”์‹œํ‚จ ์‹œ์Šคํ…œ

 

+ MBR (Master Boot Record): ํ•˜๋“œ๋””์Šคํฌ์˜ ๋ถ€ํŠธ ์„นํ„ฐ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ, ์šด์˜ ์ฒด์ œ๋ฅผ ๋ถ€ํŒ…ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์ดˆํ•จ

+ NAC (Network Access Control): ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ ์ œ์–ด ๊ธฐ์ˆ , ์‚ฌ์šฉ์ž๋‚˜ ๋””๋ฐ”์ด์Šค๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ๋•Œ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ์„ ๊ด€๋ฆฌ

+ NIC (Network Interface Card): ์ปดํ“จํ„ฐ์˜ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜, ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค.

 

92. ์†Œํ”„ํŠธ์›จ์–ด ๋น„์šฉ ์‚ฐ์ • ๋ชจ๋ธ

(1) PUTNAM: Rayleigh ๊ณก์„ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ์ธ๋ ฅ๊ณผ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ์˜ˆ์ธกํ•˜๋Š” ๋น„์šฉ ์‚ฐ์ • ๋ชจ๋ธ

(2) COCOMO (Constructive Cost Model): ํ”„๋กœ์ ํŠธ๋ฅผ Organic, Semi-Detached, Embedded์˜ ์„ธ ๊ฐ€์ง€ ๊ฐœ๋ฐœ ์œ ํ˜•์œผ๋กœ ๊ตฌ๋ถ„

- Organic: ์†Œ๊ทœ๋ชจ, ๋‹จ์ˆœํ•œ ํ”„๋กœ์ ํŠธ (๊ฒฝํ—˜์ด ๋งŽ์€ ํŒ€)

- Semi-Detached: ์ค‘๊ฐ„ ๊ทœ๋ชจ, ๋ณต์žก๋„๊ฐ€ ์ค‘๊ฐ„์ธ ํ”„๋กœ์ ํŠธ

- Embedded: ๋Œ€๊ทœ๋ชจ, ๊ณ ๋„์˜ ์ œ์•ฝ ์กฐ๊ฑด์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ

(3) FP (Function Point): ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ๋Šฅ(์ž…๋ ฅ, ์ถœ๋ ฅ, ํŒŒ์ผ, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์ธก์ •ํ•˜์—ฌ ๋น„์šฉ์„ ์‚ฐ์ •ํ•˜๋Š” ๋ชจ๋ธ

(4) SLIM (Software Life Cycle Management): ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„, ๋…ธ๋ ฅ, ํ’ˆ์งˆ ๋“ฑ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฝํ—˜์  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋น„์šฉ ์‚ฐ์ • ๋ชจ๋ธ