๋ฐ˜์‘ํ˜•

 ์ตœ๊ทผ์—๋Š” ๋Œ€ํ•™๊ต๋„ ์กธ์—… ์š”๊ฑด ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ž๊ฒฉ์ฆ ํ•„์ˆ˜ ์ง€์ฐธ์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์ €์˜ ์ฑ„๋„๋“ค์„ ํ†ตํ•ด์„œ ๋ช‡ ๋ฒˆ ์–ธ๊ธ‰ํ•œ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ์ €๋Š” '์ปดํ“จํ„ฐ ์ •๋ณดใ†๋ณด์•ˆ ์ „๊ณตํ•™๊ณผ'๋ฅผ ์ „๊ณตํ•˜๊ณ  ์žˆ๋Š” ๋Œ€ํ•™์ƒ์ž…๋‹ˆ๋‹ค. 


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


์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹œ๋‚˜๊ณต





๊ด€๋ จ ๊ธ€.




๊ธฐ์ถœ๋ฌธ์ œ 1ํšŒ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคํŽธ 20๋ฌธ์ œ(ํŽ˜์ด์ง€ 4~7)


 1๋ฒˆ) ๋ณ‘ํ–‰์ œ์–ด ๊ธฐ๋ฒ• ์ค‘ ๋กœํ‚น์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ?


ํ’€์ด : ๋ณ‘ํ–‰์ œ์–ด ๊ธฐ๋ฒ•๊ณผ ๋กœํ‚น์˜ ํŠน์ง•์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


 ๋กœํ‚น(๋ณ‘ํ–‰์ œ์–ด ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜)์€ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ๋ฅผ ์•ก์„ธ์Šคํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.


 ๋กœํ‚น์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋กœํ‚น ๋‹จ์œ„๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค-ํŒŒ์ผ-๋ ˆ์ฝ”๋“œ ๋“ฑ์€ ๋กœํ‚น์˜ ๋‹จ์œ„๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœํ‚น์˜ ๋‹จ์œ„๊ฐ€ ์ž‘์•„์ง€๋ฉด ๋กœํฌ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฏ€๋กœ '๋กœํ‚น ์˜ค๋ฒ„ํ—ค๋“œ'๊ฐ€ ์ฆ๊ฐ€ํ•˜์ง€๋งŒ ๋ณ‘ํ–‰์„ฑ์˜ ์ˆ˜์ค€์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๋กœํ‚น์˜ ๋‹จ์œ„๊ฐ€ ์ปค์ง€๋ฉด ๋กœํฌ ์ˆ˜๊ฐ€ ์ ์–ด์ง€๋ฏ€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณต์œ ๋„๊ฐ€ ๋‚ฎ์•„์ง€์ง€๋งŒ ๋ณ‘ํ–‰์„ฑ์ด ๊ฐ์†Œ๋˜๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 


 ๋ณ‘ํ–‰์ œ์–ด์˜ ๋ชฉ์ ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณต์œ ๋„ ์ตœ๋Œ€ํ™”, ์‹œ์Šคํ…œ ํ™œ์šฉ๋„ ์ตœ๋Œ€ํ™”, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ ์œ ์ง€, ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์‘๋‹ต ์‹œ๊ฐ„ ์ตœ์†Œํ™”์— ์žˆ์Œ์„ ์•”๊ธฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 



2๋ฒˆ) SQL์˜ ๋ช…๋ น์€ ์‚ฌ์šฉ ์šฉ๋„์— ๋”ฐ๋ผ DDL, DML, DCL๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. DML์— ํ•ด๋‹น๋˜๋Š” ๊ฒƒ์€?


ํ’€์ด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด์— ๋Œ€ํ•œ ํŠน์ง•์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜ ์–ธ์–ด๋ฅผ DDL, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐ์ž‘ ์–ธ์–ด๋ฅผ DML, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œ์–ด ์–ธ์–ด๋ฅผ DCL์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. DDL, DML, DCL์ด๋ผ๊ณ ๋งŒ ๊ตฌ๋ถ„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


 DDL์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ๋ฅผ ์œ„ํ•œ ์–ธ์–ด ๋˜๋Š” ์–ธ์–ด ์š”์†Œ๋กœ์„œ ์Šคํ‚ค๋งˆ, ๋„๋ฉ”์ธ, ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 3๊ฐ€์ง€์˜ ์œ ํ˜•์ด ์žˆ๋Š”๋ฐ CREATE, ALTER, DROP์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


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


๋ช…๋ น์–ด 

 ๊ธฐ๋Šฅ

 CREATE

์Šคํ‚ค๋งˆ, ๋„๋ฉ”์ธ, ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค ์ •์˜ 

 ALTER

ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ์‚ฌ์šฉ 

 DROP

์Šคํ‚ค๋งˆ, ๋„๋ฉ”์ธ, ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค ์‚ญ์ œ 



 DML์€ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์•ฝ์ž๋กœ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰, ์ˆ˜์ •, ๋“ฑ๋ก, ์‚ญ์ œ๋ฅผ ์œ„ํ•œ ์–ธ์–ด ๋˜๋Š” ์–ธ์–ด ์š”์†Œ๋กœ ๊ทธ ์ข…๋ฅ˜๋Š” SELECT(๊ฒ€์ƒ‰), INSERT(๋“ฑ๋ก), DELETE(์‚ญ์ œ), UPDATE(์ˆ˜์ •)์ด ์žˆ์Šต๋‹ˆ๋‹ค.


 DCL์€ ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์•ฝ์ž๋กœ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์œ„ํ•œ ์–ธ์–ด ๋˜๋Š” ์–ธ์–ด ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๋ฌด๊ฒฐ์„ฑ, ๋ณด์•ˆ ๋ฐ ๊ถŒํ•œ ์ œ์–ด, ํšŒ๋ณต, ๋ณ‘ํ–‰์ˆ˜ํ–‰ ์ œ์–ด ๋“ฑ์„ ์œ„ํ•œ ์–ธ์–ด๋กœ ๊ทธ ์ข…๋ฅ˜๋Š” COMMIT, ROLLBACK, GRANT, REVOKE๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


 DCL์˜ ๊ธฐ๋Šฅ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ๋ณด์•ˆ(security), ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์„ ์œ„ํ•œ ๋ฌด๊ฒฐ์„ฑ(integrity) ์œ ์ง€, ๋ฐ์ดํ„ฐ ํšŒ๋ณต๊ณผ ๋ณ‘ํ–‰์ˆ˜ํ–‰ ์ œ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


 ๋ช…๋ น์–ด

๊ธฐ๋Šฅ 

COMMIT 

๋ช…๋ น์— ์˜ํ•ด ์ˆ˜ํ–‰๋œ ๊ฒฐ๊ณผ๋Š” ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๋””์Šคํฌ๋กœ ์ €์žฅํ•˜๊ณ , DB ์กฐ์ž‘ ์ž‘์—…์ด ์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฐ๋‹ค. 

 ROLLBACK

 DB ์กฐ์ž‘ ์ž‘์—…์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์›๋ž˜์˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•œ๋‹ค.

 GRANT

 DB ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.

 REVOKE

 DB ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ์ทจ์†Œํ•œ๋‹ค.


 

3๋ฒˆ) ๋‹ค์Œ ํŠธ๋ฆฌ๋ฅผ ํ›„์œ„ ์ˆœ์œ„(Post Traversal)ํ•  ๊ฒฝ์šฐ, ๊ฐ€์žฅ ๋จผ์ € ์ˆœํšŒํ•˜๋Š” ๋…ธ๋“œ๋Š”?


ํ’€์ด : ์ด์ง„ ํŠธ๋ฆฌ์˜ ์šดํ–‰๋ฒ•์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.


 ์ด์ง„ ํŠธ๋ฆฌ์˜ ์šดํ–‰ ๋ฐฉ๋ฒ•์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ข…๋ฅ˜๋Š” ์ „์œ„, ์ค‘์œ„, ํ›„์œ„ ์šดํ–‰๋ฒ•์ž…๋‹ˆ๋‹ค. ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด์ž๋ฉด...


- preorder(์ „์œ„) ์šดํ–‰: Root->Left->Right

- inorder(์ค‘์œ„) ์šดํ–‰: Left->Root->Right

- postorder(ํ›„์œ„) ์šดํ–‰: Left->Right->Root



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


์ด์ง„ํŠธ๋ฆฌ ์šดํ–‰๋ฐฉ๋ฒ•์„œ๋ธŒ ํŠธ๋ฆฌ ๋ฌถ๋Š” ๋ฒ• ์˜ˆ์ œ



์œ„์˜ ์‚ฌ์ง„์—์„œ ๋ณด๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ฅผ ๋ฌถ์–ด์ค๋‹ˆ๋‹ค. ๋จผ์ € preorder(์ „์œ„) ์šดํ–‰ ๋ฐฉ์‹์œผ๋กœ ์ƒ๊ฐ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


โ‘  root->letf->right์˜ ์ˆœ์„œ๋Œ€๋กœ ์šดํ–‰๋˜๋ฏ€๋กœ A-1-3์ด ๋œ๋‹ค.

โ‘ก 1๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด B-D์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ A-B-D-3์ด ๋œ๋‹ค.

โ‘ข 3์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด C-2-F์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ A-B-D-C-2-F๊ฐ€ ๋œ๋‹ค.

โ‘ฃ 2๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด E-G-H์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ A-B-D-C-E-G-H-F๊ฐ€ ๋œ๋‹ค.

โ‘ค ์ตœ์ข… ์šดํ–‰ ๊ฒฐ๊ณผ๋Š” ABDCEGHF์ด๋‹ค.


 ๋‹ค์Œ์œผ๋กœ๋Š” inorder(์ค‘์œ„) ์šดํ–‰ ๋ฐฉ์‹์œผ๋กœ ํ’€์ดํ•ด๋ณด๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.


โ‘  left->root->right์˜ ์ˆœ์„œ๋Œ€๋กœ ์šดํ–‰๋˜๋ฏ€๋กœ 1-A-3์ด ๋œ๋‹ค.

โ‘ก 1๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด D-B์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ D-B-A-3์ด ๋œ๋‹ค. 

โ‘ข 3์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด 2-C-F์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ D-B-A-2-C-F๊ฐ€ ๋œ๋‹ค.

โ‘ฃ 2๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด G-E-H์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ D-B-A-G-E-H-C-F๊ฐ€ ๋œ๋‹ค.

โ‘ค ์ตœ์ข… ์šดํ–‰ ๊ฒฐ๊ณผ๋Š” DBAGHECF์ด๋‹ค.


 ๋งˆ์ง€๋ง‰์œผ๋กœ postorder(ํ›„์œ„) ์šดํ–‰ ๋ฐฉ์‹์œผ๋กœ ํ’€์ดํ•ด๋ณด๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.


โ‘  left->right->root์˜ ์ˆœ์„œ๋Œ€๋กœ ์šดํ–‰๋˜๋ฏ€๋กœ 1-3-A๊ฐ€ ๋œ๋‹ค.

โ‘ก 1๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด D-B์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ D-B-3-A๊ฐ€ ๋œ๋‹ค.

โ‘ข 3์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด 2-F-C์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ D-B-2-F-C-A๊ฐ€ ๋œ๋‹ค.

โ‘ฃ 2๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด G-H-E์˜ ์ˆœ์„œ๊ฐ€ ๋˜๋ฏ€๋กœ D-B-G-H-E-F-C-A๊ฐ€ ๋œ๋‹ค.

โ‘ค ์ตœ์ข… ์šดํ–‰ ๊ฒฐ๊ณผ๋Š” DBGHEFCA์ด๋‹ค.



4๋ฒˆ) ์ˆœ์„œ๊ฐ€ A, B, C, D๋กœ ์ •ํ•ด์ง„ ์ž…๋ ฅ ์ž๋ฃŒ๋ฅผ ์Šคํƒ์— ์ž…๋ ฅํ•˜์˜€๋‹ค๊ฐ€ ์ถœ๋ ฅํ•œ ๊ฒฐ๊ณผ๋กœ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ๋งŒ ์ง์ง€์–ด์ง„ ๊ฒƒ์€?


ํ’€์ด : ์Šคํƒ(STACK)์—์„œ ์ž๋ฃŒ๋ฅผ ์ž…๋ ฅ ๋ฐ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋ณธ ๊ฐœ๋…์„ ํŒŒ์•…ํ•œ๋‹ค.


 ์Šคํƒ์ด๋ž€ ๋ฆฌ์ŠคํŠธ์˜ ํ•œ์ชฝ ๋์œผ๋กœ๋งŒ ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ž…๋ ฅ๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋˜๋Š” ํ›„์ž…์„ ์ถœ(LIFO: Last-In, First-out) ๋ฐฉ์‹์œผ๋กœ ์ž๋ฃŒ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.(FILO: First-in, Last-out ๋ฐฉ์‹์ธ ์„ ์ž…ํ›„์ถœ๋ฐฉ์‹๋„ ์žˆ์Œ.)


 ์šฉ์–ด๋กœ๋Š” TOP, BOTTOM, PUSH, POP๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 


ใ†TOP: ์Šคํƒ์˜ ํฌ์ธํ„ฐ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์ด๊ฒƒ์€ ํ• ๋‹น๋œ ๊ธฐ์–ต๊ณต๊ฐ„์— ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ธฐ์–ต๋œ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์š”์†Œ.

ใ†BOTTOM: ์Šคํƒ์˜ ๊ฐ€์žฅ ๋ฐ‘๋ฐ”๋‹ฅ.

ใ†PUSH: ์Šคํƒ์—์„œ ์ž๋ฃŒ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ช…๋ น.

ใ†POP: ์Šคํƒ์—์„œ ์ž๋ฃŒ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ช…๋ น.


 ์Šคํƒ์ด ์‚ฝ์ž…๋˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


Top = Top+1

if Top>M Then Overflow


Else

x(Top)โ†item

์Šคํƒ ํฌ์ธํ„ฐ=Top

์Šคํƒ ํฌ๊ธฐ=M

์Šคํƒ์˜ ์ด๋ฆ„=x


*์Šคํƒ์˜ ํฌ์ธํ„ฐ๊ฐ€ ์Šคํƒ๋ณด๋‹ค ํฌ๋ฉด overflow๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.


  ์Šคํƒ์ด ์‚ญ์ œ๋˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


if Top=0 Then Overflow


Else

itemโ†x(Top)

Top=Top-1

์Šคํƒ ํฌ์ธํ„ฐ=Top

์Šคํƒ ํฌ๊ธฐ=M

์Šคํƒ์˜ ์ด๋ฆ„=x


*์Šคํƒ์˜ ํฌ์ธํ„ฐ 0์ด๋ฉด ๋” ์ด์ƒ ์‚ญ์ œํ•  ์ž๋ฃŒ๊ฐ€ ์—†์œผ๋ฏ€๋กœ underflow๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.



์ž๋ฃŒ๊ตฌ์กฐ ์Šคํƒ



5๋ฒˆ) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜๋กœ ์˜ณ์€ ๋‚ด์šฉ์„ ๋ชจ๋‘ ๋‚˜์—ดํ•œ ๊ฒƒ์€?


ํ’€์ด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •์˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์•”๊ธฐํ•œ๋‹ค.


ใ†ํ†ตํ•ฉ๋œ ๋ฐ์ดํ„ฐ(Integrated Data) : ์ž๋ฃŒ์˜ ์ค‘๋ณต์„ ๋ฐฐ์ œํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ์ž„์ด๋‹ค.

ใ†์ €์žฅ๋œ ๋ฐ์ดํ„ฐ(Stored Data) : ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ ๋งค์ฒด์— ์ €์žฅ๋œ ์ž๋ฃŒ์ด๋‹ค.

ใ†์šด์˜ ๋ฐ์ดํ„ฐ(Operational Data) : ์กฐ์ง์˜ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์—†์–ด์„œ๋Š” ์•ˆ๋  ์ž๋ฃŒ์ด๋‹ค.

ใ†๊ณต์šฉ ๋ฐ์ดํ„ฐ(Shared Data) : ๋™์‹œ์— ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์šฉ ๋ฐ์ดํ„ฐ์ด๋‹ค.



6๋ฒˆ) "ํŠธ๋žœ์žญ์…˜ ๊ฒฐ๊ณผ ๊ด€๋ จ ์žˆ๋Š” ๋ชจ๋“  ์—ฐ์‚ฐ๋“ค์€ ์™„์ „ํžˆ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค."๋Š” ๋‚ด์šฉ์ด ์˜๋ฏธํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์š”๊ตฌ์‚ฌํ•ญ์€?


ํ’€์ด : ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ์„ ์•”๊ธฐํ•œ๋‹ค.


ใ†Atomicity(์›์ž์„ฑ): ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๋“ ์ง€ ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ๋ช…๋ น์€ ๋ฐ˜๋“œ์‹œ ์™„๋ฒฝํžˆ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๊ณ , ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์ „๋ถ€๊ฐ€ ์ตœ์†Œ๋˜์–ด์•ผ ํ•œ๋‹ค.


ใ†Consistency(์ผ๊ด€์„ฑ): ํŠธ๋žœ์žญ์…˜์ด ๊ทธ ์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ์–ธ์ œ๋‚˜ ์ผ๊ด€์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ์‹œ์Šคํ…œ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ ์ • ์š”์†Œ๋Š” ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ „๊ณผ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ํ›„์˜ ์ƒํƒœ๊ฐ€ ๊ฐ™์•„์•ผํ•œ๋‹ค.


ใ†Isolation(๋…๋ฆฝ์„ฑ, ๊ฒฉ๋ฆฌ์„ฑ): ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ณ‘ํ–‰ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ์–ด๋Š ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์ด ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.


ใ†Durability(์˜์†์„ฑ, ์ง€์†์„ฑ): ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฐ๊ณผ๋Š” ์‹œ์Šคํ…œ์ด ๊ณ ์žฅ๋‚˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค.



์ด ๊ธ€์€ ์ถ”ํ›„ ๊ณ„์† ์—…๋ฐ์ดํŠธ ํ•  ์˜ˆ์ •. ์˜ค๋Š˜์˜ ๋ณต์Šต์€ ์—ฌ๊ธฐ๊นŒ์ง€!(2019.02.24.์ผ)


์ด์›ƒ์‹ ์ฒญ


๋ฐ˜์‘ํ˜•
๋ธ”๋กœ๊ทธ ์ด๋ฏธ์ง€

BBingStory

๋ฌธ์˜ ์‚ฌํ•ญ :: sho3603@naver.com / ๋ฉ”์ผ ๋ณด๋‚ด์ฃผ์„ธ์š”.

,