• ABOUT
  • PORTFOLIO
  • POSTS
  • GUESTBOOK

ยฉ 2025-2026 BlueCool12 All rights reserved.

2025.08.06์ž๋ฃŒ๊ตฌ์กฐ

๐Ÿงฑ ์Šคํƒ(Stack)๊ณผ ํ(Queue) ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ํ™œ์šฉ ์˜ˆ์‹œ

1. ์Šคํƒ(Stack)์ด๋ž€? 

AI Generated Image์Šคํƒ์€ "์Œ“๋Š”๋‹ค"๋Š” ๊ฐœ๋…๊ณผ ๊ฐ€์žฅ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„ ์˜ฌ๋ฆฌ๋Š” ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋ฉฐ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋˜๋Š” ํ›„์ž…์„ ์ถœ(LIFO, Last-In-First-Out) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.


์ฃผ์š” ์—ฐ์‚ฐ

์Šคํƒ์€ ๊ตฌ์กฐ์ ์œผ๋กœ ํ•œ์ชฝ ๋(Top)์—์„œ๋งŒ ๋ฐ์ดํ„ฐ์˜ ์ ‘๊ทผ, ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

  • push(item): ์Šคํƒ์˜ ๋งจ ์œ„์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • pop(): ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • peek() ๋˜๋Š” top(): ์Šคํƒ์˜ ๋งจ ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ์–ด๋–ค ๊ฐ’์ธ์ง€ ํ™•์ธ๋งŒ ํ•œ๋‹ค.
  • isEmpty(): ์Šคํƒ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋…ผ๋ฆฌ๊ฐ’(boolean)์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.


์‹œ๊ฐ„ ๋ณต์žก๋„

์‚ฝ์ž… ๋ฐ ์‚ญ์ œ (push, pop)
์Šคํƒ์€ ํ•ญ์ƒ ์ตœ์ƒ๋‹จ์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜์™€ ์ƒ๊ด€์—†์ด O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

ํƒ์ƒ‰
ํŠน์ • ์š”์†Œ๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ์ตœ์ƒ๋‹จ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.


์ฃผ์š” ํ™œ์šฉ ์‚ฌ๋ก€

์Šคํƒ์€ ๋ฐ์ดํ„ฐ์˜ ์ž‘์—… ์ˆœ์„œ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐ€์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

์‹คํ–‰ ์ทจ์†Œ (Undo)
๋ฌธ์„œ ํŽธ์ง‘๊ธฐ ๋“ฑ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‹คํ–‰ํ•œ ์ž‘์—…๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ทจ์†Œํ•œ๋‹ค.

์›น ๋ธŒ๋ผ์šฐ์ € ๋ฐฉ๋ฌธ ๊ธฐ๋ก
๋’ค๋กœ ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ์ž‘๋™ ์‹œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋ฐฉ๋ฌธํ•œ ํŽ˜์ด์ง€๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋กœ๋“œํ•œ๋‹ค.

ํ•จ์ˆ˜์˜ ์ฝœ ์Šคํƒ (Call Stack)
ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋ณต๊ท€ ์ฃผ์†Œ ๋“ฑ์„ ์ €์žฅํ•˜๊ณ  ํ•จ์ˆ˜ ์ข…๋ฃŒ ์‹œ ์ด์ „ ์‹คํ–‰ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ€๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์ˆ˜์‹ ๋ฐ ๊ด„ํ˜ธ ๊ฒ€์‚ฌ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋‚˜ ์ˆ˜์‹์—์„œ ์—ด๋ฆฐ ๊ด„ํ˜ธ์™€ ๋‹ซํžŒ ๊ด„ํ˜ธ์˜ ์ง์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋งž๋Š”์ง€ ๊ฒ€์ฆํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

DFS (Depth-First Search, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)
๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๊ณผ์ •์—์„œ ๊นŠ์ด๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•  ๋•Œ ์Šคํƒ ๊ตฌ์กฐ๊ฐ€ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.


[์—ฐ์Šต ๋ฌธ์ œ ๋งํฌ]
1. ์Šคํƒ
2. ๊ด„ํ˜ธ
3. ์‡ ๋ง‰๋Œ€๊ธฐ
4. ํƒ‘

 

2. ํ(Queue)๋ž€?

AI Generated Imageํ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๋ฉฐ ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋˜๋Š” ์„ ์ž…์„ ์ถœ(FIFO, First-In-First-Out) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

์ฆ‰ ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋ฉฐ ๋งˆ์น˜ ๋งคํ‘œ์†Œ์—์„œ ์ค„์„ ์„  ์‚ฌ๋žŒ์ด ๋จผ์ € ํ‘œ๋ฅผ ๊ตฌ๋งคํ•˜๊ณ  ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ์™€ ๊ฐ™๋‹ค.


์ฃผ์š” ์—ฐ์‚ฐ

ํ๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ํ•œ์ชฝ ๋(Rear)์—์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ๋ฐ˜๋Œ€์ชฝ ๋(Front)์—์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์‚ญ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

  • enqueue(item): ํ์˜ ๋งจ ๋’ค์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • dequeue(): ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • peek() ๋˜๋Š” front(): ํ์˜ ๋งจ ์•ž์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ์–ด๋–ค ๊ฐ’์ธ์ง€ ํ™•์ธ๋งŒ ํ•œ๋‹ค.
  • isEmpty(): ํ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ๋น„์–ด์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋…ผ๋ฆฌ๊ฐ’(boolean)์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.


์‹œ๊ฐ„ ๋ณต์žก๋„

์‚ฝ์ž… ๋ฐ ์‚ญ์ œ (enqueue, dequeue)
์œ„์น˜๋ฅผ ์ฐพ๋Š” ๊ณผ์ • ์—†์ด ํ์˜ ์–‘ ๋๋‹จ์—์„œ ๋ฐ”๋กœ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

ํƒ์ƒ‰
ํŠน์ • ์š”์†Œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งจ ์•ž๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค.


์ฃผ์š” ํ™œ์šฉ ์‚ฌ๋ก€

ํ๋Š” ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋œ ์ˆœ์„œ๋Œ€๋กœ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์— ์‚ฌ์šฉ๋œ๋‹ค.

์šด์˜์ฒด์ œ์˜ ์ž‘์—… ์Šค์ผ€์ค„๋ง
CPU๋ฅผ ํ• ๋‹น๋ฐ›๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋“ค์ด๋‚˜ ๋””์Šคํฌ ์Šค์ผ€์ค„๋ง ๋“ฑ์„ ์ˆœ์„œ๋Œ€๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

ํ”„๋ฆฐํ„ฐ ์ธ์‡„ ๋Œ€๊ธฐ์—ด (Spooling)
์—ฌ๋Ÿฌ ์ธ์‡„ ์š”์ฒญ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋จผ์ € ์š”์ฒญ๋œ ๋ฌธ์„œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

๋ฉ”์‹œ์ง€ ํ (Message Queue)
์‹œ์Šคํ…œ ๊ฐ„ ๋น„๋™๊ธฐ์ ์ธ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ํ™˜๊ฒฝ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฒ„ํผ ์—ญํ• ์„ ํ•œ๋‹ค.

๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ (BFS, Breadth-First Search)
๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‹œ์ž‘ ์ •์ ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ€๊นŒ์šด ์ •์ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์œ„ํ•ด ํ๋ฅผ ํ™œ์šฉํ•œ๋‹ค.


[์—ฐ์Šต ๋ฌธ์ œ ๋งํฌ]
1. ํ
2. ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ
3. ์นด๋“œ1
4. ํ”„๋ฆฐํ„ฐ ํ

ๅ‰ใฎ่จ˜ไบ‹
๐Ÿ“„ Pageable๋กœ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ (+Spring Data JPA)
ๆฌกใฎ่จ˜ไบ‹
๐Ÿ”‘ SSH & SFTP ๊ธฐ์ดˆ ๊ฐ€์ด๋“œ - ์„œ๋ฒ„ ์ ‘์†๊ณผ ํŒŒ์ผ ์ „์†ก
่ฃ…้ฃพใƒญใ‚ด