๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ปTIL/๊ธฐ์ˆ ๋ฉด์ ‘14

[์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„] ๋””์ž์ธ ํŒจํ„ด(Design Pattern)์˜ ๊ฐœ๋…๊ณผ ์ข…๋ฅ˜ ๋””์ž์ธ ํŒจํ„ด์ด๋ž€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ํŠน์ • ๋งฅ๋ฝ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ๋“ค์ด ๋˜ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์žฌ์‚ฌ์šฉํ•  ํ•  ์ˆ˜์žˆ๋Š” ํ›Œ๋ฅญํ•œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ์„ ๋งํ•œ๋‹ค. ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“ˆ์ด๋‚˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋‹ค์–‘ํ•œ ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ๋“ค์„ ๊ฐœ๋ฐœํ•  ๋•Œ๋„ ์„œ๋กœ ๊ฐ„์— ๊ณตํ†ต๋˜๋Š” ์„ค๊ณ„ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ด๊ฒฐ์ฑ… ์‚ฌ์ด์—๋„ ๊ณตํ†ต์ ์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ์‚ฌ์ ์„ ํŒจํ„ด์ด๋ผ ํ•œ๋‹ค. ํŒจํ„ด์€ ๊ณตํ†ต์˜ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉฐ ํŒ€์› ์‚ฌ์ด์˜ ์˜์‚ฌ ์†Œํ†ต์„ ์›ํ™œํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์•„์ฃผ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ๋””์ž์ธ ํŒจํ„ด์˜ ์ข…๋ฅ˜ ๋””์ž์ธ ํŒจํ„ด์€ ํฌ๊ฒŒ ์ƒ์„ฑ(Creational), ๊ตฌ์กฐ(Structural), ํ–‰์œ„(Behavioral) 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค. ๋”๋ณด๊ธฐ GoF(Gang of Four) ๋””์ž์ธ ํŒจํ„ด์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ์—๋ฆฌํžˆ ๊ฐ๋งˆ(Erich Gamma), ๋ฆฌ์ฐจ๋“œ .. 2022. 9. 1.
์•”ํ˜ธํ™”์™€ ํ•ด์‹œํ™”์˜ ์ฐจ์ด/ํŠน์„ฑ ๋น„๊ต ์•”ํ˜ธํ™”์™€ ํ•ด์‹œํ™”์˜ ์ฐจ์ด/ํŠน์„ฑ ๋น„๊ต ์•”ํ˜ธํ™”์™€ ํ•ด์‹œํ™”๋Š” ํ†ต์‹ ์˜ ์•ˆ์ „์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์ ์€ ๊ฐ™์ง€๋งŒ ์ฐจ์ด์ ๊ณผ ๊ฐ๊ฐ์˜ ํŠน์ง•์ด ์กด์žฌํ•œ๋‹ค. ๐Ÿ’ก ์•”ํ˜ธํ™” ๋ณตํ˜ธํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค(= ์›๋ž˜๋Œ€๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค, ๊ฐ€์—ญ์„ฑ : ์›๋ž˜๋Œ€๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์„ ๊ฐ€์—ญ์ด๋ผ๊ณ  ํ•œ๋‹ค.) ์•”ํ˜ธํ™”์—๋Š” ๊ณตํ†ตํ‚ค ์•”ํ˜ธํ™”์™€ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹์ด ์žˆ๋‹ค. 1๏ธโƒฃ ๊ณตํ†ตํ‚ค(๋น„๋ฐ€ํ‚ค) ์•”ํ˜ธํ™” : ํŒจ์Šค์›Œ๋“œ(๊ณตํ†ตํ‚ค)๋ฅผ ๊ฑธ์–ด ์•”ํ˜ธํ™” 2๏ธโƒฃ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” : ๊ธฑ๊ฐ ๋‹ค๋ฅธ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ค€๋น„ํ•˜์—ฌ ์•”ํ˜ธํ™”ํ•˜๋Š” ์ชฝ์˜ ํ‚ค๋ฅผ ๊ณต๊ฐœํ•˜๋Š” ๋ฐฉ์‹ ๐Ÿ’ก ํ•ด์‹œํ™” ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์—†๋‹ค.(=์›๋ž˜๋Œ€๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋‹ค, ๋ถˆ๊ฐ€์—ญ์„ฑ: ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ๋ถˆ๊ฐ€์—ญ์ด๋ผ๊ณ  ํ•œ๋‹ค.) ๊ทธ๋ž˜์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ณผ ๊ฐ™์ด ํ•ด๋…๋˜๋ฉด ์•ˆ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์—„ํ˜ธํ™”๊ฐ€ ์•„๋‹Œ ํ•ด์‹œํ™”ํ•˜์—ฌ ๋ณดํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ•ด์‹œํ™”๋˜๊ธฐ ์ „ ์›๋ž˜ ์ƒํƒœ๋ฅผ ์œ ์ถ”ํ•  ์ˆ˜ ์—†๋‹ค.. 2022. 9. 1.
[์šด์˜์ฒด์ œ]ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜(Page Replacement Algorithm) [์šด์˜์ฒด์ œ]ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜(Page Replacement Algorithm) ๐Ÿ’ก ํŽ˜์ด์ง€ ๊ต์ฒด๋ž€ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฉ€ํ‹ฐํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ ๋‹ค์ˆ˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ๊ณต์กดํ•  ๋•Œ ํ˜น์€ ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์‹œ ํŽ˜์ด์ง€ ๋ถ€์žฌ(ํŽ˜์ด์ง€ ํด๋“œ / Page Fault) ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. ํŽ˜์ด์ง€ ๋ถ€์žฌ(Page Fault)๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์š”์ฒญ๋œ ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ์–ด์™€์•ผํ•˜๋Š”๋ฐ, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ๋นˆ ํ”„๋ ˆ์ž„์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” ํŽ˜์ด์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋””์Šคํฌ๋กœ ์ซ“์•„๋‚ด ๋ฉ”๋ชจ๋ฆฌ์— ๋นˆ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํŽ˜์ด์ง€ ๊ต์ฒด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, page-out์ด ๋œ.. 2022. 9. 1.
์ •์ ํƒ€์ž… ์–ธ์–ด vs. ๋™์ ํƒ€์ž… ์–ธ์–ด ํŠน์ง• ๋น„๊ตํ•˜๊ธฐ [Groovy] ์ •์ ํƒ€์ž… ์–ธ์–ด vs. ๋™์ ํƒ€์ž… ์–ธ์–ด ํŠน์ง• ๋น„๊ตํ•˜๊ธฐ ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ์ตœ๊ทผ ๊ทธ๋ฃจ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐœ์ธ์ ์œผ๋กœ ๋Š๊ผˆ๋˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด ํ•˜๋‚˜๋ฅผ ๊ผฝ์ž๋ฉด ๋ฐ”๋กœ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ๋ช…์‹œ ์—ฌ๋ถ€์˜€์Šต๋‹ˆ๋‹ค. groovy๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ๋™์ ํƒ€์ž…์„ ์ง€์›ํ•˜๋Š” ์–ธ์–ด์ด๋ฏ€๋กœ, ๋”ฐ๋กœ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ๋ช…์‹œํ•˜์ง€ ์•Š์•„๋„ ๋Ÿฐํƒ€์ž„์‹œ ์•Œ์•„์„œ ์ž๋ฃŒํ˜•์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. (์ ์‘๋˜๋‹ˆ ๋„ˆ๋ฌด ํŽธํ–ˆ์ง€๋งŒ ์ƒํ™ฉ์— ๋”ฐ๋ผ ํƒ€์ž…์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ ์ฃผ์˜!) ์ •์ ํƒ€์ž…(Statically typed) vs ๋™์ ํƒ€์ž… (Dynamically typed) ๋จผ์ €, ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด๋ž€ int, short, float, String, ๊ฐ์ฒด ์™€ ๊ฐ™์€ ์ž๋ฃŒํ˜•์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก ์ •์ ํƒ€์ž… ์–ธ์–ด๋ž€? ์ •์ ํƒ€์ž… ์–ธ์–ด(Statically typed language)๋Š” ์ปดํŒŒ์ผ ์‹œ ๋ณ€์ˆ˜์˜ .. 2020. 9. 10.
[์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™] ๋ชจ๋“ˆ, ๊ฒฐํ•ฉ๋„์™€ ์‘์ง‘๋„- ์ข‹์€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์˜ ์‹œ์ž‘ [์†Œํ”„ํŠธ์›จ์–ด๊ณตํ•™] ๋ชจ๋“ˆ, ๊ฒฐํ•ฉ๋„์™€ ์‘์ง‘๋„- ์ข‹์€ ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์˜ ์‹œ์ž‘ 1. ๋ชจ๋“ˆ๊ณผ ๋ชจ๋“ˆํ™” ๋จผ์ € ๋ชจ๋“ˆํ™”๋ž€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋กœ ๊ฐ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ถ„ํ• ๋œ ๊ฒƒ์„ ๋ชจ๋“ˆ์ด๋ผ๊ณ  ํ•œ๋‹ค. 2. ๋ชจ๋“ˆ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐ”๋กœ, ๋…๋ฆฝ์„ฑ! ์ข‹์€ ๋ชจ๋“ˆํ™”๋Š” ์šฉ๋„์— ๋งž๊ฒŒ ์ž˜ ๊ตฌ๋ถ„๋œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋‹ค. ๋ชจ๋“ˆ์˜ ๋…๋ฆฝ์„ฑ์„ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ ๊ฒฐํ•ฉ๋„์™€ ์‘์ง‘๋„๊ฐ€ ์žˆ๋‹ค. ๐Ÿ’ก ๊ฒฐํ•ฉ๋„๋ž€? ๋ชจ๋“ˆ๊ณผ ๋ชจ๋“ˆ๊ฐ„์˜ ์ƒํ˜ธ ์˜์กด๋„! ๐Ÿ’ก ์‘์ง‘๋„๋ž€? ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๊ธฐ๋Šฅ์ ์ธ ์ง‘์ค‘๋„! ๊ฐœ๋ณ„ ๋ชจ๋“ˆ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์ž์‹ ์—๊ฒŒ ์ฃผ์–ด์ง„ ๊ธฐ๋Šฅ๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋‚ด ๋†“์•„์•ผ ํ•˜๊ณ  ๐Ÿ‘‰๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๋†’์€ ์‘์ง‘๋„ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์˜์กด์„ฑ์ด ๋†’์•„์„  ์•ˆ๋œ๋‹ค. ๐Ÿ‘‰๋ชจ๋“ˆ ๊ฐ„์˜ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„ ๋”ฐ๋ผ์„œ, ์‘์ง‘๋„๋Š” ๋†’์„ ์ˆ˜๋ก, ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ์„ ์ˆ˜๋ก.. 2020. 6. 19.
[DevOps]CI/CD (์ง€์†์  ํ†ตํ•ฉ/์ง€์†์  ์ œ๊ณต) ๊ฐœ๋…๊ณผ ๊ณผ์ •/ ํˆด ๋ณ„ ์žฅ๋‹จ์  ๋น„๊ต [DevOps]CI/CD (์ง€์†์  ํ†ตํ•ฉ/์ง€์†์  ์ œ๊ณต) ๊ฐœ๋…๊ณผ ๊ณผ์ •/ ํˆด ๋ณ„ ์žฅ๋‹จ์  ๋น„๊ต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์€ ๋ณดํ†ต ํ˜ผ์ž ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ๋ณด๋‹ค ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋™์ผํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๋งก์•„ ๋™์‹œ์— ์ž‘์—…ํ•˜๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž์‹ ์˜ ๋กœ์ปฌํ™˜๊ฒฝ์— ์ž‘์—…ํ•˜์—ฌ ์™„์ „ํžˆ ๊ฐœ๋ฐœ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ค‘์•™ ์ €์žฅ์†Œ๋กœ ์˜ฌ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๊ฐœ๋ฐœ์ด ์ข…๋ฃŒ๋œ ํ›„ ์ „์ฒด ์ฝ”๋“œ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ์ •๋ง ์‰ฝ์ง€์•Š์„ ๊ฒƒ์ด๋‹ค. (ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ํด ์ˆ˜๋ก, ๊ฐœ๋ฐœ๊ณผ์ •์ด ๊ธธ์ˆ˜๋ก, ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•จ๊ป˜ํ•  ์ˆ˜๋ก ์–ด๋ ค์›€์€ ํด ๊ฒƒ์ด๋‹ค.) ์‹ค์ œ๋กœ ํ˜„๋Œ€์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์„ ๊ฒƒ์ด๋‹ค. git๊ณผ ๊ฐ™์€ ํ˜•์ƒ๊ด€๋ฆฌ ํˆด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๊ฐ„์ค‘๊ฐ„ ์ปค๋ฐ‹๊ณผ ๋จธ์ง€๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .. 2020. 5. 15.
[JavaScript] setInterval, setTimeout ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต ์‹คํ–‰์„ ํ•ด๋ณด์ž [JavaScript] setInterval, setTimeout ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต ์‹คํ–‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐ˜๋ณต ์ž‘์—… ์‹œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” setInterval()๊ณผ setTimeout()์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก ๋จผ์ €, setTimeout()๋ž€? ํŠน์ • ์ฝ”๋“œ๋‚˜ ํ•จ์ˆ˜๋ฅผ ์˜๋„์ ์œผ๋กœ ์ง€์—ฐํ•œ ๋’ค ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์ด๋ฐ ์ด๋ฒคํŠธ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. setTimeout() ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€์— ์œ„์น˜ํ•œ ์ฝ”๋“œ๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ ์ง€์—ฐ์‹œ๊ฐ„ ๋’ค์— ์‹คํ–‰๋  ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ง€์—ฐ์‹œ๊ฐ„์€ ๋ฐ€๋ฆฌ์„ธ์ปจ๋“œ ๋‹จ์œ„๋กœ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉฐ ์ง€์—ฐ์‹œ๊ฐ„ 1000์€ 1์ดˆ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ 5์ดˆ ๋’ค์— Time Out Test!์ด๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. setTimeout(function() { console.log('Time Out.. 2020. 4. 21.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS) ๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS) [์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS) ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)๊ณผ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ์—ฌ๊ธฐ์„œ ๊ทธ๋ž˜ํ”„๋ž€, ์ •์ (node)๊ณผ ๊ทธ ์ •์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ผ์ข…์„ ๋งํ•˜๋ฉฐ, ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ •์ ์œผ๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ฐจ๋ก€๋Œ€๋กœ ๋ชจ๋“  ์ •์ ๋“ค์„ ํ•œ ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„์™€ ํŠธ๋ฆฌ์˜ ์ฐจ์ด๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด? ๐Ÿ‘‡๐Ÿป ๋”๋ณด๊ธฐ ํฐ ํŠน์ง•๋งŒ ๋งํ•˜์ž๋ฉด, ๊ทธ๋ž˜ํ”„ ์ค‘์—์„œ ๋ฐฉํ–ฅ์„ฑ์ด ์žˆ๋Š” ๋น„์ˆœํ™˜ ๊ทธ๋ž˜ํ”„๋ฅผ ํŠธ๋ฆฌ๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. 1. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ (DFS, Depth-First Search) : ์ตœ๋Œ€ํ•œ ๊นŠ์ด ๋‚ด๋ ค๊ฐ„ ๋’ค, ๋”์ด์ƒ ๊นŠ์ด ๊ฐˆ ๊ณณ์ด ์—†์„ ๊ฒฝ์šฐ ์˜†์œผ๋กœ ์ด๋™ ๐Ÿ’ก ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์˜ ๊ฐœ๋… ๋ฃจํŠธ ๋…ธ๋“œ(ํ˜น์€ ๋‹ค๋ฅธ ์ž„์˜.. 2020. 2. 19.
[์˜ค๋ฅ˜๊ฒ€์ถœ์ฝ”๋“œ]ํŒจ๋ฆฌํ‹ฐ๋น„ํŠธ(Parity Bit)์™€ ํ•ด๋ฐ ์ฝ”๋“œ(Hamming Code) [์˜ค๋ฅ˜ ๊ฒ€์ถœ ์ฝ”๋“œ] ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ(Parity Bit)์™€ ํ•ด๋ฐ ์ฝ”๋“œ(Hamming Code) ๐Ÿ’กํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ(Parity Bit)๋ž€? ์ •๋ณด์ „๋‹ฌ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ๋น„ํŠธ๋ฅผ ๋งํ•˜๋ฉฐ, ์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ „์†กํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋์— 1๋น„ํŠธ๋ฅผ ๋”ํ•˜์—ฌ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ๋Š” ํ™€์ˆ˜(odd) ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ์™€ ์ง์ˆ˜(even) ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š”๋ฐ, - ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” DATA์˜ 1์˜ ๊ฐœ์ˆ˜๋กœ ํ™€์ˆ˜์™€ ์ง์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. - ์ง์ˆ˜ํŒจ๋ฆฌํ‹ฐ์˜ ๊ฒฝ์šฐ 0์„ ๋ถ™์—ฌ์ฃผ๊ณ , ํ™€์ˆ˜ ํŒจ๋ฆฌํ‹ฐ์ธ ๊ฒฝ์šฐ 1์„ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 10010101์ผ ๊ฒฝ์šฐ, 1์ด ์ด 4๊ฐœ์ด๋ฏ€๋กœ ์ง์ˆ˜ ํŒจ๋ฆฌํ‹ฐ์ธ 0์ด ๋ถ™๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ํŒจ๋ฆฌํ‹ฐ๋น„ํŠธ๋กœ๋Š” ์˜ค๋ฅ˜ ๊ฒ€์ถœ๋งŒ ๊ฐ€๋Šฅํ•  ๋ฟ ์–ด๋””๊ฐ€ ์ž˜๋ชป๋๋Š”์ง€ ์ •์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.. 2020. 2. 16.
[์ •๋ ฌ] ์„ ํƒ์ •๋ ฌ(Selection Sort)์˜ ๊ฐœ๋…/Java์ฝ”๋“œ/์‹œ๊ฐ„๋ณต์žก๋„/๊ณต๊ฐ„๋ณต์žก๋„ [์ •๋ ฌ] ์„ ํƒ์ •๋ ฌ(Selection Sort)์˜ ๊ฐœ๋…/Java์ฝ”๋“œ/์‹œ๊ฐ„๋ณต์žก๋„/๊ณต๊ฐ„๋ณต์žก๋„ ๐Ÿ“Œ์„ ํƒ์ •๋ ฌ์˜ ๊ฐœ๋… ์„ ํƒ์ •๋ ฌ(Selection Sort)์€ ํ•ด๋‹น ์ˆœ์„œ์— ์›์†Œ๋ฅผ ๋„ฃ์„ ์œ„์น˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ๊ณ , ๊ทธ ์œ„์น˜์— ์–ด๋–ค ์›์†Œ๋ฅผ ๋„ฃ์„์ง€ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์„ ํƒ์ •๋ ฌ(Selection Sort)์™€ ์‚ฝ์ž…์ •๋ ฌ(Insertion Sort)์ด ์ข…์ข… ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๋Š”๋ฐ, ์„ ํƒ์ •๋ ฌ์€ ๋ฐฐ์—ด์—์„œ ํ•ด๋‹น ์ž๋ฆฌ๋ฅผ ์ด๋ฏธ ์„ ํƒํ•˜๊ณ  ๊ทธ ์ž๋ฆฌ์— ์˜ค๋Š” ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด๋ฉฐ, ์‚ฝ์ž…์ •๋ ฌ์€ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋ถ€๋ถ„๊ณผ ๋น„๊ตํ•˜์—ฌ ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. - ์„ ํƒ์ •๋ ฌ์€ ์ œ์ž๋ฆฌ ์ •๋ ฌ(in-place sorting) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•˜๋‚˜ ์ œ์ž๋ฆฌ ์ •๋ ฌ์ด๋ž€, ์ž…๋ ฅ ๋ฐฐ์—ด(์ •๋ ฌ๋˜์ง€ ์•Š์€ ๊ฐ’๋“ค) ์ด์™ธ์— ๋‹ค๋ฅธ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ.. 2020. 2. 13.