๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐฑ์—”๋“œ

์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ - 22๋…„ 1ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ ์˜ค๋‹ต๋…ธํŠธ - 1ํŽธ

by cook_code 2025. 5. 5.

๐Ÿ—‚๏ธ ๋ชฉ์ฐจ

1. ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„
2. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ
3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•
4. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ
5. ์ •๋ณด์‹œ์Šคํ…œ ๊ตฌ์ถ• ๊ด€๋ฆฌ
 

๐Ÿšฉ ์ ์ˆ˜๊ณ„์‚ฐ 

๊ฐ ๊ณผ๋ชฉ 20๋ฌธ์ œ์”ฉ, ์ด 5๊ณผ๋ชฉ 100๋ฌธ์ œ์ด๋ฉฐ, ๋ฌธ์ œ๋‹น 1์ ์œผ๋กœ ๊ณ„์‚ฐ.
์ด์ : 18 + 13 + 15 + 12 + 16 = 74์ 
โ€ป ํ•ฉ๊ฒฉ ๊ธฐ์ค€์€ ๋ณดํ†ต ๊ณผ๋ฝ ์—†์ด 60์  ์ด์ƒ, ์ฆ‰ ๊ฐ ๊ณผ๋ชฉ 8์  ์ด์ƒ์ด๋ฉฐ ์ „์ฒด 60์  ์ด์ƒ.
 


 โญ1. ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ (18/20)

 ๐Ÿ“Œ[05] ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ๋ฒ•๊ณผ ์ƒํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋น„๊ต ์„ค๋ช…์œผ๋กœ ๊ฐ€์žฅ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

- ๋ฌธ์ œ ์œ ํ˜• :  ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ๋ฒ• vs ์ƒํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ๋ฒ•
- ๋‚ด ๋‹ต์•ˆ : ํ•˜ํ–ฅ์‹ ์„ค๊ณ„์—์„œ ๋ ˆ๋ฒจ์ด ๋‚ฎ์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ์„ค๊ณ„ ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ํ•„์š”ํ•˜๋‹ค.
- ์ •๋‹ต : ์ƒํ–ฅ์‹ ์„ค๊ณ„์—์„œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ด๋ฏธ ์„ฑ๋ฆฝ๋˜์–ด์žˆ์ง€ ์•Š๋”๋ผ๊ณ  ๊ธฐ๋Šฅ ์ถ”๊ฐ€๊ฐ€ ์‰ฝ๋‹ค.
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ๊ฐœ๋… ํ˜ผ๋™ : ํ•˜ํ–ฅ์‹ ์„ค๊ณ„๋Š” ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ์ ์ฐจ ์„ธ๋ถ€๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๋ฐฉ์‹์ด๋ฏ€๋กœ, ์ดˆ๊ธฐ์—๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ.
- ๊ธฐ์–ต ์˜ค๋ฅ˜ : ์ƒํ–ฅ์‹ ์„ค๊ณ„์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ชจ๋“ˆํ™”๋œ ๊ตฌ์กฐ๋กœ ์ธํ•ด ์œ ์—ฐํ•œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ ์„ ๊ฐ„๊ณผํ•จ.
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ๊ฐ ์„ค๊ณ„ ๊ธฐ๋ฒ•์˜ ํ๋ฆ„๊ณผ ์žฅ๋‹จ์ ์„ ๋„์‹ํ™”ํ•ด์„œ ์•”๊ธฐ
- ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋น„๊ตํ‘œ๋ฅผ ์ž์ฃผ ๋ณต์Šต
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ 

๊ตฌ๋ถ„ ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ์ƒํ–ฅ์‹ ์„ค๊ณ„
์„ค๊ณ„ ์ˆœ์„œ ๊ฐœ๋… -> ์„ธ๋ถ€ ์„ธ๋ถ€ -> ํ†ตํ•ฉ
์ดˆ๊ธฐ ์ •๋ณด ์ „์ฒด ๊ตฌ์กฐ ์œ„์ฃผ ์„ธ๋ถ€ ๊ธฐ๋Šฅ ์ค‘์‹ฌ
์žฅ์  ์ „์ฒด ํ†ต์ œ ์šฉ์ด ๋ชจ๋“ˆ ๋‹จ์œ„ ๊ฐœ๋ฐœ/์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด
๋‹จ์  ์„ธ๋ถ€ ๊ตฌํ˜„ ๋ˆ„๋ฝ ๊ฐ€๋Šฅ ์ „์ฒด ๊ตฌ์กฐ ํŒŒ์•… ์–ด๋ ค์›€
๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ œํ•œ์  ์ƒ๋Œ€์ ์œผ๋กœ ์œ ์—ฐ

 

๐Ÿ“Œ[19] ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํ“จํ„ฐ์˜ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ์ค„์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์€?

- ๋ฌธ์ œ ์œ ํ˜• : FEP (Front-End Processor) ๊ฐœ๋…
- ๋‚ด ๋‹ต์•ˆ : ๋‹ต ์ฒดํฌ x
- ์ •๋‹ต : FEP (Front-End Processor)
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ์šฉ์–ด ์ƒ์†Œํ•จ : FEP์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์•”๊ธฐํ•˜์ง€ ์•Š์•„์„œ ๋ฌธ์ œ ์˜๋„๋ฅผ ํŒŒ์•… ๋ชปํ•จ.
- ๋ฌธ์žฅ ๊ตฌ์กฐ ์ดํ•ด ๋ถ€์กฑ : "๋ฏธ๋ฆฌ ์ฒ˜๋ฆฌํ•˜์—ฌ ํ”„๋กœ์„ธ์„œ์˜ ์‹œ๊ฐ„์„ ์ค„์ธ๋‹ค"๋Š” ํžŒํŠธ๋ฅผ ๋†“์นจ.
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ(FEP, ๋ฐฑ์—”๋“œ, ์ปค๋„ ๋“ฑ) ๊ด€๋ จ ๊ธฐ๋Šฅ ์ค‘์‹ฌ ์šฉ์–ด ์•”๊ธฐ
- ์‚ฌ์ „ ์ฒ˜๋ฆฌ → FEP ์ฒ˜๋Ÿผ ๊ธฐ๋Šฅ → ์šฉ์–ด ์—ฐ๊ฒฐ ๋ฐฉ์‹์œผ๋กœ ์—ฐ์Šต
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ 

์šฉ์–ด ์ •์˜
FEP
(Front-End Processor)
๋ฉ”์ธ ํ”„๋กœ์„ธ์„œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์ „์— 
์ฒ˜๋ฆฌํ•˜๋Š” ํ•˜๋“œ์›จ์–ด ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
๋ฐฑ์—”๋“œ ํ”„๋กœ์„ธ์„œ ์ฃผ๋กœ ์ถœ๋ ฅ ๋˜๋Š” ๋ณด์กฐ ์ฒ˜๋ฆฌ ๋‹ด๋‹น
์ปค๋„ ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ, ์ž์› ๊ด€๋ฆฌ ๋ฐํ”„๋กœ์„ธ์Šค ์ œ์–ด 
์Šคํ’€๋ง ๋ฐ์ดํ„ฐ ์ž„์‹œ ์ €์žฅ์œผ๋กœ ์ž…์ถœ๋ ฅ ์žฅ์น˜ ๊ฐ„ ์ฒ˜๋ฆฌ ์†๋„ ์ฐจ์ด ํ•ด๊ฒฐ

 

โญ2. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ (13/20)

๐Ÿ“Œ[22] ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—์„œ ํ…Œ์ŠคํŠธ์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ํ•˜์œ„ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๊ณ ,ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐ€์ƒ์˜ ๋ชจ๋“ˆ๋กœ ์ƒํ–ฅ์‹ ํ…Œ์ŠคํŠธ์— ํ•„์š”ํ•œ ๊ฒƒ์€? 

- ๋ฌธ์ œ ์œ ํ˜• : ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ตฌ์„ฑ์š”์†Œ 
- ๋‚ด ๋‹ต์•ˆ : ํ…Œ์ŠคํŠธ ์Šคํ… 
- ์ •๋‹ต : ํ…Œ์ŠคํŠธ ๋“œ๋ผ์ด๋ฒ„  
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ์šฉ์–ด ํ˜ผ๋™ : ์Šคํ…๊ณผ ๋“œ๋ผ์ด๋ฒ„์˜ ์—ญํ• ์„ ๋ฐ˜๋Œ€๋กœ ๊ธฐ์–ตํ•จ
- ์ƒํ–ฅ์‹ ํ…Œ์ŠคํŠธ ๊ตฌ์กฐ ๋ฏธ์ˆ™์ง€ : ์ƒํ–ฅ์‹ ํ…Œ์ŠคํŠธ๋Š” ํ•˜์œ„ ๋ชจ๋“ˆ → ์ƒ์œ„ ๋ชจ๋“ˆ ๋ฐฉํ–ฅ์ด๋ฏ€๋กœ, ํ•˜์œ„ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๋Š” ์ฃผ์ฒด(๋“œ๋ผ์ด๋ฒ„)๊ฐ€ ํ•„์š”ํ•จ
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ๋“œ๋ผ์ด๋ฒ„ : ํ•˜์œ„ ๋ชจ๋“ˆ ํ˜ธ์ถœ / ์Šคํ… : ์ƒ์œ„ ๋ชจ๋“ˆ ํ˜ธ์ถœ๋กœ ์•”๊ธฐ 
- ์•„๋ž˜ ๋น„๊ตํ‘œ ์ž์ฃผ ๋ณต์Šต 
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ 

์šฉ์–ด ์ •์˜ ์ฃผ์š” ํŠน์ง•
ํ…Œ์ŠคํŠธ ์Šคํ… ์ƒ์œ„ ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ ์‹œ, ํ˜ธ์ถœ๋˜๋Š” ํ•˜์œ„ ๋ชจ๋“ˆ์„ ์ž„์‹œ๋กœ ๊ตฌํ˜„ํ•œ ๊ฐ€์งœ ๋ชจ๋“ˆ ํ•˜ํ–ฅ์‹ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ
ํ…Œ์ŠคํŠธ ๋“œ๋ผ์ด๋ฒ„ ํ•˜์œ„ ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ ์‹œ, ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ€์งœ ์ƒ์œ„ ๋ชจ๋“ˆ  ์ƒํ–ฅ์‹ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ
ํ…Œ์ŠคํŠธ ์ŠˆํŠธ ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ, ์ „์ฒด ์‹œ์Šคํ…œ ๋˜๋Š” ๋ชจ๋“ˆ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ชจ์Œ ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ์‹œ ์ž์ฃผ ์‚ฌ์šฉ๋จ
ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ํŠน์ • ์กฐ๊ฑด, ์ž…๋ ฅ, ๊ธฐ๋Œ€ ๊ฒฐ๊ณผ๋ฅผ ๋ช…์‹œํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋™์ž‘์„ ๊ฒ€์ฆํ•˜๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ•ญ๋ชฉ ํ…Œ์ŠคํŠธ ๋ชฉ์ , ์ž…๋ ฅ, ๊ธฐ๋Œ€ ๊ฒฐ๊ณผ ๋ช…์‹œ ํ•„์ˆ˜

 

๐Ÿ“Œ[23] ์Šคํƒ์— ๋Œ€ํ•œ ์˜ณ์€ ๋‚ด์šฉ์œผ๋กœ๋งŒ ๋‚˜์—ดํ•œ ๊ฒƒ์€?

ใ„ฑ. FIFO ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค.
ใ„ด. ์ˆœ์„œ ๋ฆฌ์ŠคํŠธ์˜ ๋’ค์—์„œ ๋…ธ๋“œ๊ฐ€ ์‚ฝ์ž…๋˜๋ฉฐ, ์•ž์—์„œ ๋…ธ๋“œ๊ฐ€ ์ œ๊ฑฐ๋œ๋‹ค.
ใ„ท. ์„ ํ˜• ๋ฆฌ์ŠคํŠธ์˜ ์–‘์ชฝ ๋์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.
ใ„น. ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ, ์„œ๋ธŒ๋ฃจํ‹ด ํ˜ธ์ถœ ์ž‘์—… ๋“ฑ์— ์‘์šฉ๋œ๋‹ค.

- ๋ฌธ์ œ ์œ ํ˜• : ์Šคํƒ(Stack) ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋… ๋ฐ ์‘์šฉ
- ๋‚ด ๋‹ต์•ˆ : ใ„ฑ, ใ„ด
- ์ •๋‹ต : ใ„น
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ๊ธฐ๋ณธ ๊ฐœ๋… ํ˜ผ๋™ : ์Šคํƒ์€ LIFO ์ธ๋ฐ, ใ„ฑ์€ FIFO๋กœ ์˜ค๋‹ต
- ใ„ด, ใ„ท์€ ํ ๋˜๋Š” ๋ฑ(๋ฐํฌ) ์— ํ•ด๋‹นํ•˜๋Š” ์„ค๋ช…์ž„
- ใ„น๋งŒ์ด ์Šคํƒ์˜ ํŠน์ง•์„ ์ •ํ™•ํžˆ ์„ค๋ช… — ์Šคํƒ์€ ํ›„์ž…์„ ์ถœ ๊ตฌ์กฐ๋กœ ์ธํ„ฐ๋ŸฝํŠธ, ์„œ๋ธŒ๋ฃจํ‹ด ๋ณต๊ท€ ์ฃผ์†Œ ์ €์žฅ ๋“ฑ์— ์‚ฌ์šฉ
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง•์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜์—ฌ ์•”๊ธฐ
 
- ์Šคํƒ(Stack)

# LIFO
# Top
# Push/Pop

- ๋น„์œ : ์ ‘์‹œ ์Œ“๊ธฐ  
- ํฌ์ธํŠธ: ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ด
- ์‘์šฉ: ํ•จ์ˆ˜ ๋ณต๊ท€ ์ฃผ์†Œ ์ €์žฅ, ์ธํ„ฐ๋ŸฝํŠธ ๋ณต๊ท€

- ํ(Queue) 

# FIFO
# Front/Rear
# Enqueue/Dequeue

- ๋น„์œ : ์ค„ ์„œ๊ธฐ
- ํฌ์ธํŠธ: ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ด
- ์‘์šฉ: ์ธ์‡„ ๋Œ€๊ธฐ์—ด, ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ค„๋ง

- ๋ฑ(Deque) 

# ์–‘๋ฐฉํ–ฅ
# Front/Rear
# ์–‘์ชฝ ์‚ฝ์ž…/์‚ญ์ œ

- ๋น„์œ : ์–‘๋ฌธ ๋ƒ‰์žฅ๊ณ 
- ํฌ์ธํŠธ: ์œ ์—ฐํ•œ ์ž๋ฃŒ ์‚ฝ์ž…/์‚ญ์ œ ์ฒ˜๋ฆฌ
- ์‘์šฉ: ์บ์‹œ ์ฒ˜๋ฆฌ, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ 

์ž๋ฃŒ๊ตฌ์กฐ ์‚ฝ์ž… ์œ„์น˜ ์‚ญ์ œ ์œ„์น˜  ํŠน์ง• ์ฃผ์š” ์‘์šฉ ๋ถ„์•ผ
์Šคํƒ(Stack)  TOP TOP LIFO, ํ•œ์ชฝ ๋์—์„œ ์‚ฝ์ž…/์‚ญ์ œ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ 
 ํ(Queue)  REAR FRONT FIFO, ํ•œ์ชฝ์—์„œ ์‚ฝ์ž…,
๋‹ค๋ฅธ ์ชฝ์—์„œ ์‚ญ์ œ
์ž‘์—… ์Šค์ผ€์ค„๋ง, ๋Œ€๊ธฐ์—ด ์ฒ˜๋ฆฌ
๋ฑ(Deque) FRONT/REAR FRONT/REAR ์–‘์ชฝ์—์„œ ์‚ฝ์ž…/์‚ญ์ œ ๊ฐ€๋Šฅ ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

 

๐Ÿ“Œ[27] ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๊ณตํ•™์˜ ์ฃผ์š” ํ™œ๋™ ์ค‘ ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ  ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€?

- ๋ฌธ์ œ ์œ ํ˜• : ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๊ณตํ•™ - ํ™œ๋™ ๊ตฌ๋ถ„
- ๋‚ด ๋‹ต์•ˆ : Restructuring
- ์ •๋‹ต : Migration
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- Restructuring๊ณผ Migration์˜ ์ •์˜ ํ˜ผ๋™
- ๊ตฌ์กฐ ๊ฐœ์„ ๊ณผ ํ™˜๊ฒฝ ๋ณ€ํ™˜์˜ ์ฐจ์ด์  ์ธ์ง€ ๋ถ€์กฑ
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ์žฌ๊ณตํ•™ ํ™œ๋™๋ณ„ ๋ชฉ์ ์„ ๊ตฌ์ฒด์  ์‚ฌ๋ก€์™€ ํ•จ๊ป˜ ๊ตฌ๋ถ„ ์•”๊ธฐ
- ์šฉ์–ด๋ฅผ ์•„๋ž˜ ํ‘œ์ฒ˜๋Ÿผ ๊ธฐ๋Šฅ ์ค‘์‹ฌ์œผ๋กœ ์ •๋ฆฌ
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ 

์šฉ์–ด ์ •์˜ ๋ชฉ์ /์˜ˆ์‹œ
Migration  ๊ธฐ์กด ์‹œ์Šคํ…œ์„ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ /ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์œผ๋กœ ๋ณ€ํ™˜ COBOL → Java, Unix → Windows
Restructuring  ์†Œ์Šค ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋˜ ๊ธฐ๋Šฅ์€ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ ๋ณต์žกํ•œ ์ฝ”๋“œ ์ •๋ฆฌ, ๊ฐ€๋…์„ฑ ๊ฐœ์„ 
Reverse Engineering ๊ธฐ์กด ์‹œ์Šคํ…œ์—์„œ ์„ค๊ณ„/์š”๊ตฌ์‚ฌํ•ญ ๋“ฑ ์ƒ์œ„ ์ •๋ณด๋ฅผ ์ถ”์ถœ ๋ฌธ์„œํ™” ๋ˆ„๋ฝ ์ฝ”๋“œ → ์„ค๊ณ„๋„ ์ถ”์ถœ
Forward Engineering ์ถ”์ถœ๋œ ์ •๋ณด๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ์„ ์žฌ๊ตฌ์„ฑ ์—ญ๊ณตํ•™ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹œ์Šคํ…œ ์žฌ๊ฐœ๋ฐœ

 

๐Ÿ“Œ[35] ์ˆœ์„œ๊ฐ€ A, B, C, D๋กœ ์ •ํ•ด์ง„ ์ž…๋ ฅ์ž๋ฃŒ๋ฅผ Push, Push, Pop, Push,Push,Pop,Pop,Pop ์ˆœ์„œ๋กœ ์Šคํƒ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š”? 

- ๋ฌธ์ œ ์œ ํ˜• : ์Šคํƒ ์—ฐ์‚ฐ ์‹œํ€€์Šค ์ถ”๋ก  (์ž๋ฃŒ๊ตฌ์กฐ - ์Šคํƒ ๋™์ž‘)
- ๋‚ด ๋‹ต์•ˆ : ๋‹ต ์ฒดํฌ x
- ์ •๋‹ต : B D C A
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ์Šคํƒ์˜ LIFO ๋™์ž‘ ๋ฐฉ์‹ ๊ณผ ์—ฐ์‚ฐ ์ˆœ์„œ ์ถ”์ ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์Œ
- Push/Pop ์ˆœ์„œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ์ค‘๊ฐ„ ์ƒํƒœ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์ง€ ์•Š์Œ
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ์Šคํƒ ๋ฌธ์ œ๋Š” ๋ฐ˜๋“œ์‹œ ์‹ค์ œ๋กœ ์Šคํƒ์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋ฉ”๋ชจ ๋˜๋Š” ๊ทธ๋ฆฌ๊ธฐ
- Push ์‹œ ์ž๋ฃŒ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ , Pop ์‹œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ์ž๋ฃŒ๊ฐ€ ๋‚˜๊ฐ„๋‹ค๋Š” ์ ์„ ์žŠ์ง€ ์•Š๊ธฐ
 
๐Ÿ“– ํ’€์ด ๊ณผ์ •

 

๐Ÿ“Œ[36] ๋ถ„ํ•  ์ •๋ณด์— ๊ธฐ๋ฐ˜ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ”ผ๋ฒ—์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์•…์˜ ๊ฒฝ์šฐ n(n-1)/2 ํšŒ์˜ ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ •๋ ฌ์€? 

- ๋ฌธ์ œ ์œ ํ˜• : ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜
- ๋‚ด ๋‹ต์•ˆ : ๋ฒ„๋ธ”์ •๋ ฌ
- ์ •๋‹ต : ํ€ต ์ •๋ ฌ
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ํ”ผ๋ฒ— ์‚ฌ์šฉ์ด๋ผ๋Š” ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ๋กœ ํ€ต ์ •๋ ฌ์„ ๋ฐ”๋กœ ์—ฐ์ƒํ•˜์ง€ ๋ชปํ•จ
- n(n-1)/2 ๋น„๊ต ํšŸ์ˆ˜๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„๋ณต์žก๋„ O(n²) ์˜๋ฏธํ•จ → ํ€ต ์ •๋ ฌ์˜ ๋Œ€ํ‘œ์  ํŠน์ง• ์ค‘ ํ•˜๋‚˜
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ์ค€(ํ‚ค์›Œ๋“œ) ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜ ์•”๊ธฐ:  
  - ํ”ผ๋ฒ— → ํ€ต ์ •๋ ฌ  
  - ํž™ ๊ตฌ์กฐ → ํž™ ์ •๋ ฌ  
  - ๋ถ€๋ถ„ ๋ฐฐ์—ด ์ •๋ ฌ ๋ฐ˜๋ณต → ๋ณ‘ํ•ฉ ์ •๋ ฌ  
- ํ‰๊ท /์ตœ์•… ์‹œ๊ฐ„๋ณต์žก๋„ ๊ตฌ๋ถ„ํ•ด์„œ ํ•จ๊ป˜ ์™ธ์šฐ๊ธฐ
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹ ํ‰๊ท  ์‹œ๊ฐ„๋ณต์žก๋„ ์ตœ์•… ์‹œ๊ฐ„๋ณต์žก๋„ ํ‚ค์›Œ๋“œ
ํ€ต ์ •๋ ฌ ํ”ผ๋ฒ— ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ•  ์ •๋ ฌ O(n log n) O(n²) ํ”ผ๋ฒ—, ๋ถ„ํ• ์ •๋ณต
๋ณ‘ํ•ฉ ์ •๋ ฌ ๋ถ„ํ•  ํ›„ ๋ณ‘ํ•ฉ  O(n log n) O(n log n) ์•ˆ์ • ์ •๋ ฌ, ์žฌ๊ท€์  ๋ณ‘ํ•ฉ
์„ ํƒ ์ •๋ ฌ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ์•„ ์•ž์ชฝ๊ณผ ๊ตํ™˜ O(n²) O(n²) ๊ตํ™˜ ์ ์Œ, ๋ถˆ์•ˆ์ •
๋ฒ„๋ธ” ์ •๋ ฌ ์ธ์ ‘ํ•œ ๋‘ ๊ฐ’์„ ๋ฐ˜๋ณต ๋น„๊ต ํ›„ swap O(n²) O(n²) ๋‹จ์ˆœ ๊ตฌํ˜„, ๋А๋ฆผ, ์•ˆ์ • ์ •๋ ฌ
์‚ฝ์ž… ์ •๋ ฌ ์•ž์—์„œ๋ถ€ํ„ฐ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์‚ฝ์ž… O(n²) O(n²) ์ •๋ ฌ๋œ ์˜์—ญ ํ™•์žฅ
ํž™ ์ •๋ ฌ ํž™ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ตœ๋Œ€/์ตœ์†Œ ์ •๋ ฌ O(n log n) O(n log n) ํž™ ํŠธ๋ฆฌ, ๋ถˆ์•ˆ์ • ์ •๋ ฌ

 
O(n log n) → n × logโ‚‚n → ๋กœ๊ทธ ๋‹จ๊ณ„๋งˆ๋‹ค ์ „์ฒด ์ˆœํšŒ              
O(n²) → n(n-1)/2 ≈ n²  →  ๋ชจ๋“  ์›์†Œ ์Œ ๋น„๊ต (์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ ๊ตฌ์กฐ)   

๋งŒ์•ฝ n = 10์ด๋ผ๋ฉด, 

O(n log n) : 10 × logโ‚‚10 ≈ 10 × 3.32 ≈ 33

O(n²) : 10 × 9 / 2 = 45  

 

๐Ÿ“Œ[37] ํ™”์ดํŠธ ๋ฐ•์Šค ๊ฒ€์‚ฌ ๊ธฐ๋ฒ•์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋งŒ ์ง์ง€์–ด์ง„ ๊ฒƒ์€?

ใ„ฑ. ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ฒ€์‚ฌ 
ใ„ด. ๋ฃจํ”„ ๊ฒ€์‚ฌ 
ใ„ท. ๋™๋“ฑ ๋ถ„ํ•  ๊ฒ€์‚ฌ 
ใ„น. ๊ฒฝ๊ณ—๊ฐ’ ๋ถ„์„
ใ….์›์ธ ๊ฒฐ๊ณผ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฒ•
ใ…‚. ์˜ค๋ฅ˜์˜ˆ์ธก ๊ธฐ๋ฒ• 

- ๋ฌธ์ œ ์œ ํ˜• : ์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŠธ
- ๋‚ด ๋‹ต์•ˆ : ใ„ด, ใ…
- ์ •๋‹ต : ใ„ฑ, ใ„ด
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- **๊ธฐ๋ฒ• ๋ถ„๋ฅ˜ ๊ธฐ์ค€ ๋ฏธ์ˆ™์ง€**: ๊ตฌ์กฐ ๊ธฐ๋ฐ˜(ํ™”์ดํŠธ)๊ณผ ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜(๋ธ”๋ž™)์˜ ๊ตฌ๋ถ„์ด ๋ชจํ˜ธํ–ˆ์Œ
- **์›์ธ-๊ฒฐ๊ณผ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฒ•(ใ…)**์€ ๋ช…๋ฐฑํ•œ **๋ธ”๋ž™ ๋ฐ•์Šค ํ…Œ์ŠคํŠธ**
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ๊ธฐ๋ฒ•์„ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๋ณด๋А๋ƒ(ํ™”์ดํŠธ), ์ž…๋ ฅ/์ถœ๋ ฅ์„ ๋ณด๋А๋ƒ(๋ธ”๋ž™)๊ธฐ์ค€์œผ๋กœ ํ™•์‹คํžˆ ๋‚˜๋ˆ ์„œ ์•”๊ธฐ
- ์•„๋ž˜ ๋ถ„๋ฅ˜ํ‘œ ๋ฐ˜๋ณต ๋ณต์Šต
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ

ใ„ฑ. ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ฒ€์‚ฌ → ํ™”์ดํŠธ ๋ฐ•์Šค, ๋ณ€์ˆ˜ ์ •์˜์™€ ์‚ฌ์šฉ ํ๋ฆ„ ๋ถ„์„
ใ„ด. ๋ฃจํ”„ ๊ฒ€์‚ฌ → ํ™”์ดํŠธ ๋ฐ•์Šค , ๋ฐ˜๋ณต๋ฌธ ๊ตฌ์กฐ ๋ถ„์„
ใ„ท. ๋™๋“ฑ ๋ถ„ํ•  ๊ฒ€์‚ฌ → ๋ธ”๋ž™ ๋ฐ•์Šค, ์œ ์‚ฌ์ž…๋ ฅ์„ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜
ใ„น. ๊ฒฝ๊ณ—๊ฐ’ ๋ถ„์„ → ๋ธ”๋ž™ ๋ฐ•์Šค, ์ž…๋ ฅ ๊ฒฝ๊ณ—๊ฐ’ ์ค‘์‹ฌ ํ…Œ์ŠคํŠธ 
ใ….์›์ธ ๊ฒฐ๊ณผ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฒ• → ๋ธ”๋ž™ ๋ฐ•์Šค, ์กฐ๊ฑด/ํ–‰๋™ ๋…ผ๋ฆฌ ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ  
ใ…‚. ์˜ค๋ฅ˜์˜ˆ์ธก ๊ธฐ๋ฒ• → ๋ธ”๋ž™ ๋ฐ•์Šค, ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ ์ง€์  ์ถ”์ •  

 

๐Ÿ“Œ[38] ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ๊ด€๋ จ ๊ตญ์ œ ํ‘œ์ค€์ธ ISO/IEC 25000์— ๊ด€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

- ๋ฌธ์ œ ์œ ํ˜• : ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ํ‘œ์ค€ – ISO/IEC 25000 ์‹œ๋ฆฌ์ฆˆ ๊ตฌ์กฐ ์ดํ•ด
- ๋‚ด ๋‹ต์•ˆ : ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆํ‰๊ฐ€ ๋ชจ๋ธ๊ณผ ์†Œํ”„ํŠธ์›จ์–ด ํ‰๊ฐ€ ์ ˆ์ฐจ ๋ชจ๋ธ์ธ ISO/IEC 9126๊ณผ ISO/IEC 24598์„ ํ†ตํ•ฉํ•˜์˜€๋‹ค.
- ์ •๋‹ต : ISO/IEC 2501n์—์„œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋‚ด๋ถ€ ์ธก์ •, ์™ธ๋ถ€ ์ธก์ •, ์‚ฌ์šฉํ’ˆ์งˆ ์ธก์ •, ํ’ˆ์งˆ ์ธก์ • ์š”์†Œ ๋“ฑ์„ ๋‹ค๋ฃฌ๋‹ค.
 
โŒ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€?
- ISO/IEC 25000์˜ ํ•˜์œ„ ์‹œ๋ฆฌ์ฆˆ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด ๋ถ€์กฑ
- 2501n ์‹œ๋ฆฌ์ฆˆ๋Š” ์‹ค์ œ๋กœ ํ’ˆ์งˆ ์ธก์ • ๋ชจ๋ธ(SQuaRE Measurement division)์„ ๋‹ค๋ฃธ → ์ •๋‹ต ๋ฌธ์žฅ์ด ๋งž๋Š” ์„ค๋ช…์ž„
- ๋ฐ˜๋ฉด ISO/IEC 24598์€ ์กด์žฌํ•˜์ง€ ์•Š์Œ
 
๐Ÿ”‚ ๋‹ค์Œ์—” ์–ด๋–ป๊ฒŒ ๋งž์ถœ๊ฒƒ์ธ๊ฐ€
- ISO/IEC 25000 ์‹œ๋ฆฌ์ฆˆ๋Š” 2500n~2504n๊นŒ์ง€ ๊ณ„์ธต๋ณ„ ์—ญํ• ์„ ์•”๊ธฐ
- ๊ฐ ํ•˜์œ„ ์‹œ๋ฆฌ์ฆˆ์˜ ๋ฒˆํ˜ธ๋Œ€๋ณ„ ์ฃผ์ œ๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ๊ธฐ์–ต
 
๐Ÿ“– ์ฐธ๊ณ  ๊ฐœ๋… ์ •๋ฆฌ

๋ฒˆํ˜ธ๋Œ€ ์ด๋ฆ„ ์ฃผ์š” ๋‚ด์šฉ
2500n ์•ˆ๋‚ด  ์ „๋ฐ˜์ ์ธ ๊ฐœ์š”์™€ ๊ฐœ๋… 
2501n ํ’ˆ์งˆ ์ธก์ • ๋‚ด๋ถ€ ํ’ˆ์งˆ, ์™ธ๋ถ€ ํ’ˆ์งˆ, ์‚ฌ์šฉ ํ’ˆ์งˆ ๋“ฑ ์ธก์ • ๋ชจ๋ธ
2502n ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ ๋‚ด๋ถ€ ํ’ˆ์งˆ, ์™ธ๋ถ€ ํ’ˆ์งˆ, ์‚ฌ์šฉ ํ’ˆ์งˆ ๋“ฑ ์ธก์ • ๋ชจ๋ธ
2503n ํ’ˆ์งˆ ํ‰๊ฐ€ ํ’ˆ์งˆ ํ‰๊ฐ€ ์ ˆ์ฐจ, ๋ฐฉ๋ฒ•
2504n ํ’ˆ์งˆ ๋ชจ๋ธ ํ’ˆ์งˆ ํŠน์„ฑ ๋ฐ ํ•˜์œ„ ํŠน์„ฑ ์ •์˜ (ex. ๊ธฐ๋Šฅ์„ฑ, ์‹ ๋ขฐ์„ฑ ๋“ฑ)
๋ฐ˜์‘ํ˜•