๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  - ์• ์ž์ผ(Agile) ๋ฐฉ๋ฒ•๋ก  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  - ์• ์ž์ผ(Agile) ๋ฐฉ๋ฒ•๋ก  ์• ์ž์ผ(Agile) ๋ฐฉ๋ฒ•๋ก ์€ ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ ๊ฐœ๋ฐœ ์ง€์นจ, ์ฒ ํ•™์— ๊ฐ€๊น๋‹ค. ๋ณ€ํ™”๋ฅผ ์ˆ˜์šฉํ•˜๊ณ  ํ˜‘์—…๊ณผ ์ œํ’ˆ์˜ ๋น ๋ฅธ ์ธ๋„๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ๋ฐ˜๋ณต์  ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ• ๋ฌธ์„œํ™”๋ณด๋‹ค ์ฝ”๋“œ, ํ”„๋กœ๊ทธ๋žจ, ์†Œํ”„ํŠธ์›จ์–ด ์ž์ฒด๋ฅผ ์ค‘์š”์‹œ ํ•จ ์š”๊ตฌ์‚ฌํ•ญ์˜ ๋ณ€ํ™”๋Š” ๋ถˆ๊ฐ€ํ”ผํ•˜๋ฉฐ ์ด์— ๋Œ€์‘ํ•˜๋Š” ๊ฒƒ์ด ํ˜„์‹ค์ ์ด๋‹ค. ๊ธฐ์กด์˜ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋Š” ์„ค๊ณ„ ๊ธฐ๊ฐ„์ด ๊ธธ๋ฉฐ ์žฌ์ž‘์—… ์‹œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๋‹ค. ํ™˜๊ฒฝ์˜ ๋น ๋ฅธ ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์• ์ž์ผ ์„ ์–ธ๋ฌธ(Agile Manifesto) ๐Ÿ”— ๊ณต์ •๊ณผ ๋„๊ตฌ๋ณด๋‹ค ๊ฐœ์ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํฌ๊ด„์ ์ธ ๋ฌธ์„œ๋ณด๋‹ค ์ž‘๋™ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ณ„์•ฝ ํ˜‘์ƒ๋ณด๋‹ค ๊ณ ๊ฐ๊ณผ์˜ ํ˜‘๋ ฅ์„ ๊ณ„ํš์„ ๋”ฐ๋ฅด๊ธฐ๋ณด๋‹ค ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜๊ธฐ๋ฅผ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋ฐ”๋€Œ๊ธฐ ์‰ฌ์šด ์ค‘์†Œํ˜•์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์‹œ์Šคํ…œ์ด๋‚˜ ์ „์ž ์ƒ๊ฑฐ๋ž˜ ์‘์šฉ์— ์ ํ•ฉํ•˜๋‹ค... 2020. 4. 18.
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค - ๋‚˜์„ ํ˜• ๋ชจ๋ธ๊ณผ V ๋ชจ๋ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค - ๋‚˜์„ ํ˜• ๋ชจ๋ธ๊ณผ V ๋ชจ๋ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ ์ค‘ ๋‚˜์„ ํ˜• ๋ชจ๋ธ๊ณผ V ๋ชจ๋ธ์€ ๊ฐ๊ฐ ๋ฐ˜๋ณต ์ง„ํ™”ํ˜• ๋ชจ๋ธ๊ณผ ํญํฌ์ˆ˜ ๋ชจ๋ธ์˜ ํ™•์žฅ๋œ ํ˜•ํƒœ์ด๋‹ค. 1. ๋‚˜์„ ํ˜• ๋ชจ๋ธ(Spiral Model) ๋ฐ˜๋ณต ์ง„ํ™”ํ˜• ๋ชจ๋ธ๐Ÿ”—์˜ ํ™•์žฅ ํ˜•ํƒœ ์œ„ํ—˜ ์ตœ์†Œํ™” - ์ „์ฒด ์ƒ๋ช…์ฃผ๊ธฐ์— ์œ„ํ—˜ ๋ถ„์„๊ณผ ํ”„๋กœํ† ํƒ€์ดํ•‘์„ ์‚ฌ์šฉ ๊ฐ ๋‹จ๊ณ„ ๋ณ„๋กœ โ‘ ๋ชฉํ‘œ์™€ ๋Œ€์•ˆ์˜ ๊ฒฐ์ •, โ‘ก๋Œ€์•ˆ์˜ ํ‰๊ฐ€(์œ„ํ—˜ ์š”์†Œ ๋ถ„์„), โ‘ข๊ฐœ๋ฐœ๊ณผ ํ™•์ธ, โ‘ฃ๋‹ค์Œ ๋‹จ๊ณ„ ๊ณ„ํš์˜ 4๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•จ ๋‚˜์„ ํ˜• ๋ชจ๋ธ์€ ์œ„ํ—˜ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ํฐ ํŠน์ง• - ์œ„ํ—˜ ๊ด€๋ฆฌ์— ๋น„์šฉ์„ ํˆฌ์ž ์‹คํ—˜์ ์ด๊ณ  ๋ณต์žกํ•œ ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉ ์žฅ์  ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—์„œ ์œ„ํ—˜ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์„ฑ๊ณต ๊ฐ€๋Šฅ์„ฑ์„ ํ–ฅ์ƒ ํ”„๋กœ์ ํŠธ ํŠน์„ฑ, ๊ฐœ๋ฐœ ์กฐ์ง์— ๋งž๊ฒŒ ๋ณ€ํ˜• ๊ฐ€๋Šฅ ๋‹จ์  ์‚ฌ๋ก€๊ฐ€ .. 2020. 4. 18.
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค - ๋ฐ˜๋ณต์  ๋ชจ๋ธ์˜ ์ข…๋ฅ˜์™€ ์ฐจ์ด์  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค - ๋ฐ˜๋ณต์  ๋ชจ๋ธ์˜ ์ข…๋ฅ˜์™€ ์ฐจ์ด์  ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ ์ค‘ ๋ฐ˜๋ณต์  ๋ชจ๋ธ์€ ์ฆ๋ถ„ํ˜•(Incremental) ๋ชจ๋ธ๊ณผ ์ง„ํ™”ํ˜•(Evolutional) ๋ชจ๋ธ ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ๋ฐ˜๋ณต์  ๋ชจ๋ธ - ์ง„ํ™”ํ˜• ๋ชจ๋ธ(Iterative Evolutional Model) ๋ถˆ์•ˆ์ •ํ•œ(๋ฏธ์™„์„ฑ๋œ) ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ๋ถ€ํ„ฐ ๋ช…์„ธ(์„ค๊ณ„) โžก๏ธ ๊ฐœ๋ฐœ โžก๏ธ ๊ฒ€์ฆ ๊ณผ์ •์„ ๊ฑฐ์ณ ์ดˆ๊ธฐ๋ฒ„์ „ ๊ฐœ๋ฐœ ๋ช…์„ธ(์„ค๊ณ„) โžก๏ธ ๊ฐœ๋ฐœ โžก๏ธ ๊ฒ€์ฆ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์ค‘๊ฐ„ ๋ฒ„์ „, ์ตœ์ข… ๋ฒ„์ „ ๊ฐœ๋ฐœ ํ”„๋กœํ† ํƒ€์ดํ•‘์„ ํ†ตํ•ด ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ณด์™„ํ•˜๋ฉฐ ์ ์ฐจ์ ์œผ๋กœ ๋ช…ํ™•ํ•œ ์š”๊ตฌ์‚ฌํ•ญ ๋„์ถœ ๋ฐ˜๋ณต ์ง„ํ™”ํ˜• ๋ชจ๋ธ์˜ ํ™•์žฅ ํ˜•ํƒœ๋กœ ๋‚˜์„ ํ˜• ๋ชจ๋ธ(spiral model)๐Ÿ”—์ด ์žˆ๋‹ค. ์žฅ์  ์š”๊ตฌ์‚ฌํ•ญ์ด ์™„์„ฑ๋˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ์—๋„ ์ดˆ๊ธฐ ๋ฒ„์ „ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ ๋‹จ์  ๊ฐœ๋ฐœ ๋น„์šฉ ์˜ˆ์ƒ ์–ด๋ ค์›€ ๋ฐ˜.. 2020. 4. 18.
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ - ํญํฌ์ˆ˜ ๋ชจ๋ธ(Waterfall Model) ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ - ํญํฌ์ˆ˜ ๋ชจ๋ธ(Waterfall Model) ์„ ํ˜• ์ˆœ์ฐจ ๋ชจ๋ธ(linear, sequential model), ๊ณ ์ „์  ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช… ์ฃผ๊ธฐ ๊ฐ ๋‹จ๊ณ„๋Š” ๋ณ‘ํ–‰ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๊ณ  ์ˆœ์ฐจ ์ˆ˜ํ–‰๋จ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์•„๋ž˜ ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰๋˜๋‚˜ ์‹ค์ œ๋กœ๋Š” ์ˆ˜์ • ๋ฐ ์žฌ์ž‘์—…์„ ์œ„ํ•ด ์ด์ „ ๋‹จ๊ณ„๋กœ์˜ ํ”ผ๋“œ๋ฐฑ์ด ๋ถˆ๊ฐ€ํ”ผํ•จ ํญํฌ์ˆ˜ ๋ชจ๋ธ์˜ ํ™•์žฅ ํ˜•ํƒœ๋กœ V ๋ชจ๋ธ๐Ÿ”—์ด ์žˆ๋‹ค. ์žฅ์  ๋‹จ์ˆœํ•œ ์„ ํ˜• ๋ชจ๋ธ - ์ดํ•ด ์‰ฌ์›€ ๋‹จ๊ณ„๋ณ„๋กœ ์ •ํ˜•ํ™”๋œ ์ ‘๊ทผ ๋ฐฉ๋ฒ• - ์ฒด๊ณ„์  ๋ฌธ์„œํ™” ๊ฐ€๋Šฅ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ ๋ช…ํ™•ํžˆ ํŒŒ์•… ๊ฐ€๋Šฅ ๋‹จ์  ์š”๊ตฌ์‚ฌํ•ญ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•จ ๋ณ€๊ฒฝ ์ˆ˜์šฉ ์–ด๋ ค์›€ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ํ›„๋ฐ˜์— ํ™•์ธ ๊ฐ€๋Šฅ ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์— ์ ์šฉ ๋ถ€์ ํ•ฉ ์ง€๋‚˜์นœ ๋ฌธ์„œํ™” ์œ„ํ—˜ ๋ถ„์„ ๊ฒฐ์—ฌ ์ผ์ • ์ง€์—ฐ ๊ฐ€๋Šฅ์„ฑ ํผ 1. ํญํฌ์ˆ˜ ๋ชจ๋ธ - ํƒ€๋‹น์„ฑ ์กฐ์‚ฌ ๋‹จ๊ณ„ ๋ฌธ์ œ์ ์„ ํŒŒ์•…ํ•˜๊ณ .. 2020. 4. 18.
[์ปดํ“จํ„ฐ๋ณด์•ˆ] ์•”ํ˜ธ์˜ ๊ฐœ๋…๊ณผ ๋Œ€์นญํ‚ค ์•”ํ˜ธ, ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ [์ปดํ“จํ„ฐ๋ณด์•ˆ] ์•”ํ˜ธ์˜ ๊ฐœ๋…๊ณผ ๋Œ€์นญํ‚ค ์•”ํ˜ธ, ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ 1. ์•”ํ˜ธ์˜ ์ •์˜ ๋ฐ ์šฉ์–ด ๐Ÿ“ ์•”ํ˜ธ์˜ ์ •์˜ ๋‘ ์‚ฌ๋žŒ์ด ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฑ„๋„(์ธํ„ฐ๋„ท ๋“ฑ)์„ ํ†ตํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋”๋ผ๋„ ์ œ 3์ž๋Š” ์ด ์ •๋ณด์˜ ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ ๐Ÿ“ ๊ด€๋ จ ์ค‘์š” ๊ฐœ๋… ๋ฐ ์šฉ์–ด * ํ‰๋ฌธ(plaintext): ์›๋ณธ ๋ฉ”์‹œ์ง€ * ์•”ํ˜ธ๋ฌธ(ciphertext): ์ฝ”๋“œํ™”(์•”ํ˜ธํ™”)๋œ ๋ฉ”์‹œ์ง€ * ์•”ํ˜ธํ™”(encryption): ํ‰๋ฌธ์„ ์•”ํ˜ธ๋ฌธ์œผ๋กœ ๋ณ€ํ™˜ * ๋ณตํ˜ธํ™”(decryption): ์•”ํ˜ธ๋ฌธ์„ ํ‰๋ฌธ์œผ๋กœ ๋ณ€ํ™˜ * ํ‚ค(key): ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™” ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์—ด์‡  ๐Ÿ“ ์ผ๋ฐ˜์ ์ธ ์•”ํ˜ธ์˜ ์š”๊ฑด ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ + ํ‚ค(key) ์ œ 3์ž๊ฐ€ ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ๋”๋ผ๋„ ํ‚ค(key)๋ฅผ ๋ชจ๋ฅด๋ฉด ์•”ํ˜ธ๋ฅผ ํ’€ ์ˆ˜ ์—†์Œ 2. ๊ณ ๋Œ€ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ• ์ „์น˜๋ฒ•(Permutatio.. 2020. 4. 5.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ• - ์ด์ง„ ํƒ์ƒ‰, ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ• - ์ด์ง„ ํƒ์ƒ‰, ํ€ต ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1. ๋ถ„ํ• ์ •๋ณต(Divide-and-Conquer) ๋ฐฉ๋ฒ• - ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜ - ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• : ๋ถ„ํ• ์ •๋ณต(divide-and-conquer) ๋ฐฉ๋ฒ•, ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(dynamic programming) ๋ฐฉ๋ฒ•, ์š•์‹ฌ์Ÿ์ด(greedy) ๋ฐฉ๋ฒ• 1) ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์˜ ์›๋ฆฌ - ์ˆœํ™˜์ (recursive)์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ํ•˜ํ–ฅ์‹(top-down) ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์ฃผ์–ด์ง„ ๋ฌธ์ œ์˜ ์ž…๋ ฅ์„ ๋” ์ด์ƒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์ˆœํ™˜์ ์œผ๋กœ ๋ถ„ํ• ํ•˜๊ณ  ๋ถ„ํ• ๋œ ์ž‘์€ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•œ ํ›„ ๊ทธ ํ•ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์›๋ž˜ ๋ฌธ์ œ์˜ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹ 2) ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ•์˜ ํŠน์ง• - ๋ถ„ํ• ๋œ ์ž‘์€ ๋ฌธ์ œ๋Š” ์›๋ž˜ ๋ฌธ์ œ์™€ ์„ฑ๊ฒฉ์ด ๋™์ผํ•˜๋‹ค. โ†’ ์ž…๋ ฅ ํฌ๊ธฐ๋งŒ ์ž‘์•„์ง - ๋ถ„ํ• ๋œ ๋ฌธ.. 2020. 3. 23.
[์ปดํ“จํ„ฐ๋ณด์•ˆ] ์ •๋ณด๋ณดํ˜ธ์˜ ๋ชฉํ‘œ - ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๊ฐ€์šฉ์„ฑ [์ปดํ“จํ„ฐ๋ณด์•ˆ] ์ •๋ณด๋ณดํ˜ธ์˜ ๋ชฉํ‘œ - ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๊ฐ€์šฉ์„ฑ ๐Ÿ’ก ์ •๋ณด๋ณดํ˜ธ์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ - ๊ธฐ๋ฐ€์„ฑ(Confidentiality) - ๋ฌด๊ฒฐ์„ฑ(Integrity) - ๊ฐ€์šฉ์„ฑ(Availability) ๐Ÿ’ก ์ •๋ณด๋ณดํ˜ธ์˜ ๊ธฐํƒ€ ๋ชฉํ‘œ - ๋ถ€์ธ๋ฐฉ์ง€(Non-Repudiation) - ์ธ์ฆ(Authentication) - ์ ‘๊ทผ์ œ์–ด(Access Control) 1. ์ •๋ณด๋ณดํ˜ธ์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ ๊ธฐ๋ฐ€์„ฑ(Confidentiality) ํ—ˆ๋ฝ๋˜์ง€ ์•Š์€ ์ž๊ฐ€ ์ •๋ณด์˜ ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ ์˜ˆ) ๊ณ ๊ฐ ์ •๋ณด ๋ณดํ˜ธ ์ ‘๊ทผ ์ œ์–ด์™€ ์•”ํ˜ธํ™” ๋ฌด๊ฒฐ์„ฑ(Integrity) ํ—ˆ๋ฝ๋˜์ง€ ์•Š์€ ์ž๊ฐ€ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์œ„๋ณ€์กฐํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ ์œ„๋ณ€์กฐ ๋ฐœ์ƒ ์‹œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ด์•ผํ•จ ๊ฐ€์šฉ์„ฑ(Availability) ํ—ˆ๋ฝ๋œ ์ž = ์ ‘๊ทผ ๊ถŒํ•œ์ด ์žˆ๋Š” ์ž๋Š” ์–ธ์ œ๋“  ํ•„์š”ํ• ๋•Œ.. 2020. 3. 23.
[์ปดํ“จํ„ฐ๊ณตํ•™/์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™] ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ๊ฐœ์š” [์ปดํ“จํ„ฐ๊ณตํ•™/์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™] ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ๊ฐœ์š” 1. ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ •์˜ ํฌ๊ด„์ /์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ๊ด€์ ์˜ ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ : ๐Ÿ‘‰ ์ข์€ ์˜๋ฏธ์˜ ์†Œํ”„ํŠธ์›จ์–ด(ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ด€๋ จ ๋ฐ์ดํ„ฐ์˜ ๋ฌถ์Œ)์— ๋”ํ•˜์—ฌ ๊ด€๋ จ ๋ฌธ์„œ๋“ค์„ ํฌํ•จํ•œ ๊ฐœ๋… 2. ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ถ„๋ฅ˜ ๊ธฐ๋Šฅ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์šฉ์ž์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜ ์ผ๋ฐ˜(Generic) ์†Œํ”„ํŠธ์›จ์–ด : = ํŒจํ‚ค์ง€ ์†Œํ”„ํŠธ์›จ์–ด = ๋ฒ”์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๋งž์ถคํ˜•(Custom) ์†Œํ”„ํŠธ์›จ์–ด : = ๋น„์Šคํฌํฌ ์†Œํ”„ํŠธ์›จ์–ด 3. ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ฑ์งˆ ๋ฌดํ˜•์˜ ์ธ๊ณต๋ฌผ - ๋ฌผ์งˆ์ ์ธ ์„ฑ์งˆ ์—†์Œ (H/W์— ๋น„ํ•ด) ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ์กฐ๋ฆฝ์„ ํ†ตํ•ด ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์›€ ์„ค๊ณ„ ๊ณผ์ •์˜ ํ’ˆ์งˆ ๋ณด์ฆ ํ™œ๋™ ์ค‘์š” (cf. H/W : ๊ตฌํ˜„/์ œ์ž‘ ๊ณผ์ •์ด ์ค‘์š”) ๊ฐœ๋ฐœ ๋น„์šฉ โ‰’ ์ธ๊ฑด๋น„ (H/W์— ๋น„ํ•ด) ๋ณ€๊ฒฝ ์šฉ์ด - ์†Œํ”„ํŠธ์›จ์–ด์˜ .. 2020. 3. 22.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„์™€ ๋ถ„์„ - ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ์ ๊ทผ์„ฑ๋Šฅ [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„์™€ ๋ถ„์„ - ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ์ ๊ทผ์„ฑ๋Šฅ 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ฃผ์–ด์ง„ ๋ฌธ์ œ, ์†์„ฑ, ์กฐ๊ฑด ๋“ฑ์— ๋”ฐ๋ผ ๋งค์šฐ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์ด๊ณ  ๋ฒ”์šฉ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•์€ ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ ์ค‘ ๋Œ€ํ‘œ์ ์ธ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์„ธ ๊ฐ€์ง€๋ฅผ ๊ผฝ์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•(Divide-and-Conquer) ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•(Dynamic Programming) ์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ•(Greedy) ๋”ฐ๋ผ์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์œ„ ์„ธ ๊ฐ€์ง€ ์„ค๊ณ„ ๊ธฐ๋ฒ•์€ ๊ผญ ์•Œ์•„๋‘ฌ์•ผ ํ• ๊ฒƒ์ด๋‹ค. 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ ๋ถ„์„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ ๋ถ„์„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘๊ณผ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์–‘ โ†’ ๊ณต๊ฐ„ ๋ณต์žก๋„(Space Complexity) = ์ •์  ๊ณต๊ฐ„ + ๋™์  ๊ณต๊ฐ„ .. 2020. 3. 11.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋…๊ณผ ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋…๊ณผ ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜์™€ ์กฐ๊ฑด 1) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋“ค์˜ ๋‹จ๊ณ„์  ๋‚˜์—ด 2) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์กฐ๊ฑด ์ž…๋ ฅ : 0๊ฐœ ์ด์ƒ์˜ ์™ธ๋ถ€ ์ž…๋ ฅ ์ถœ๋ ฅ : 1๊ฐœ ์ด์ƒ์˜ ์ถœ๋ ฅ ๋ช…ํ™•์„ฑ : ๊ฐ ๋ช…๋ น์€ ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ๋ช…ํ™•ํ•ด์•ผ ํ•จ ์œ ํ•œ์„ฑ : ํ•œ์ •๋œ ์ˆ˜์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒ๋จ ์œ ํšจ์„ฑ : ๋ชจ๋“  ๋ช…๋ น์€ ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์กฐ๊ฑด์„ ํ•ฉ์ณ์„œ ์ •์˜ํ•˜์ž๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ์ปดํ“จํ„ฐ๊ฐ€ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ์ผ๋ จ์˜ ์œ ํ•œ๊ฐœ์˜ ๋ช…๋ น๋“ค์„ ์ˆœ์„œ์ ์œผ๋กœ ๊ตฌ์„ฑํ•œ ๊ฒƒ์ด๋‹ค. 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์„ฑ ๋‹จ๊ณ„ 3. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ‘œํ˜„/๊ธฐ์ˆ  ๋ฐฉ๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ ์ผ์ƒ ์–ธ์–ด, ์˜์‚ฌ ์ฝ”๋“œ(Pseudo code), ์ˆœ์„œ๋„์˜ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ.. 2020. 3. 10.
[์ž๋ฃŒ๊ตฌ์กฐ] ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(singly linked list) - ์ •๋ฆฌ ๋ฐ ์—ฐ์Šต๋ฌธ์ œ 1. ๋ฆฌ์ŠคํŠธ์˜ ๊ฐœ๋… - ๋ฆฌ์ŠคํŠธ๋Š” ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์›์†Œ๋“ค ๊ฐ„์˜ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋ฅผ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. - ์›์†Œ๋“ค ๊ฐ„์˜ ์ˆœ์„œ๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ(์ถ”์ƒ์ ์œผ๋กœ) ์ง€์ผœ์ง€๋ฉฐ ์›์†Œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜๋Š” ์ƒ๊ด€ํ•˜์ง€ ์•Š๋Š”๋‹ค. - ๋ฐฐ์—ด์˜ ์ˆœ์„œ : ๋ฌผ๋ฆฌ์  VS ๋ฆฌ์ŠคํŠธ์˜ ์ˆœ์„œ : ๋…ผ๋ฆฌ์ =์ถ”์ƒ์ =์˜๋ฏธ์  - ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋ฅผ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด ์›์†Œ์˜ ์ด๋™์ด ๋งŽ์•„์ง„๋‹ค. - ๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•œ๋‹ค. - ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ : ๋‹ค์Œ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜ ์ €์žฅ - ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์™€ ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์ด์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค. 2. ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌํ˜„ ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํžˆ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์ž๋ฃŒ ์ด๋™์œผ๋กœ ์ธํ•ด ์ปดํ“จํŒ… ์„ฑ๋Šฅ์˜ ๋น„ํšจ.. 2019. 11. 20.
[์ž๋ฃŒ๊ตฌ์กฐ] ํ - ์ •๋ฆฌ ๋ฐ ์—ฐ์Šต๋ฌธ์ œ 1. ํ(queue)์˜ ๊ฐœ๋… - ํ์˜ ์Šคํƒ์˜ ๊ณตํ†ต์ ์€ ๊ฐ์ฒด์™€ ๊ทธ ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ์ถ”์ƒ ์ž๋ฃŒํ˜•์ด๋ผ๋Š” ๊ฒƒ - ๊ฐ€์žฅ ๋จผ์ € ์ž…๋ ฅ๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ถœ๋ ฅ๋˜๋Š” ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. - FIFO(First In First Out, ์„ ์ž…์„ ์ถœ) - FCFS(First Come First Servce, ์„ ์ฐฉ์ˆœ ์„œ๋ธŒ) - ํ•œ์ชฝ ๋์—์„œ๋Š” ์›์†Œ์˜ ์‚ฝ์ž… ์—ฐ์‚ฐ๋งŒ, ๋‹ค๋ฅธ ํ•œ์ชฝ ๋์—์„œ๋Š” ์‚ญ์ œ ์—ฐ์‚ฐ๋งŒ ๋ฐœ์ƒ - ๋‘๊ฐœ์˜ ํ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜(์ผ๋ฐ˜์ ์œผ๋กœ front, rear๋กœ ๋ช…๋ช…)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. - front๋Š” ํ์˜ ์‚ญ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. - rear๋Š” ํ์˜ ์‚ฝ์ž…์ด ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. - ์‚ฝ์ž… ์‹œ rear๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์‚ญ์ œ ์‹œ front๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค. 2. ํ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜•(ADT) * Object(๊ฐ.. 2019. 11. 20.