All
thumbnail
[CS] TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ
๐Ÿ€ TCP/IP 4๊ณ„์ธต ๋ชจ๋ธ 1. ๊ณ„์ธต ๊ตฌ์กฐ TCP/IP ๊ณ„์ธต์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต, ์ „์†ก ๊ณ„์ธต, ์ธํ„ฐ๋„ท ๊ณ„์ธต, ๋งํฌ ๊ณ„์ธต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. TCP/IP ๊ณ„์ธต๊ณผ ๋‹ฌ๋ฆฌ OSI ๊ณ„์ธต์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์„ ์„ธ ๊ฐœ๋กœ ์ชผ๊ฐœ๊ณ  ๋งํฌ ๊ณ„์ธต์„ ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต, ๋ฌผ๋ฆฌ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ ์„œ ํ‘œํ˜„ํ•˜๊ณ  ์ธํ„ฐ๋„ท ๊ณ„์ธต์„ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ ๋ถ€๋ฅธ๋‹ค. ์ด ๊ณ„์ธต๋“ค์€ ํŠน์ • ๊ณ„์ธต์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๋‹ค๋ฅธ ๊ณ„์ธต์ด ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(application) ๊ณ„์ธต์€ FTP, HTTP, SSH, SMTP, DNS ๋“ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต์ด๋ฉฐ ์›น ์„œ๋น„์Šค, ์ด๋ฉ”์ผ ๋“ฑ ์„œ๋น„์Šค๋ฅผ ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์ธต์ด๋‹ค. FTP : ์žฅ์น˜์™€ ์žฅ์น˜ ๊ฐ„์˜ ํŒŒ์ผ์„ ์ „์†กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ SSH : ๋ณด์•ˆ๋˜์ง€ ์•Š์€ ๋„คํŠธ์›Œํฌ์—์„œ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ์•”ํ˜ธํ™” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ HTTP : World Wide Web์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์˜ ๊ธฐ์ดˆ์ด์ž ์›น ์‚ฌ์ดํŠธ๋ฅผ ์ด์š”ํ•˜๋Š” ๋ฐ ์“ฐ๋Š” ํ”„๋กœํ† ์ฝœ SMTP : ์ „์ž ๋ฉ”์ผ ์ „์†ก์„ ์œ„ํ•œ ์ธํ„ฐ๋„ท ํ‘œ์ค€ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ DNS : ๋„๋ฉ”์ธ ์ด๋ฆ„๊ณผ IP ์ฃผ์†Œ๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋Š” ์„œ๋ฒ„ ์ „์†ก ๊ณ„์ธต ์ „์†ก(transport) ๊ณ„์ธต์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์—ฐ๊ฒฐ ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ์ง€์›, ์‹ ๋ขฐ์„ฑ, ํ๋ฆ„ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ธํ„ฐ๋„ท ๊ณ„์ธต ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋  ๋•Œ ์ค‘๊ณ„ ์—ญํ• ์„ ํ•œ๋‹ค. TCP์™€ UDP๊ฐ€ ์žˆ๋‹ค. TCP ํŒจํ‚ท ์‚ฌ์ด์˜ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๊ณ  ์—ฐ๊ฒฐ ์ง€ํ–ฅ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ์—ฐ๊ฒฐ์„ ํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ์„ ๊ตฌ์ถ•ํ•ด์„œ ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋ฉฐ '๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹'์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ€์ƒํšŒ์„  ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ : ๊ฐ ํŒจํ‚ท์—๋Š” ๊ฐ€์ƒํšŒ์„  ์‹๋ณ„์ž๊ฐ€ ํฌํ•จ๋˜๋ฉฐ ๋ชจ๋“  ํŒจํ‚ท์„ ์ „์†กํ•˜๋ฉด ๊ฐ€์ƒํšŒ์„ ์ด ํ•ด์ œ๋˜๊ณ  ํŒจํ‚ท๋“ค์€ ์ „์†ก๋œ '์ˆœ์„œ๋Œ€๋กœ' ๋„์ฐฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. UDP ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๊ณ  ์ˆ˜์‹  ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๋Š” '๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹'์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๊ทธ๋žจ ํŒจํ‚ท ๊ตํ™˜ ๋ฐฉ์‹ : ํŒจํ‚ท์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ ์ตœ์ ์˜ ๊ฒฝโ€ฆ
thumbnail
[CS] ๋„คํŠธ์›Œํฌ์˜ ๊ธฐ์ดˆ
๐Ÿ€ ๋„คํŠธ์›Œํฌ์˜ ๊ธฐ์ดˆ ๋„คํŠธ์›Œํฌ๋ž€ ๋…ธ๋“œ์™€ ๋งํฌ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋…ธ๋“œ๋ž€ ์„œ๋ฒ„, ๋ผ์šฐํ„ฐ, ์Šค์œ„์น˜ ๋“ฑ ๋„คํŠธ์›Œํฌ ์žฅ์น˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋งํฌ๋Š” ์œ ๋ฌด์„ ์„ ์˜๋ฏธํ•œ๋‹ค. 1. ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ์ง€์—ฐ ์‹œ๊ฐ„ ์ข‹์€ ๋„คํŠธ์›Œํฌ๋ž€ ๋งŽ์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง๊ณ  ์žฅ์•  ๋นˆ๋„๊ฐ€ ์ ์œผ๋ฉฐ ์ข‹์€ ๋ณด์•ˆ์„ ๊ฐ–์ถ˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๋งํ•œ๋‹ค. ์ฒ˜๋ฆฌ๋Ÿ‰ ์ฒ˜๋ฆฌ๋Ÿ‰(throughput)์ด๋ž€ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” ๋‹จ์œ„ ์‹œ๊ฐ„๋‹น ๋ฐ์ดํ„ฐ์–‘์„ ๋งํ•œ๋‹ค. ๋‹จ์œ„๋กœ๋Š” bps(bits per second)๋ฅผ ์“ด๋‹ค. ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์ด ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ์ปค์ง€๋Š” ํŠธ๋ž˜ํ”ฝ, ๋„คํŠธ์›Œํฌ ์žฅ์น˜ ๊ฐ„์˜ ๋Œ€์—ญํญ, ๋„คํŠธ์›Œํฌ ์ค‘๊ฐ„์— ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ, ์žฅ์น˜์˜ ํ•˜๋“œ์›จ์–ด ์ŠคํŽ™์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. ๋Œ€์—ญํญ : ์ฃผ์–ด์ง„ ์‹œ๊ฐ„ ๋™์•ˆ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ํ๋ฅผ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋น„ํŠธ ์ˆ˜ ์ง€์—ฐ ์‹œ๊ฐ„ ์ง€์—ฐ ์‹œ๊ฐ„(latency)์ด๋ž€ ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜๋Š” ์‹œ๊ฐ„์„ ๋งํ•˜๋ฉฐ ์–ด๋–ค ๋ฉ”์‹œ์ง€๊ฐ€ ๋‘ ์žฅ์น˜ ์‚ฌ์ด๋ฅผ ์™•๋ณตํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„์„ ๋งํ•œ๋‹ค. ์ง€์—ฐ ์‹œ๊ฐ„์€ ๋งค์ฒด ํƒ€์ž…(๋ฌด์„ , ์œ ์„ ), ํŒจํ‚ท ํฌ๊ธฐ, ๋ผ์šฐํ„ฐ์˜ ํŒจํ‚ท ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค. 2. ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€์™€ ๋ณ‘๋ชฉ ํ˜„์ƒ ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€ ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€(network topology)๋Š” ๋…ธ๋“œ์™€ ๋งํฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜๋˜์–ด ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋ฐฉ์‹์ด์ž ์—ฐ๊ฒฐ ํ˜•ํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํŠธ๋ฆฌ ํ† ํด๋กœ์ง€ ํŠธ๋ฆฌ(tree) ํ† ํด๋กœ์ง€๋Š” ๊ณ„์ธตํ˜• ํ† ํด๋กœ์ง€๋ผ๊ณ  ํ•˜๋ฉฐ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ฐฐ์น˜ํ•œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ๋งํ•œ๋‹ค. ๋…ธ๋“œ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ๊ฐ€ ์‰ฌ์šฐ๋ฉฐ ํŠน์ • ๋…ธ๋“œ์— ํŠธ๋ž˜ํ”ฝ์ด ์ง‘์ค‘๋  ๋•Œ ํ•˜์œ„ ๋…ธ๋“œ์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ๋‹ค. ๋ฒ„์Šค ํ† ํด๋กœ์ง€ ๋ฒ„์Šค(bus) ํ† ํด๋กœ์ง€๋Š” ์ค‘์•™ ํ†ต์‹  ํšŒ์„  ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ๊ณต์œ ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ๋งํ•˜๋ฉฐ ๊ทผ๊ฑฐ๋ฆฌ ํ†ต์‹ ๋ง(LAN)์— ์‚ฌ์šฉํ•œ๋‹ค. ์„ค์น˜ ๋น„์šฉ์ด ์ ๊ณ  ์‹ ๋ขฐ์„ฑ์ด ์šฐ์ˆ˜ํ•˜๋ฉฐ ์ค‘์•™ ํ†ต์‹  ํšŒ์„ ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ธฐ ์‰ฝ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์Šคํ‘ธํ•‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์Šคํ‘ธํ•‘์€ LAN ์ƒ์—์„œ ์†ก์‹ ๋ถ€์˜ ํŒจํ‚ท์„ ์†ก์‹ ๊ณผ ๊ด€๋ จ ์—†๋Š” ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์— ๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์Šค์œ„์นญ ๊ธฐ๋Šฅ์„ ๋งˆ๋น„์‹œ์ปค๊ฐ€ ์†์—ฌ์„œ ํŠน์ • ๋…ธ๋“œ์— ํ•ด๋‹น ํŒจํ‚ท์ด ์˜ค๋„๋ก ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ โ€ฆ
thumbnail
[CS] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„
๐Ÿ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„(programming paradigm)์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ด€์ ์„ ๊ฐ–๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์€ ํฌ๊ฒŒ ์„ ์–ธํ˜•, ๋ช…๋ นํ˜•์œผ๋กœ ๋‚˜๋ˆ„๋ฉฐ, ์„ ์–ธํ˜•์€ ํ•จ์ˆ˜ํ˜•์ด๋ผ๋Š” ํ•˜์œ„ ์ง‘ํ•ฉ์„ ๊ฐ–๋Š”๋‹ค. ๋˜ํ•œ, ๋ช…๋ นํ˜•์€ ๋‹ค์‹œ ๊ฐ์ฒด์ง€ํ–ฅ, ์ ˆ์ฐจ์ง€ํ–ฅ์œผ๋กœ ๋‚˜๋‰œ๋‹ค. 1. ์„ ์–ธํ˜•๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(declarative programming)์ด๋ž€ '๋ฌด์—‡์„' ํ’€์–ด๋‚ด๋Š”๊ฐ€์— ์ง‘์ค‘ํ•˜๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(functional programming)์€ ์„ ์–ธํ˜• ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ์ผ์ข…์ด๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ž‘์€ ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋“ค์„ ๋ธ”๋ก์ฒ˜๋Ÿผ ์Œ“์•„ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ  ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹จ์ˆœํ•˜๊ณ  ์œ ์—ฐํ•œ ์–ธ์–ด์ด๋ฉฐ, ํ•จ์ˆ˜๊ฐ€ ์ผ๊ธ‰ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋ณด๋‹ค๋Š” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์ด ์„ ํ˜ธ๋œ๋‹ค. ์ˆœ์ˆ˜ ํ•จ์ˆ˜ ์ถœ๋ ฅ์ด ์ž…๋ ฅ์—๋งŒ ์˜์กดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ณ ์ฐจ ํ•จ์ˆ˜ ๊ณ ์ฐจ ํ•จ์ˆ˜๋ž€ ํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜๋ฅผ ๊ฐ’์ฒ˜๋Ÿผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ๋กœ์ง์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ผ๊ธ‰ ๊ฐ์ฒด ์ด๋•Œ ๊ณ ์ฐจ ํ•จ์ˆ˜๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ ํ•ด๋‹น ์–ธ์–ด๊ฐ€ ์ผ๊ธ‰ ๊ฐ์ฒด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ์— ํ•จ์ˆ˜๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP, Object-Oriented Programming)์€ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ‘œํ˜„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๊ฐ์ฒด ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ์„ค๊ณ„์— ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆฌ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง• 1. ์ถ”์ƒํ™” ์ถ”์ƒํ™”(abstraction)๋ž€ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋… ๋˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ„์ถ”๋ ค๋‚ด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ ๋“ฑ์„ ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š๊ณ , ๋‹จ์ˆœํ•œ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•˜๊ณ  ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค๊ณ  ๋‹จ์ˆœํ™”๋œ ์‚ฌ์šฉ์œผ๋กœ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค. 2. ์บก์Аํ™” ์บกโ€ฆ
thumbnail
[CS] ๋””์ž์ธ ํŒจํ„ด
๐Ÿ€ ๋””์ž์ธ ํŒจํ„ด ๋””์ž์ธ ํŒจํ„ด์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•  ๋•Œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ๋“ค์„ ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ ๊ด€๊ณ„ ๋“ฑ์„ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋‚˜์˜ '๊ทœ์•ฝ' ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด ๋†“์€ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 1. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(singleton pattern)์€ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์ด๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ์žฅ์  : ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋“œ๋Š” ๋น„์šฉ์ด ์ค„์–ด๋“ ๋‹ค. ๋‹จ์  : ์˜์กด์„ฑ์ด ๋†’์•„์ง„๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ๋‹จ์  ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ TDD(Test Driven Development)๋ฅผ ํ•  ๋•Œ ๊ฑธ๋ฆผ๋Œ์ด ๋œ๋‹ค. TDD๋ฅผ ํ•  ๋•Œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ฃผ๋กœ ํ•˜๋Š”๋ฐ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ์„œ๋กœ ๋…๋ฆฝ์ ์ด์–ด์•ผ ํ•˜๋ฉฐ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ๋“  ์‹คํ–‰๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ํŒจํ„ด์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ…Œ์ŠคํŠธ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž… ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๊ต‰์žฅํžˆ ์‹ค์šฉ์ ์ด์ง€๋งŒ, ๋ชจ๋“ˆ ๊ฐ„์˜ ๊ฒฐํ•ฉ์„ ๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ด๋•Œ ์˜์กด์„ฑ ์ฃผ์ž…(DI, Dependency Injection)์„ ํ†ตํ•ด ๊ฒฐํ•ฉ์„ ์กฐ๊ธˆ ๋” ๋А์Šจํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์˜์กด์„ฑ์ด๋ž€ ์ข…์†์„ฑ์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ A๊ฐ€ B์— ์˜์กด์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ B์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด A ๋˜ํ•œ ๋ณ€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฉ”์ธ ๋ชจ๋“ˆ์ด ์ง์ ‘ ๋‹ค๋ฅธ ํ•˜์œ„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์˜์กด์„ฑ์„ ์ฃผ๊ธฐ๋ณด๋‹ค, ์ค‘๊ฐ„์— ์˜์กด์„ฑ ์ฃผ์ž…์ž๊ฐ€ ์ด ๋ถ€๋ถ„์„ ๊ฐ€๋กœ์ฑ„ ๋ฉ”์ธ ๋ชจ๋“ˆ์ด ๊ฐ„์ ‘์ ์œผ๋กœ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”์ธ ๋ชจ๋“ˆ์€ ํ•˜์œ„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. ์ด๋ฅผ '๋””์ปคํ”Œ๋ง ๋œ๋‹ค'๊ณ ๋„ ํ•œ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์˜ ์žฅ์  ๋ชจ๋“ˆ๋“ค์„ ์‰ฝ๊ฒŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๊ฐ€ ๋˜์–ด ํ…Œ์ŠคํŒ…๊ณผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์‰ฝ๋‹ค. ๊ตฌํ˜„ํ•  ๋•Œ ์ถ”์ƒํ™” ๋ ˆ์ด์–ด๋ฅผ ๋„ฃ๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„์ฒด๋ฅผ ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜์กด์„ฑ ๋ฐฉํ–ฅ์ด ์ผ๊ด€๋˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ชจ๋“ˆ ๊ฐ„์˜ ๊ด€๊ณ„๋“ค์ด ๋ช…ํ™•ํ•ด์ง„๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์˜ ๋‹จ์  ๋ชจ๋“ˆ๋“ค์ด ๋”์šฑ๋” ๋ถ„๋ฆฌ๋˜๋ฏ€๋กœ ํด๋ž˜์Šค ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜ ๋ณต์žก์„ฑ์ด โ€ฆ
thumbnail
[TIL] ๋„คํŠธ์›Œํฌ
๐Ÿ“š ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ ๐Ÿญ ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜ ์„œ๋ฒ„๋Š” ์˜์–ด ๋‹จ์–ด ๊ทธ๋Œ€๋กœ ์ œ๊ณตํ•˜๋Š” ์ฃผ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜ ์–ด๋– ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ณณ๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์„ ๋ถ„๋ฆฌ์‹œํ‚จ ๊ฒƒ์„ 2ํ‹ฐ์–ด ์•„ํ‚คํ…์ฒ˜, ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์ด 'ํด๋ผ์ด์–ธํŠธ', ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณต(serve)ํ•˜๋Š” ๊ณณ์ด '์„œ๋ฒ„'์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ด€๊ณ„๋กœ ์š”์ฒญ์ด ์„ ํ–‰๋˜๊ณ  ๊ทธ ํ›„์— ์‘๋‹ต์ด ์˜จ๋‹ค. 3-Tier ์•„ํ‚คํ…์ฒ˜ ์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์„ ๋ณ„๋„๋กœ ๋งˆ๋ จํ•ด๋‘๋Š”๋ฐ, ์ด ๊ณต๊ฐ„์ด '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'์ด๋‹ค. ๊ธฐ์กด 2ํ‹ฐ์–ด ์•„ํ‚คํ…์ฒ˜์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋œ ํ˜•ํƒœ๋ฅผ 3ํ‹ฐ์–ด ์•„ํ‚คํ…์ฒ˜๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ํด๋ผ์ด์–ธํŠธ ์•ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ˆˆ์œผ๋กœ ๋ณด๊ณ  ๋Œ€๋ฉดํ•˜๊ธฐ์—, ํ”„๋ก ํŠธ์—”๋“œ ์˜์—ญ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์„œ๋ฒ„ ์•ฑ์€ ์‚ฌ์šฉ์ž ๋ˆˆ์— ์ง์ ‘ ๋ณด์ด์ง€ ์•Š๊ฒŒ ๋’ค์—์„œ ์ž‘๋™ํ•˜๋ฏ€๋กœ, ๋ฐฑ์—”๋“œ ์˜์—ญ์ด๋ผ๊ณ  ํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ข…๋ฅ˜ ํด๋ผ์ด์–ธํŠธ๋Š” ๋ณดํ†ต ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๊ตฌ๋ณธ๋œ๋‹ค. ์›น์‚ฌ์ดํŠธ (์›น ์•ฑ) ์Šค๋งˆํŠธํฐ / ํƒœ๋ธ”๋ฆฟ์šฉ ์•ฑ ๋ฐ์Šคํฌํƒ‘ ์•ฑ ์„œ๋ฒ„๋Š” ๋ฌด์—‡์„ ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ์ข…๋ฅ˜๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค. ์›น ์„œ๋ฒ„ : ์›น์‚ฌ์ดํŠธ์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์ •๋ณด๋“ค์„ ์ œ๊ณต ํŒŒ์ผ ์„œ๋ฒ„ : ํŒŒ์ผ ์ œ๊ณต ๋ฉ”์ผ ์„œ๋ฒ„ : ๋ฉ”์ผ์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๋ฐ์ดํ„ฐ ์ œ๊ณต์ž๋กœ์„œ ์ผํ•˜๋ฏ€๋กœ ์ผ์ข…์˜ ์„œ๋ฒ„๋กœ ๋ด„ ๐Ÿญ ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ํ†ต์‹ ๊ณผ API ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹  ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์„œ๋ฒ„ ๋งˆ์Œ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์š”์ฒญ์ด ์žˆ์–ด์•ผ ์‘๋‹ต์ด ์˜จ๋‹ค. ํ”„๋กœํ† ์ฝœ (Protocol) ํ”„๋กœํ† ์ฝœ์€ ํ†ต์‹  ๊ทœ์•ฝ, ์ฆ‰ ์•ฝ์†์ด๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ: HTTP ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ HTTP๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด์„œ ์„œ๋กœ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆˆ๋‹ค. HTTP๋ฅผ ์ด์šฉํ•ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€๋Š” "HTT ๋ฉ”์‹œ์ง€"๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. API API(Application Programming Interface)๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฆฌโ€ฆ
thumbnail
[TIL] ๋น„๋™๊ธฐ
๐Ÿ“š ๋น„๋™๊ธฐ ๐Ÿญ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๋™๊ธฐ (synchronous) JavaScript์˜ ๋™๊ธฐ ์ฒ˜๋ฆฌ๋ž€ 'ํŠน์ • ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ๋‚œ ํ›„ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ'์„ ์˜๋ฏธํ•œ๋‹ค. ๋น„๋™๊ธฐ (asynchronous) JavaScript์˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋Š” 'ํŠน์ • ์ฝ”๋“œ์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋“ค์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ'์„ ์˜๋ฏธํ•œ๋‹ค. JavaScript์˜ ์ž‘๋™์›๋ฆฌ JavaScript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์–ธ์–ด์ด๋ฏ€๋กœ, ๋™๊ธฐ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ JavaScript๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋Ÿฐํƒ€์ž„์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ๋„์™€์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํ•œ ์ž‘์—†์—†์ด ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿญ ๋น„๋™๊ธฐ JavaScript ํƒ€์ด๋จธ ๊ด€๋ จ API setTimeout(callback, millisecond) ์ผ์ • ์‹œ๊ฐ„ ํ›„์— ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) callback : ์‹คํ–‰ํ•  ์ฝœ๋ฐฑ ํ•จ์ˆ˜ millisecond : ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์‹คํ–‰ ์ „ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ์‹œ๊ฐ„ (๋ฐ€๋ฆฌ์ดˆ) return ๊ฐ’ : ์ž„์˜์˜ ํƒ€์ด๋จธ ID clearTimeout(timerId) setTimeout ํƒ€์ด๋จธ๋ฅผ ์ข…๋ฃŒ ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) timerId : ํƒ€์ด๋จธ ID return ๊ฐ’ : ์—†์Œ setInterval(callback, millisecond) ์ผ์ • ์‹œ๊ฐ„์˜ ๊ฐ„๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) callback : ์‹คํ–‰ํ•  ์ฝœ๋ฐฑ ํ•จ์ˆ˜ millisecond : ๋ฐ˜๋ณต์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ (๋ฐ€๋ฆฌ์ดˆ) return ๊ฐ’ : ์ž„์˜์˜ ํƒ€์ด๋จธ ID clearInterval(timerId) setInerval ํƒ€์ด๋จธ๋ฅผ ์ข…๋ฃŒ ๋งค๊ฐœ๋ณ€์ˆ˜(parameter) timerId : ํƒ€์ด๋จธ ID return ๊ฐ’ : ์—†์Œ ๐Ÿญ Callback ๋น„๋™๊ธฐ๋กœ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” Callbackํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. Callbackํ•จ์ˆ˜๋กœ ๋น„๋™๊ธฐ๋ฅผ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Callback ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์งˆ ์ˆ˜๋ก ๋ณตโ€ฆ
thumbnail
[Algorithm] 12์ฃผ์ฐจ ๊ณผ์ œ
๐ŸŒฑ 12์ฃผ์ฐจ ๊ณผ์ œ ๐Ÿ–‹ ๋ฐฑ์ค€ 15961 ํšŒ์ „์ดˆ๋ฐฅ ๋ฐฑ์ค€ 15961 ํšŒ์ „์ดˆ๋ฐฅ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์ƒ๊ฐํ•œ ๋ฌธ์ œ! ์˜ˆ์ œ ํ’€๋ฉด์„œ ๋‹ต๋„ ์ž˜ ๋‚˜์˜ค๊ณ  ๋ง‰ํžˆ๋Š” ๋ถ€๋ถ„ ๋”ฑํžˆ ์—†์—ˆ๋Š”๋ฐ ๊ณ„์† ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํžŒํŠธ๋ฅผ ๋ดค๋Š”๋ฐ ํˆฌํฌ์ธํ„ฐ์™€ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋ผ๋Š”๋ฐ,,, ์‚ฌ์‹ค ํˆฌํฌ์ธํ„ฐ๋กœ ํ‘ธ๋Š” ๊ฑด ๋‚ด๊ฐ€ ํ‘ผ๊ฑฐ๋ž‘ ๋”ฑํžˆ ํฌ๊ฒŒ ๋‹ค๋ฅธ ์ ์€ ์—†์„ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋Š” ์ •๋ง ์ฒ˜์Œ ๋“ค์–ด๋ดค๋‹ค... ์ฒซ๋ฒˆ์งธ ์ œ์ถœ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋กœ ํ’€๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๐Ÿ–‹ ๋ฐฑ์ค€ 14719 ๋น—๋ฌผ ๋ฐฑ์ค€ 14719 ๋น—๋ฌผ ์ฒ˜์Œ์—๋Š” ์‹œ์ž‘์ธ๋ฑ์Šค, ๋ ์ธ๋ฑ์Šค๋ฅผ ํˆฌํฌ์ธํŠธ์ฒ˜๋Ÿผ ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์˜ค๋ฅธ์ชฝ์— ๋” ๋†’์€ ํ˜น์€ ๋” ๋‚ฎ์€ ๋ธ”๋ก์„ ์˜ˆ์ƒํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ–ˆ๋‹ค. ๊ณ ๋ฏผ์„ ํ•˜๋‹ค๊ฐ€ ๋ธ”๋Ÿญ์„ ์ขŒํ‘œ์ฒ˜๋Ÿผ ์“ฐ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ฐ ์ธต๋งˆ๋‹ค ๊ฒ€์ฆ์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ, start๋Š” ์™ผ์ชฝ์— ๊ฐ€๋กœ๋ง‰๊ณ  ์žˆ๋Š” ๋ฒฝ์ด ์žˆ๋Š”๊ฐ€์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ์ด๋‹ค. ๊ฐ์ธต๋งˆ๋‹ค y์ขŒํ‘œ 0๋ถ€ํ„ฐ w-1๊นŒ์ง€ ๊ฒ€์ฆํ•œ๋‹ค. 1์ผ ๊ฒฝ์šฐ์— start๊ฐ€ ์žˆ๋‹ค๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์นด์šดํŠธํ•œ ์ˆซ์ž๋ฅผ ์ „์ฒด ์นด์šดํŠธ์— ๋”ํ•ด์ฃผ๊ณ  tempCnt๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. start๊ฐ€ ์—†๋‹ค๋ฉด start๋ฅผ True๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ์™ผ์ชฝ์— ๋ฒฝ์ด ์—†์—ˆ๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ tempCnt๋Š” ๋”ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. 0์ผ ๊ฒฝ์šฐ์— start๊ฐ€ ์žˆ๋‹ค๋ฉด tempCnt๋ฅผ 1๋”ํ•ด์ค€๋‹ค. start๊ฐ€ ์—†๋‹ค๋ฉด ์™ผ์ชฝ์— ๋ฒฝ์ด ์—†๋‹ค๋Š” ์†Œ๋ฆฌ์ด๋ฏ€๋กœ ๊ตณ์ด ์นธ์„ ๋”ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๐Ÿ–‹ ๋ฐฑ์ค€ 11660 ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 5 ๋ฐฑ์ค€ 11660 ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 5 ์ฒซ๋ฒˆ์งธ ์ œ์ถœ ์‚ฌ์‹ค ์ด ์ฝ”๋“œ๋Š” ์ œ์ถœํ•˜๋ฉด์„œ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์—ญ์‹œ๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ. ๋‹ค์‹œ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค ์ƒ๊ฐํ•ด๋ณด๋‹ˆ, ํ•œ ์ขŒํ‘œ๊นŒ์ง€์˜ ๋ˆ„์ ํ•ฉ๊ณผ ๋‹ค๋ฅธ ์ขŒํ‘œ๊นŒ์ง€์˜ ๋ˆ„์ ํ•ฉ์„ ๋นผ๋ฉด ๊ทธ ์ขŒํ‘œ ๋‘๊ฐœ ์‚ฌ์ด์˜ ๋ˆ„์ ํ•ฉ์ด ๋‚˜์˜จ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ฌ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ์ค„ ํ•œ ์ค„ ์”ฉ ์œ„์˜ ์›๋ฆฌ๋ฅผ ์ ์šฉํ•ด์„œ ๊ตฌํ•ด์คฌ๋‹ค. ๋‘๋ฒˆ์งธ ์ œ์ถœ ๐Ÿ–‹ ๋ฐฑ์ค€ 14712 ๋„ด๋ชจ๋„ด๋ชจ ๋ฐฑ์ค€ 14712 ๋„ด๋ชจ๋„ด๋ชจ ๐Ÿ–‹ ๋ฐฑ์ค€ 9663 N-Queen ๋ฐฑ์ค€ 9663 N-Queen
thumbnail
[Algorithm] 11์ฃผ์ฐจ ๊ณผ์ œ
๐Ÿญ ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking) ๋ฐฑํŠธ๋ž˜ํ‚น์ด๋ž€ ํ•ด๋ฅผ ์ฐพ๋Š” ๋„์ค‘ ํ•ด๊ฐ€ ์•„๋‹ˆ์–ด์„œ ๋ง‰ํžˆ๋ฉด, ๋˜๋Œ์•„๊ฐ€์„œ ๋‹ค์‹œ ํ•ด๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ธฐ๋ฒ•์„ ๋งํ•œ๋‹ค. DFS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ์•ฝ ์กฐ๊ฑด์— ๋งž์ง€ ์•Š์œผ๋ฉด ๊ทธ ์ฆ‰์‹œ ์ค‘๋‹จํ•˜๊ณ  ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐ€์—ฌ ๋‹ค์‹œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ์ฐพ์œผ๋ฉด ๋œ๋‹ค. ๐Ÿ–‹ ๋ฐฑํŠธ๋ž˜ํ‚น ์˜ˆ์ œ 1 - ๋ฐฑ์ค€ 15649 N๊ณผ M(1) ์ด ๋ฌธ์ œ๋Š” ๋ฒ„์ „์ด ์ •๋ง ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ๋ฌธ์ œ๋“ค์€ ๋ฐฑํŠธ๋ž˜ํ‚น ์ž…๋ฌธ ์˜ˆ์ œ๋ผ๊ณ  ํ•œ๋‹ค. ๐ŸŒฑ 11์ฃผ์ฐจ ๊ณผ์ œ ์ง€๋‚œ ์ฃผ ๊ณผ์ œ์™€ ํ•ด์ปคํ†ค์—์„œ ๋ฐฑํŠธ๋ž˜ํ‚น์ด ๋„ˆ๋ฌด ์–ด๋ ค์› ์–ด์„œ ์ด๋ฒˆ ์ฃผ ๋ฏธ๋‹ˆ ๊ณผ์ œ๋กœ ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ ์„ธ ๊ฐ€์ง€๋ฅผ ๋ฝ‘์•˜๋‹ค. ์•„์ง ๋ฐฑํŠธ๋ž˜ํ‚น ๊ฐœ๋…์— ๋Œ€ํ•œ ๊ฐ์ด ์žกํžˆ์ง€ ์•Š์•„์„œ ๋ฐฑํŠธ๋ž˜ํ‚น ์˜ˆ์ œ๋“ค์„ ํ˜ผ์ž ๋ช‡๊ฐœ ํ’€์–ด๋ณด์•˜๋‹ค. ๋ฌผ๋ก  ๋Œ€๋ถ€๋ถ„์ด N๊ณผ M ์‹œ๋ฆฌ์ฆˆ์˜€์ง€๋งŒ ํ™•์‹คํžˆ ์–ด๋–ค ์‹์œผ๋กœ ํ‘ธ๋Š”์ง€์— ๋Œ€ํ•œ ๊ฐ์€ ์žกํ˜”๋‹ค. ๋‹ค๋งŒ ๋ฌธ์ œ๋Š” ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ ์ด๊ฒŒ ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋Š” ๊ฐ์„ ์žก์ง€๋Š” ๋ชปํ•  ๊ฒƒ ๊ฐ™์€ ๋А๋‚Œ...! ์ด๋ฒˆ ๊ณผ์ œ๋“ค๋„ ๋ฐฑํŠธ๋ž˜ํ‚น์ž„์„ ์•Œ์•˜์œผ๋‹ˆ ๋ฐฐ์šด ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ์ง€๋งŒ, ์Šคํ„ฐ๋”” ์ดˆ๋ฐ˜์— ์ฑ…์œผ๋กœ ํ’€ ๋•Œ ๋‹จ์›๋ช…์„ ์•Œ๊ณ  ํ’€์—ˆ์„ ๋•Œ๋ž‘ ๊ฐ™์ด ๊ทธ ๋‹จ์›๋ช…์„ ๋นผ๋ฉด ์–ด๋ ค์šด ๋А๋‚Œ...! ์ด๊ฒŒ ํ›ˆ๋ จ์„ ํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๊ฑด ์–ด๋А์ •๋„ ํ•  ์ˆ˜ ์žˆ๊ฒ ๋Š”๋ฐ ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผํ•˜๋А๋ƒ๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ณ  ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค. ์ด๊ฒƒ๋„ ํ›ˆ๋ จ์„ ํ†ตํ•ด ๊ธฐ๋ฅด๋Š” ์ˆ˜๋ฐ–์—... ๐Ÿ–‹ ๋ฐฑ์ค€ 5568 ์นด๋“œ ๋†“๊ธฐ ๋ฐฑ์ค€ 5568 ์นด๋“œ ๋†“๊ธฐ ์•„๋งˆ ๋‚ด๊ฐ€ ๊ณจ๋ž๋˜ ์‹ค๋ฒ„ 4 ๋ฌธ์ œ...^^ ๋ฐฑํŠธ๋ž˜ํ‚น ๊ฐœ๋…์ด ํ™•์‹คํžˆ ์žกํ˜€์žˆ์ง€ ์•Š์•„์„œ ์‰ฌ์šด ๋ฌธ์ œ๋กœ ๊ณจ๋ž๋‹ค. ์ผ๋‹จ ์นด๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ์ˆ˜๋ฅผ ๋‘ ๋ฒˆ ์ด์ƒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•ˆ๋จ! ํ•˜์ง€๋งŒ ์ค‘๋ณต๋˜๋Š” ์นด๋“œ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ ๋งŒ๋“ค์–ด์ง„ ์ˆ˜์—ด์—์„œ ๋‹ค๋ฅธ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ˆซ์ž๋กœ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ’์„ ๋‚ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” ๋˜ ์—†์• ์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์ ์ธ ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ๊ตฌํ•˜๊ณ , ์ค‘๋ณต๋„ ์ œ๊ฑฐํ•ด์ฃผ๊ณ , ๊ทธ ๋‹ค์Œ ์ด๋ฅผ ๋‹ค ํ•œ ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ๊ณ  ์ตœ์ข…์ ์œผ๋กœ set๋กœ ๋งŒ๋“ค์–ด์ค€ ๋’ค ์—ฌ๊ธฐ์„œ ๊ฐฏ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ–ˆ๋‹ค. ๐Ÿ–‹ ๋ฐฑ์ค€ 10974 ๋ชจ๋“  ์ˆœ์—ด ๋ฐฑ์ค€ 10974 ๋ชจ๋“  ์ˆœ์—ด ์œ„ ๋ฌธ์ œ์™€โ€ฆ
thumbnail
[Algorithm] 11์ฃผ์ฐจ ํ•ด์ปคํ†ค
๐ŸŒฑ 11์ฃผ์ฐจ ํ•ด์ปคํ†ค ๐Ÿ–‹ 2023 KAKAO BLIND RECRUITMENT ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ง‘ ์œ ํšจ๊ธฐ๊ฐ„ 2023 KAKAO BLIND RECRUITMENT ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ง‘ ์œ ํšจ๊ธฐ๊ฐ„ ๋”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์›” ์ˆ˜๊ฐ€ 1๋…„์„ ๋„˜์–ด๊ฐ„๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ง๊ฐํ•˜๊ณ  ์ฒ˜์Œ์—๋Š” ๊ฐœ์›” ์ˆ˜๋ฅผ ๋”ํ•˜๊ณ  12๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด 12๋ฅผ ๋นผ์ฃผ๊ณ  1๋…„์„ ๋”ํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค ํ–ˆ๋‹ค. ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋Š” ๋งž์•˜์ง€๋งŒ ์ฑ„์ ํ•ด๋ณด๋‹ˆ ํ‹€๋ ค์„œ, ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์ฝ์–ด๋ดค๋‹ค. 1๋…„ ์ด์ƒ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๊ตฌ๋‚˜๋ฅผ ๊นจ๋‹ซ๊ณ  ๋‹ค์‹œ ์ง  ์ฝ”๋“œ์ด๋‹ค. ์‚ฌ์‹ค ์ข€ ๊ธธ๊ธด ํ•˜์ง€๋งŒ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ’€์—ˆ๋Š”์ง€ ์ง๊ด€์ ์ด๊ธด ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ๊ฐ€ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š” ์ ์ด ๋ง˜์— ์•ˆ๋“ค์—ˆ๋Š”๋ฐ, ์นœ๊ตฌ๊ฐ€ ์ข‹์€ ์•„์ด๋””์–ด๋ฅผ ์คฌ๋‹ค. ๋‹ค '์ผ์ˆ˜'๋กœ ๋ฐ”๊ฟ”์„œ ๊ณ„์‚ฐํ•˜๋ฉด ๋œ๋‹ค. ์‚ฌ์‹ค ๋‚ด๊ฐ€ datetime ๋ชจ๋“ˆ์„ ์“ฐ๋ ค๋‹ค ๋ง์•˜๋Š”๋ฐ, ๊ฑฐ๊ธฐ์„œ๋„ ๊ฒฐ๊ตญ ๋‚ ์งœ๋ฅผ ๋ฐ›์œผ๋ฉด ์ˆซ์ž๋กœ ์น˜ํ™˜ํ•ด์„œ ๋น„๊ต๋ฅผ ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋งฅ์ƒ ํ†ตํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ–‹ 2023 KAKAO BLIND RECRUITMENT ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ 2023 KAKAO BLIND RECRUITMENT ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธํ–‰์‚ฌ ๋‹ค ํ™•์ธํ•˜๋Š” ๊ฑฐ ์ด์™ธ์—๋Š” ๋”ฑํžˆ ์ƒ๊ฐ๋‚˜๋Š” ํ•ด๊ฒฐ๋ฒ•์ด ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ค‘๋ณต์ˆœ์—ด์„ ์ด์šฉํ•ด์„œ ๊ฐ ์ด๋ชจํ‹ฐ์ฝ˜๋ณ„๋กœ ํ• ์ธ์œจ์„ ๋ฐฐ๋‹นํ•ด์ฃผ์—ˆ๋‹ค. ์œ ์ €๋งˆ๋‹ค ๊ฐ ์ด๋ชจํ‹ฐ์ฝ˜์˜ ํ• ์ธ์œจ์ด ์œ ์ €์˜ ํ• ์ธ์œจ๋ณด๋‹ค ํด ๋•Œ๋Š” sale์— ํ• ์ธ๋œ ์ด๋ชจํ‹ฐ์ฝ˜ ๊ฐ€๊ฒฉ์„ ๋”ํ•ด์ค€๋‹ค. ๋ชจ๋“  ์ด๋ชจํ‹ฐ์ฝ˜์„ ์ˆœํšŒํ•˜๋ฉฐ ์ด ์ž‘์—…์„ ํ•ด์ค€ ๋’ค, ์œ ์ €๊ฐ€ ์›ํ•˜๋Š” ๊ฐ€๊ฒฉ๋ณด๋‹ค ๊ตฌ๋งค๊ฐ€๊ฒฉ์ด ํด ๊ฒฝ์šฐ, sale์„ 0์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ  userCount๋ฅผ 1 ๋”ํ•ด์ค€๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๊ฐ ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธ์œจ์˜ ์กฐํ•ฉ๋ณ„๋กœ, ์ด๋ชจํ‹ฐ์ฝ˜์„ ๊ตฌ๋งคํ•˜๋Š” ์œ ์ €์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค. ๋˜, ๊ตฌ๋งค๊ฐ€๊ฒฉ์ด ํฌ์ง€ ์•Š๋‹ค๋ฉด userSale์— sale๋ฅผ ๋”ํ•ด์ฃผ์—ˆ๋‹ค. userSale์—๋Š” ๊ฐ ์ด๋ชจํ‹ฐ์ฝ˜ ํ• ์ธ์œจ์˜ ์กฐํ•ฉ๋ณ„๋กœ, ์ „์ฒด ์œ ์ €๊ฐ€ ๊ตฌ๋งคํ•˜๋Š” ์ด๋ชจํ‹ฐ์ฝ˜ ํŒ๋งค๊ฐ€๊ฒฉ์„ ์ €์žฅํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์œ ์ €๋ณ„๋กœ ๋ชจ๋‘ ์ˆœํšŒํ•˜๊ณ  ๋‚œ ๋‹ค์Œ, userCount, userSale์„ answer์— ๋‹ด์•„์ค€๋‹ค. answer๋ฅผ ๋งˆ์ง€๋ง‰์— ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด, ์ž๋™์œผ๋กœ ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ ์š”์†Œ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ์„ โ€ฆ
thumbnail
[Algorithm] 10์ฃผ์ฐจ ๊ณผ์ œ
๐ŸŒฑ 10์ฃผ์ฐจ ๊ณผ์ œ ๐Ÿ–‹ 9333 ๋ˆ ๊ฐš๊ธฐ ๋ฐฑ์ค€ 9333 ๋ˆ ๊ฐš๊ธฐ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋ฉด์„œ ์ด์ž์™€ ํ•จ๊ป˜ ๊ฐš์„ ๋ˆ์„ ๊ณ„์‚ฐํ•ด์ฃผ๊ณ , ๊ฐš์„ ์ˆ˜ ์žˆ๋Š”๋งŒํผ์„ ๋นš์—์„œ ๋นผ์ฃผ๊ณ  ๋‚˜์„œ ๋” ๊ฐš์„ ๋ˆ์ด ๋‚จ์•„์žˆ๋‹ค๋ฉด ์•ž์˜ ์ž‘์—…์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋Š” ๊ณ„์† 21ํผ์„ผํŠธ์—์„œ ํ‹€๋ฆฌ๋Š” ๊ฒƒ!!! ๋„๋Œ€์ฒด ์™œ...!!!!!! ๐Ÿ–‹ 22233 ๊ฐ€ํฌ์™€ ํ‚ค์›Œ๋“œ ๋ฐฑ์ค€ 22233 ๊ฐ€ํฌ์™€ ํ‚ค์›Œ๋“œ 8์ฃผ์ฐจ์—์„œ ์ฐจ์ง‘ํ•ฉ ๊ฐœ๋…์„ ์จ์„œ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์ •๋ง ๋„ˆ๋ฌด๋„ˆ๋ฌด ์‰ฝ๊ฒŒ ํ’€๋ ธ๋‹ค. ๋ฉ”๋ชจ๋ฅผ ์ง‘ํ•ฉ์œผ๋กœ ๋ƒ…๋‘๊ณ , ๊ฑฐ๊ธฐ์„œ ๋งค๋ฒˆ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•  ๋•Œ ํ•ด๋‹น ํ‚ค์›Œ๋“œ๋“ค์„ ์‚ญ์ œํ•˜๊ณ  ๋ฉ”๋ชจ์— ๋‚จ์€ ํ‚ค์›Œ๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์ฃผ์—ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ(?)๊ฐ€ ์žˆ๋‹ค๋ฉด, ์š”์ฆ˜ ๋ถ€ํŠธ์บ ํ”„์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์“ฐ๋‹ค๋ณด๋‹ˆ, ํŒŒ์ด์ฌ๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•จ์ˆ˜ ์‚ฌ์ด์—์„œ ํ˜ผ๋™์ด ์˜จ๋‹ค...! ๐Ÿ–‹ 1699 ์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ ๋ฐฑ์ค€ 1699 ์ œ๊ณฑ์ˆ˜์˜ ํ•ฉ ์ฒซ ์ œ์ถœ ์™œ ํ‹€๋ ธ๋Š”๊ฐ€... ์ฃผ์–ด์ง€๋Š” ์ˆซ์ž๋ณด๋‹ค ์ž‘์€ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ œ๊ณฑ๊ทผ์„ ๊ณจ๋ผ ๊ณ„์† ๊ณ„์† ๋นผ์ฃผ์—ˆ๋‹ค. ๊ทผ๋ฐ ํ’€๊ณ  ๋‚˜๋‹ˆ ๋“œ๋Š” ์ƒ๊ฐ์ธ๋ฐ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ๋‹ค ๋งž์ง€๋งŒ, ํฐ ์ˆซ์ž์ผ ๊ฒฝ์šฐ์— ๋” ํฐ ์ œ๊ณฑ๊ทผ์„ ๋นผ๋Š” ๊ฒƒ ๋ณด๋‹ค, ์ž‘์€ ์ œ๊ณฑ๊ทผ ๋‘๊ฐœ๋ฅผ ๋นผ์ฃผ๋Š” ๊ฒŒ ๋” ํšจ์œจ์ ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค๋ฉด์„œ ์•„ ์ด๊ฑฐ DP๊ตฌ๋‚˜, ์‹ถ์—ˆ๋‹ค. ๋‘๋ฒˆ์งธ ์ œ์ถœ ์ด๊ฒŒ... ๋งž๋‚˜์š”...? ์ฝฉ์ˆœ์ด์ปด๋„ ์•„๋‹ˆ๊ณ  ํšจ์œจ์„ฑ์ด ์ด๋ ‡๊ฒŒ๋‚˜ ๋–จ์–ด์ง€๋Š”๋ฐ... ์ด๋ ‡๊ฒŒ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ•ด๋†“๊ณ  ์˜ค๋‹ต์ด๋ฉด ์ €์ฃผํ• ๊ฑฐ์•ผ ๋„ˆ ใ… ใ…  ๊ฒฐ๊ตญ์€ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ํ‹€๋ ธ๋‹ค. ๊ทผ๋ฐ ์ œ์ถœํ•˜๊ณ  ๋‚˜์„œ ๋ณด๋‹ˆ, ์•„๋งˆ๋„ range์— ์žˆ๋Š” mathํ•จ์ˆ˜ ๋‘๊ฐœ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์„ธ๋ฒˆ์งธ ์ œ์ถœ ์ฑ„์ ํ•  ๋•Œ ํผ์„ผํŠธ ๋Š˜์–ด๋‚˜๋Š” ์†๋„๋ถ€ํ„ฐ ๋‹ฌ๋ž๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์งœ๋Š” ๊ฒƒ๋„ ์–ด๋ ค์šด๋ฐ ๋ณต์žก๋„๊นŒ์ง€ ๊ณ ๋ คํ•˜๋ ค๋‹ˆ๊นŒ ๊นŒ๋‹ค๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฐ๋‹ค. ์ด๊ฑด ๊ทธ๋‚˜๋งˆ ์‰ฝ๊ฒŒ ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ๋ผ์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์ข€ ๋” ๋ณต์žกํ•œ ๋ฌธ์ œ์— ๋ณต์žก๋„ ๊ณ ๋ ค์‚ฌํ•ญ์ด ์ถ”๊ฐ€๋˜๋ฉด ์•„๋งˆ๋„ ๋งŽ์ด ํž˜๋“ค ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๋ฒˆ์™ธ!!! ์ด๊ฒƒ๋„ ์ •๋‹ต! range์•ˆ์— ํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด for๋ฌธ ๋Œ ๋•Œ ๋งˆ๋‹ค ์‹คํ–‰ํ•œ๋‹ค๊ณ  ์ €๋ฒˆ์— ์Šคํ„ฐ๋””ํ•  ๋•Œ ๋ˆ„๊ฐ€ ๋งํ•ด์ค€ ๊ฒŒ ๊ธฐ์–ต์ด ๋‚˜์„œ ์ด๊ฑธ ๋ฐ–์œผ๋กœ ๋นผ๊ณ  ์ฑ„์ ์„ โ€ฆ
thumbnail
[TIL] Gatsby๋กœ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ 2
์™„์„ฑ๋œ ๋ธ”๋กœ๊ทธ๋Š” ์•„๋‹ˆ์—ˆ๊ธด ํ•˜์ง€๋งŒ, ๋งŒ๋“ค๋ฉด์„œ ๋ถ€์กฑํ•œ ์ ์ด ๊ณ„์† ๋ณด์—ฌ์„œ ๋ฆฌ๋‰ด์–ผํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ์— ๋ฐ”๊พธ๋ ค๊ณ  ์ƒ๊ฐํ•œ ๋ฆฌ์ŠคํŠธ์ด๋‹ค. ํƒœ๊ทธ / ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ ํ•„ํ„ฐ๋ง ํ•˜๊ธฐ ์•„์ด์ฝ˜๋งŒ ์กด์žฌํ•˜๋˜ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ ํฌ์ŠคํŠธ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ ๋„ค์ด์…˜ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ฒจ๋กœ๊ทธ์ฒ˜๋Ÿผ ๊ธ€ ํ—ค๋” Anchor ๊ตฌํ˜„ํ•˜๊ธฐ About ํŽ˜์ด์ง€ ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ ํ•„ํ„ฐ๋ง์ด๋‚˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์€ ๋งค์šฐ ์‰ฌ์šด ์ž‘์—…์ด์ง€๋งŒ, Anchor๋Š” ์–ด๋–ค ์‹์œผ๋กœ ํ•ด์•ผํ•˜๋Š”์ง€ ๊ฐ๋„ ์˜ค์ง€ ์•Š๊ณ , ๋ ์ง€ ์•ˆ๋ ์ง€ ํ™•์‹ ๋„ ์—†๋‹ค. About ํŽ˜์ด์ง€๋Š” ๋…ธ์…˜์ฒ˜๋Ÿผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด์„œ ๊ตฌํ˜„์„ ํ•ด๋’€๋Š”๋ฐ ๊ฐ€๋…์„ฑ์ด ๋„ˆ๋ฌด ๋„ˆ๋ฌด ๋–จ์–ด์ ธ์„œ ์‚ฌ์ง„๋„ ๋„ฃ๊ณ  ์ข€ ๋” ์•„๊ธฐ์ž๊ธฐํ•˜๊ฒŒ ๊พธ๋ฉฐ๋ณด๋ ค ํ•œ๋‹ค. ๐Ÿฅ› ํ•„ํ„ฐ๋ง ๊ตฌํ˜„ํ•˜๊ธฐ ๊ธฐ์กด ํฌ์ŠคํŠธ ํŽ˜์ด์ง€์˜ ๋ชจ์Šต์ด๋‹ค. ์ตœ๊ทผ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ ํ•„ํ„ฐ๋ง์—†์ด ์ „์ฒด ํฌ์ŠคํŠธ๋ฅผ ๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ง€๊ธˆ์€ ๊ฒŒ์‹œ๊ธ€์ด ๋งŽ์ด ์—†์–ด์„œ ํฌ๊ฒŒ ๋ถˆํŽธํ•œ ์ ์€ ์—†์ง€๋งŒ, ๊ฒŒ์‹œ๊ธ€์ด 10๊ฐœ, 20๊ฐœ, 30๊ฐœ๊ฐ€ ๋œ๋‹ค๋ฉด ๊ฒŒ์‹œ๊ธ€์„ ์ฐพ๋Š” ๋ฐ์— ์• ๋ฅผ ๋จน์„ ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์— 'category' ๋ฐ์ดํ„ฐ๋กœ ํ•„ํ„ฐ๋ง์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ๋งˆํฌ๋‹ค์šด ํŽ˜์ด์ง€ ์ •๋ณด์— category๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , config ํŒŒ์ผ ๊ฐ™์€ ๊ณณ์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ feed๋‚ด์— category๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํŽ˜์ด์ง€์—์„œ ์“ธ graphql์„ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์‚ฌ์‹ค, ์• ์ดˆ์— sort์™€ ํ•จ๊ป˜ filter ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ graphql๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ฝ‘์•„์˜ค๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด gatsby-node.js๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋“ฑ์˜ ๋ณต์žกํ•œ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ๊น”๋”ํžˆ ํฌ๊ธฐํ•˜๊ณ , gatsby ์ดˆ๋ณด์ž์ธ ๋‚˜๋Š” js์—์„œ ํ•„ํ„ฐ๋ง์„ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ๊ฐ ํฌ์ŠคํŠธ ์•„์ดํ…œ์—์„œ ์ƒ‰๊น”๋กœ ๋˜์–ด ์žˆ๋Š” ๋ฑƒ์ง€, ์ฆ‰ ์นดํ…Œ๊ณ ๋ฆฌ ํƒœ๊ทธ๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด, ์ฒ˜๋Ÿผ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์ด ๋‹ฌ๋ฆฐ url๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ์—ฌ๊ธฐ์„œ category๊ฐ’์„ ์ถ”์ถœํ•ด ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•ด ํ•„ํ„ฐ๋ง์„ ๊ฑธ์–ด์ฃผ์—ˆ๋‹ค. ๐Ÿญ ๊ฒ€์ƒ‰ ๊ตฌํ˜„ํ•˜๊ธฐ
thumbnail
[Frontend] ์ˆ™์†Œ ์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ 1
๊ธ€๋กœ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์“ด๋‹ค๋Š” ๊ฒŒ ์•„์ง ๋‚˜์—๊ฒ ๋„ˆ๋ฌด๋„ˆ๋ฌด ์–ด์ƒ‰ํ•˜๊ณ  ์–ด๋ ต๋‹ค. ๋…์„œ๋ฅผ ์ •๋ง ์‹ซ์–ดํ•˜๋Š” ๋‚˜๋Š” ์ผ๊ธฐ ์“ฐ๋Š” ๊ฒƒ๋„ ํž˜๋“ค์–ดํ•˜๋Š” ์‚ฌ๋žŒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์“ฐ๋ ค๋Š” ์ด์œ ๋Š” ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•จ์—๋„ ์žˆ์ง€๋งŒ, ๋‹น์žฅ ์ž‘๋…„์— ๋งŒ๋“  ๊ฒƒ๋งŒ ํ•ด๋„ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ ์šฉํ–ˆ์—ˆ๋Š”์ง€, ์–ด๋–ค ์ด์œ ์—์„œ ์ ์šฉํ–ˆ์—ˆ๋Š”์ง€, ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”์ง€ ๋“ฑ๋“ฑ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ๊ฒƒ๋“ค์ด ๊ธฐ์–ต์ด ๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์นด์นด์˜คํ†ก ์ง€๋„ API๋ฅผ KIYO์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋ฌธ์„œ๋ฅผ ์ฝ์—ˆ์—ˆ์ง€๋งŒ ๋‹ค์‹œ ์“ฐ๋ ค๊ณ  ํ•˜๋‹ˆ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์“ฐ๊ฒŒ ๋œ ๊ฐœ๋ฐœ์ผ์ง€์ด์ง€๋งŒ, ์‚ฌ์‹ค ์ •์„๋Œ€๋กœ๋ผ๋ฉด ์žˆ์–ด์•ผํ•  ์™€์ด์–ดํ”„๋ ˆ์ž„, ํ”„๋กœํ† ํƒ€์ž… ๋“ฑ๋“ฑ์€ ์•„๋ฌด๊ฒƒ๋„ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ดˆ์ดˆ์ดˆ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์ด๋‹ค. ๊ทธ๋ƒฅ ์–ธ๋‹ˆ๋ฅผ ์œ„ํ•œ ์„ ๋ฌผ(?)์„ ๊ธฐ๋กํ•ด๋†“๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ์“ฐ๋Š” ๊ฐœ๋ฐœ์ผ๊ธฐ๋ž„๊นŒ... ๐Ÿ ์–ธ๋‹ˆ๋„ค ๋ถ€๋ถ€๊ฐ€ ์ œ์ฃผ๋„์—์„œ ์ˆ™๋ฐ•์—…์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ์— ์นดํŽ˜์™€ ํ•จ๊ป˜ ๋ฆฌ๋‰ด์–ผ์„ ํ•ด์„œ, ๊ธฐ์กด์— ๋ธ”๋กœ๊ทธ์—๋งŒ ์žˆ๋˜ ์ˆ™์†Œ ์ •๋ณด๋ฅผ ์‚ฌ์ดํŠธ์—์„œ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ๋””์ž์ด๋„ˆ์ธ ์–ธ๋‹ˆ๊ฐ€ ์›น๋””์ž์ธ์ด๋ผ๊ณ  ํ•˜๊ธด ๋ฏผ๋งํ•˜๊ณ ,,, ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ •๋„๋ฅผ ์งœ์„œ ์ฃผ๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‚ด๊ฐ€ ๊ทธ๋ƒฅ ๊ฐœ๊ด„์ ์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ˆ™์†Œ๋‚˜ ์‡ผํ•‘ ์‚ฌ์ดํŠธ๋“ค์„ ์ฐพ์•„ ๋ ˆํผ๋Ÿฐ์Šค ์‚ผ์œผ๋ ค ํ–ˆ๋Š”๋ฐ ์–ด์จŒ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์„ ๋งŒ๋‚˜์„œ ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์ „๋‹ฌ๋ฐ›๊ธฐ ํž˜๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์–ธ๋‹ˆ๊ฐ€ ๊ตฌ์ƒํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ฃผ๋ฉด ๋‚ด๊ฐ€ ๋ฐ”๋กœ ํผ๋ธ”๋ฆฌ์‹ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. (์ž‘์—…์ด๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ ์žˆ์–ด๋ณด์ด์ง€๋งŒ ์ •๋ง ํผ๋ธ”๋ฆฌ์‹ฑ ๊ทธ ๋ฟ...) ๐Ÿ“ ๊ธฐํš & ๋””์ž์ธ ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ๊ธฐํš๊ณผ ๋””์ž์ธ์ด๋ผ๊ณ  ํ•˜๊ธฐ์— ๋ฏผ๋งํ•œ ์ˆ˜์ค€์ด๊ธด ํ•˜์ง€๋งŒ, ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” '์• ์ž์ผ' ๊ทธ ์ž์ฒด์˜€๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์• ์ž์ผ์˜ ๋ํŒ์™•์„ ๋ณด์—ฌ์ฃผ๋Š” ๋””์ž์ด๋„ˆ์™€์˜ ์นดํ†ก... ์ˆ˜์ •์‚ฌํ•ญ 100๋งŒ๊ฐ€์ง€์ง€๋งŒ ๋•๋ถ„์— ํฌํŠธํด๋ฆฌ์˜ค๋„ ์ฑ„์šฐ๊ณ , ์š”์ฆ˜ ์†๋†“๊ณ  ์žˆ์—ˆ๋˜ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ๋„ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ฆ๊ฒ๊ฒŒ ํ•˜๋Š” ์ค‘์ด๋‹ค. ํฌ๊ฒŒ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋Š” ๋„ค ํŽ˜์ด์ง€์ด๋‹ค. HomeํŽ˜์ด์ง€, AboutํŽ˜์ด์ง€, RoomํŽ˜์ด์ง€, ReservationํŽ˜์ด์ง€. HomeํŽ˜์ด์ง€๋Š” ์ˆ™์†Œ๋ฅผ ํ™๋ณดํ•  ์˜ˆ์œ ์‚ฌ์ง„๋“ค๊ณผ ๋ฌธ๊ตฌโ€ฆ
thumbnail
[Algorithm] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋”” ํšŒ๊ณ  / 8์ฃผ์ฐจ ๊ณผ์ œ
๐Ÿ™„ 2023 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋”” ์ž‘๋…„ 7์›”๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””. ๋‹ค๋“ค ๋ฐ”์˜๊ธฐ๋„ ํ•˜๊ณ , ๋ฐœ๋“ฑ์— ๋ถˆ์ด ๋–จ์–ด์ง€์ง€ ์•Š์•„์„œ ์ค‘๊ฐ„์ค‘๊ฐ„ ํ์ง€๋ถ€์ง€๋  ๋ป”๋„ ํ•˜์˜€์ง€๋งŒ, ์ƒˆ๋กœ์šด ํ•ด๋ฅผ ๋งž์ดํ•ด ์˜๊ธฐํˆฌํ•ฉํ•ด์„œ ์Šคํ„ฐ๋”” ์žฌ์ •๋น„๋ฅผ ํ–ˆ๋‹ค. ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์žˆ๋Š” ์ • ์—†๋Š” ์ • ๋‹ค ๋–จ์–ด์กŒ๊ธฐ์— ๋™๊ธฐ๋ถ€์—ฌ๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ๋…ธ์…˜ ๋””์Šค์ฝ”๋“œ ๋Œ€ํ™”๋ฐฉ์— ์˜ฌ๋ฆฌ๋˜ ๊ณผ์ œ๋Š” ๋…ธ์…˜์— ์ •๋ฆฌํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ฐธ์—ฌํ•˜์ง€ ๋ชปํ•ด ๋ฒŒ๊ธˆ์„ ๋ƒˆ๋˜ ์ฃผ์ฐจ์˜ ๊ณผ์ œ๋Š” ๋ชฐ์•„๋ณผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋นผ๋จน์€ ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ๋ณด์ถฉํ•˜๊ธฐ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค. ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์—ˆ๋Š”์ง€ ๊ธฐ๋ก์„ ๋”ฐ๋กœ ํ•ด๋†“์ง€ ์•Š์•„๋„ ์ •๋ฆฌํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ํŽธ๋ฆฌํ–ˆ๊ณ . TIL ์ƒ๊ฐ๋ณด๋‹ค ์ž˜ ๋˜๊ณ  ์žˆ๋Š” TIL. ์—ฌํ–‰์„ ๋‹ค๋…€์˜ค๋А๋ผ ์ž ๊น ๋˜ ๋ฐ˜์„ฑํ•  ์ผ์„ ๋งŒ๋“  ๋‚˜... ์ด์ œ ๋” ์—ด์‹ฌํžˆ ํ•ด๋ณผ๋ž๋‹ˆ๋‹ค. TIL์ด๋ผ๊ธฐ๋ณด๋‹จ ์ผ๊ธฐ์— ๊ฐ€๊น๊ฒŒ ์“ฐ์ด๊ณ  ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ์ด์œ ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์—ด์‹ฌํžˆ ํ•˜์ง€ ์•Š์€ ๋‚ ์— ์—ด์‹ฌํžˆ ์‚ฐ ์‚ฌ๋žŒ์€ ๋ฟŒ๋“ฏํ•จ์„ ๋А๋‚„ ์ˆ˜ ์žˆ๊ณ , ๋‚˜๋Š” ๋†€์•˜๋Š”๋ฐ ๋‚จ์ด ์—ด์‹ฌํžˆ ์‚ด์•˜๋‹ค ๋А๋‚€๋‹ค๋ฉด ์ฃ„์ฑ…๊ฐ๊ณผ ์ž๊ดด๊ฐ์— ์กฐ๊ธˆ ๋” ๋‚˜์€ ๋‚ด์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๋ฆฌ๋ผ๋Š” ์ƒ๊ฐ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ง„์งœ ๊ทธ๋ ‡๊ฒŒ ๋А๋ผ๊ณ  ์žˆ๋‹ค...! ๊ฒŒ๋”ํƒ€์šด ๋˜ ํ•˜๋‚˜์˜ ๋™๊ธฐ๋ถ€์—ฌ, ๊ฒŒ๋”ํƒ€์šด. ํ˜ผ์žํ•˜๋ฉด ์ ˆ๋Œ€ ํ•˜์ง€ ์•Š๋Š” ์šฐ๋ฆฌ. ๋ชจ์—ฌ์„œ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค ํ•ด์„œ ๋งŒ๋“  ๊ฒŒ๋”ํƒ€์šด์ธ๋ฐ ์‚ฌ์‹ค ํ™œ์„ฑํ™”๊ฐ€ ๋˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค. ์ด์ œ ํšŒ์˜๋„ ๊ฒŒ๋”ํƒ€์šด ์ด์šฉํ•ด์„œ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค. ๋‹ค์Œ ์ฃผ์— ๊ฑด์˜ํ•ด์•ผ์ง€. ๐ŸŒฑ 8์ฃผ์ฐจ ๊ณผ์ œ ๋ฒŒ์จ 8์ฃผ๊ฐ€ ์ง€๋‚˜๊ฐ”๋‹ค๋Š” ์ ์ด ๋‚˜๋ฅผ ๋˜ ์Šฌํ”„๊ฒŒ ํ•œ๋‹ค. ์ค‘๊ฐ„ 2์ฃผ ์ •๋„๋Š” ๋˜ ์—ฌํ–‰๊ณผ ๋‹ค๋ฅธ ์ด์œ ๋กœ ์ง‘์ค‘์„ ํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„๋ฒฝํ•˜๊ฒŒ 8์ฃผ ๋™์•ˆ ์ง‘์ค‘ํ•  ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค. ๋ฒŒ๊ธˆ 5000์›์ด ๋ช‡ ๋ฒˆ์„ ๋‚ ์•„๊ฐ€๋Š”๊ฑด์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. 1์ฃผ์ฐจ ๊ณผ์ œ๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด์•ผ ์ˆซ์ž ๊ฐ•๋ฐ•์ด ์žˆ๋Š” ๋‚ด๊ฒŒ ๋ถˆํŽธํ•จ์„ ์ฃผ์ง€ ์•Š๊ฒ ์ง€๋งŒ, ํ•  ์ผ๋„ ๋งŽ์€ ์ง€๊ธˆ ์•ž์˜ 7์ฃผ์ฐจ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํšŒ๊ณ ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šด ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒˆ ์ฃผ ๊ณผ์ œ๋ถ€ํ„ฐ ๊ธฐ๋กํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน์—ˆ๋‹ค. ์ง€๋‚œ ์ฃผ ํŠ€๋ฅดํ‚ค์˜ˆ ์—ฌํ–‰์„ ๊ฐ”๋˜ ํ„ฐ๋ผ ์นœ๊ตฌ๋“ค์ด ๋ฌธ์ œ 6๊ฐœ๋ฅผ ๊ณจ๋ผ๋’€๋Š”๋ฐ, ๋‚œ์ด๋„๋ฅผ ๋ณด๊ณ  ์™œ์ด๋ฆฌ ๋‹ค ์‰ฌ์šด ๊ฑธ ๊ณจ๋ž์–ด~ ํ–ˆ๋Š”๋ฐ ํ’€์–ด๋ณด๊ณ  ์•„๋‹ˆ๋ž€ ๊ฑธ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ์ง€. ๐Ÿ–‹ 1251 ๋‹จ์–ดโ€ฆ
thumbnail
[Algorithm] ์žฌ๊ท€ (Recursion)
๐Ÿ“š ๊ฐœ์š” ์žฌ๊ท€๋Š” ์ˆ˜ํ•™์ด๋‚˜ ์ปดํ“จํ„ฐ ๊ณผํ•™ ๋“ฑ์—์„œ ์ž์‹ ์„ ์ •์˜ํ•  ๋•Œ ์ž๊ธฐ ์ž์‹ ์„ ์žฌ์ฐฝ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋œปํ•œ๋‹ค. ์ฃผ๋กœ ์ด ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜์— ์ ์šฉํ•œ ์žฌ๊ท€ํ•จ์ˆ˜(Recursion Function)์˜ ํ˜•ํƒœ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜๋ž€ ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” DFS, BFS ๋“ฑ ๋งŽ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ์— ์“ฐ์ธ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜์—์„œ๋Š” ์ข…๋ฃŒ ์กฐ๊ฑด์ด ํ•„์ˆ˜์ ์œผ๋กœ ํ•„์š”ํ•˜๋‹ค. ํ•จ์ˆ˜๋ฅผ ๊ณ„์† ํ˜ธ์ถœํ•˜๋ฉด ์Šคํƒ์ฒ˜๋Ÿผ ์•ž์˜ ํ•จ์ˆ˜ ์œ„์— ๊ณ„์† ์Œ“์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์—๋Š” ์•ž์˜ ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ํ•จ์ˆ˜๊ฐ€ ๋ฌดํ•œ ํ˜ธ์ถœ๋œ๋‹ค. ํŒŒ์ด์ฌ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋ฌดํ•œ์ ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๊ฒฝ์šฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ข…๋ฃŒ๋œ๋‹ค.
thumbnail
[TIL] Gatsby๋กœ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ 1
๋ณธ๊ฒฉ์ ์œผ๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ๋‹ค๊ณ  ํ•˜๊ธฐ์—๋Š” ๋ˆ„๊ฐ€๋ณผ๊นŒ ๋ถ€๋„๋Ÿฝ์ง€๋งŒ, ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ ์žˆ๋Š” ์‚ฌ๋žŒ์œผ๋กœ์„œ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ํ•˜๋‚˜ ์ •๋„ ์žˆ์–ด์•ผ์ง€, ํ•˜๋Š” ๋งˆ์Œ์€ ์ˆ˜๋ฐฑ๋ฒˆ๋„ ๋„˜๊ฒŒ ๊ฐ€์กŒ๋‹ค. ํ‹ฐ์Šคํ† ๋ฆฌ, ๋ฒจ๋กœ๊ทธ, ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ์ •๋ง ๋‹ค์–‘ํ•˜๊ฒŒ ๋ชจ๋‘ ์‹œ๋„ํ•ด๋ดค์ง€๋งŒ, ์™„๋ฒฝํ•˜๊ฒŒ ๋‚ด ๋งˆ์Œ์— ๋”ฑ ๋“œ๋Š” ๋””์ž์ธ์ด๋‚˜ ์กฐ๊ฑด์„ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค. ํ‹ฐ์Šคํ† ๋ฆฌ ์Šคํ‚จ์„ ๊ณ ์ณ๋ณผ๊นŒํ•˜๋Š” ์ƒ๊ฐ์— ๋ช‡ ๋ฒˆ ์‹œ๋„๋„ ํ•ด๋ณด์•˜์ง€๋งŒ, ์ผ๋‹จ ์ •ํ•ด์ง„ ํ‹€์ด ์žˆ๋Š” ์ด์ƒ ๋‚˜์˜ ์ฐฝ์˜๋ ฅ๊ณผ ์ƒ์ƒ๋ ฅ์„ ๊ฐ€๋กœ๋ง‰๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์•ˆ์—์„œ ๊ณ ์น˜๊ฒŒ ๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์—ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ๋งˆ์Œ์— ๋“ค๊ฒŒ ๊ณ ์ณ์งˆ ์ˆ˜๊ฐ€ ์—†๋Š” ๋ฒ•. ๋ฒจ๋กœ๊ทธ์ฒ˜๋Ÿผ ๊น”๋”ํ•˜๋ฉด์„œ ์–ด๋–ค ๋ถ€๋ถ„์€ ๊ท€์—ฝ๊ธฐ๋„ ํ•˜๊ณ , ํŠน์ • ๊ธฐ๋Šฅ์€ ๋“ค์–ด๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๋Š”, ๊ทธ๋Ÿฐ ์š•์‹ฌ์— ๋ฒผ๋ฅด๊ณ  ๋ฒผ๋ฅด๋˜ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ๋ฅผ ๋“œ๋””์–ด ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. ์ทจ์ค€์„ ํ•˜๋ฉด์„œ ์‹œ๊ฐ„ ๊ด€๋ฆฌ๋„ ์ œ๋Œ€๋กœ ๋˜์ง€ ์•Š๊ณ , ํ˜ผ์ž ๊ณต๋ถ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์•„ ์ด ์ ์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋ถ€ํŠธ์บ ํ”„๋ฅผ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์•„์ง ์ดˆ๋ฐ˜์ด๋ผ ๊ณผ์ œ๋ฅผ ์ผ์ฐ ๋๋‚ด๋†“๊ณ  ์‹œ๊ฐ„์ด ๋งŽ์ด ๋‚จ๋Š”๋‹ค. ์ด ์‹œ๊ฐ„์„ ์ด์šฉํ•ด ๋™๊ธฐ๋ถ€์—ฌ๋„ ํ•  ๊ฒธ, ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์—„์ฒญ ์œ ๋Šฅํ•˜์‹  ๋ถ„๋“ค๊ป˜์„œ ๊นƒํ—ˆ๋ธŒ ํŽ˜์ด์ง€๋กœ ๋งŒ๋“œ๋Š” ๋ธ”๋กœ๊ทธ ์Šคํ‚จ์„ ๋งŒ๋“ค์–ด๋‘์…”์„œ ์ด๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉํ–ฅ๋„ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋˜ ์–ด๋–ค ๊ฒƒ์€ ์ธ๋„ค์ผ์ด ์—†์–ด์„œ ๋งˆ์Œ์— ์•ˆ๋“ค๊ณ , ์–ด๋–ค ๊ฒƒ์€ ์ด๊ฒŒ ๋งˆ์Œ์— ์•ˆ๋“ค๊ณ  ๋“ฑ๋“ฑ... ๊นŒ๋‹ค๋กœ์šด ๋‚ด ์ž…๋ง›์„ ๋„๋Œ€์ฒด ๋งŒ์กฑ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งŒ๋“  ์Šคํ‚จ์ด ์•„๋‹ˆ๋‹ค๋ณด๋‹ˆ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๋”๋”์šฑ ์–ด๋ ค์› ๋‹ค. ์Šคํ‚จ์ด ์—†์ด ์‹œ์ž‘ํ•˜๋ ค๋‹ˆ ๋‚ด๊ฐ€ ์ง์ ‘ ์ถ”๊ฐ€ํ•ด์•ผํ•  ๋ถ€๋ถ„๋“ค๋„ ๋„ˆ๋ฌด ๋งŽ๊ณ  ์ƒ๊ฐํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋„ ๋„ˆ๋ฌด ๋งŽ์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜€์ง€๋งŒ, ํšŒ์‚ฌ ๋‹ค๋‹ ๋•Œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋˜ ๊ทธ ๋•Œ ์ƒ๊ฐ๋„ ๋‚˜๊ณ  ์™„์ „ํžˆ '๋‚ด ๊ฒƒ'์„ ๋งŒ๋“ ๋‹ค๋Š” ์ƒ๊ฐ์— ์ดํ‹€๋งŒ์— ๋š๋”ฑ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. ์•„์ง ์ˆ˜์ •ํ•ด์•ผํ•  ๋ถ€๋ถ„๋“ค์ด ์ •๋ง ๋งŽ์ง€๋งŒ, ์ผ๋‹จ์€ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ํ‹€์„ ์žก๋Š” ๊ฑด ์„ฑ๊ณตํ–ˆ๋‹ค. ์ด๊ฑธ ์ด์ œ ๊นƒํ—ˆ๋ธŒ์— ๋ฐฐํฌ๋ฅผ ํ•˜๊ณ  ๊นƒํ—™ ํŽ˜์ด์ง€ ์ž๋™ํ™”๊นŒ์ง€ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์„ธ์ƒ์— ๊ณต๊ฐœํ•˜๊ธฐ ์ „์— ์ผ์ฃผ์ผ ์ •๋„ ์†์„ ๋ด์•ผํ•  ๋ถ€๋ถ„๋“ค์ด ๋ˆˆ์— ์ •๋ง ๋งŽ์ด ๋“ค์–ด์˜จ๋‹ค. ๋ฆฌ์ŠคํŠธํ™” ํ•ด๋†“๊ณ , ํ…Œ์Šคํฌ๋ฅผ ์ง€์›Œ๋‚˜๊ฐ€๋ฉด์„œ ์ข€ ๋” ๊ฒฌ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒโ€ฆ
Copyright ยฉ Built width jina