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

Programming

(55)
[JS] Object ๋ณ€์ˆ˜ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ๋ฌธ์ž์—ด(String)์„ ์ด์šฉํ•œ ๋™์  ์ ‘๊ทผ ๋ฐฉ๋ฒ• ๐Ÿฅธ JavaScript Object ๊ฐ์ฒด ๋ฌธ์ž์—ด์„ ์ด์šฉํ•ด ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ์‚ญ์ œํ•˜๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Object ๊ฐ์ฒด๋Š” key, value ํ˜•ํƒœ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๐Ÿค” ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ๋Œ€์ฒด ํ•˜๊ธฐ var object = {}; object.arr = [];// obect์— arr๊ฐ€ ์—†๋‹ค๋ฉด ๋นˆ ๋ฐฐ์—ด([])์„ ์ถ”๊ฐ€, ์กด์žฌํ•œ๋‹ค๋ฉด ๋Œ€์ฒด console.log(object); // { arr: [] } object.arr.push('first');// object ์•ˆ์˜ arr์— ๋ฌธ์ž์—ด 'first' ์ถ”๊ฐ€ console.log(object.arr); // [ 'first' ] object.arr = [];// ๊ธฐ์กด์— ์žˆ๋Š” arr๋ฅผ ๋นˆ ๋ฐฐ์—ด๋กœ ๋Œ€์ฒด console.log(object.arr); /..
[JS] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ƒ์†๊ณผ prototype ์ด๋ฒˆ์— ํšŒ์‚ฌ์—์„œ ๋ฐฐ์น˜๋ฐ›์€ ํŒ€์€ ๋ชจ๋ฐ”์ผ ์„œ๋น„์Šค ํŒ€์ด์—ˆ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ์•„๋ž˜์— ์›น ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ ๋‹น๋ถ„๊ฐ„์€ ํ”„๋ก ํŠธ ๋ถ€๋ถ„์„ ๋‹ค๋ฃจ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค. JS๋Š” DOM ์กฐ์ž‘ ์™ธ์—๋Š” ๋‹ค๋ค„๋ณผ ๊ธฐํšŒ๊ฐ€ ์—†์—ˆ๊ธฐ์— ์ด๋ฒˆ์— prototype์— ๋Œ€ํ•œ ๊ฐœ๋…๋„ ์ฒ˜์Œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. JS๋Š” prototype ๊ธฐ๋ฐ˜ ์–ธ์–ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค๋Š”๋ฐ ๊ธฐ๋ณธ๋„ ๋ชฐ๋ž๋˜ ๊ฑฐ์‹œ์˜€๋‹ค... ํ•œ ๋™์•ˆ JS๋ฅผ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. prototype์€ JS์—์„œ ๊ฐ์ฒด์˜ ์ƒ์†์„ ๋‹ค๋ฃจ๋Š” ๊ฐ„๋‹จํ•˜๋ฉด์„œ, ์ค‘์š”ํ•œ ๊ฐœ๋…์ด์—ˆ๋‹ค. ์‚ฌ์‹ค JS๋„ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ผ๊ธฐ๋„ ํ–ˆ๋‹ค. ๋˜ ์—ญ์‹œ JS๋‹ต๊ฒŒ ๊ต‰์žฅํžˆ ์‹ฌํ”Œํ–ˆ๋‹ค. ๐Ÿง ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ์ƒ์„ฑ function MyObject(์ธ์ž) { this.property1 = ... this.property2 = ์ธ์ž } class MyOb..
[MySQL] JOIN ๋ฌธ๋ฒ•, left join, left outer join, inner join ์œ„ ์‚ฌ์ง„์˜ ์ถœ์ฒ˜: https://yoo-hyeok.tistory.com/98 SQL join ๋ฌธ์ด ๊ฐ€์žฅ ์ž˜ ์ •๋ฆฌ ๋˜์–ด ์žˆ๋Š” ๊ทธ๋ฆผ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. join: ๋™์ผํ•œ column์„ ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋กœ ํ•ฉ์นฉ๋‹ˆ๋‹ค. left(right) join ๊ณผ left(right) outer join์˜ ์ฐจ์ด์  ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋™์ผ ํ•ฉ๋‹ˆ๋‹ค. left join์˜ ๊ฒฝ์šฐ ๋™์ผํ•œ column์œผ๋กœ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ง€๊ณ  left ์ชฝ(A)์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ณ  B์˜ ๋ฐ์ดํ„ฐ๋Š” null๋กœ ํ‘œ์‹œ ๋ฉ๋‹ˆ๋‹ค. A ํ…Œ์ด๋ธ” id name 1 1 aaa 2 2 AAA B ํ…Œ์ด๋ธ” id name 1 2 AAA 2 3 bbb left join ๊ฒฐ๊ณผ A left join B id name id name 1 1 aaa null null 2 2 AAA 2 AAA ..
[DevOps] ๋„์ปค(Docker)๋Š” ์™œ ์“ธ๊นŒ? ๋„์ปค๋Š” ๋‹ค์–‘ํ•œ ์šด์˜์ฒด์ œ์—์„œ ๋ฆฌ๋ˆ…์Šค์˜ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์—”์ง„ ์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ(container)๋Š” ๋ญ˜๊นŒ? ์ปจํ…Œ์ด๋„ˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ์™€๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์œผ๋กœ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š”๋ฐ ์ด๋•Œ, ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์ด ์ปจํ…Œ์ด๋„ˆ ์ž…๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ฐจํ›„ ๊ธ€ ์ž‘์„ฑ์œผ๋กœ ๋Œ€์ฒดํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณต ๋™์ผํ•˜๊ฒŒ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ๋„ ์‹คํ–‰ํ•˜๋Š” ํ™˜๊ฒฝ์ด ๋‹ฌ๋ผ์ง€๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ, Java 11์—์„œ๋งŒ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— Java 11์„ ์œ„ํ•œ JVM์ด ์—†๋‹ค๋ฉด ๋™์ž‘ํ•˜์ง€ ์•Š๊ฒŒ๋ฉ๋‹ˆ๋‹ค. (๋˜‘๊ฐ™์ด ์ณค๋Š”๋ฐ ์™œ ์•ˆ๋˜์ง€..
[PowerShell] ํŒŒ์›Œ์‰˜ ์›น ํฌ๋กค๋ง / ํŒŒ์›Œ์‰˜ ๋ณ€์ˆ˜ ํ•œ๊ธ€ ์ €์žฅ ๋ฌธ์ œ ํ•ด๊ฒฐ powershell web crawling / powershell variable uft8 encoding ์ตœ๊ทผ์— windows์˜ powershell์„ ์ด์šฉํ•ด์„œ ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ์ผ์ด ์žˆ์—ˆ๋‹ค. ์ž๋™์œผ๋กœ ์›น ํŽ˜์ด์ง€์— ํŠน์ • ํ‚ค์›Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ํ”„๋กœ๊ทธ๋žจ์ธ๋ฐ ์‚ฌ์šฉํ•  ์ปดํ“จํ„ฐ์˜ ์‚ฌ์–‘์ƒ python ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋ถ€๋‹ด์Šค๋Ÿฝ๊ณ  ์›Œ๋‚™ ์งง๊ณ  ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตํ•  ๊ฒƒ์ด๊ธฐ์— ์Šคํฌ๋ฆฝํŠธ๋กœ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋Œ€์ถฉ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. # power shell # variable section $KEY_WORD1="๊ฒ€์ƒ‰ํ•  ํ‚ค์›Œ๋“œ" $KEY_WORD2="๊ฒ€์ƒ‰ํ•  ํ‚ค์›Œ๋“œ2" $KEY_WORD1_URL="https://search.naver.com/search.naver?quer..
[Algorithm] Union - Find (Python ๊ตฌํ˜„) ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ํŒŒ์ด์ฌ ๊ตฌํ˜„ํ•˜๊ธฐ / union - find by Phython ์œ ๋‹ˆ์˜จ / ํŒŒ์ธ๋“œ๋Š” ํ˜„์žฌ ๋…ธ๋“œ๋“ค์ด ๊ฐ™์€ ๊ทธ๋ฃน์— ์†ํ•ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๊ฐ™์€ ๊ทธ๋ฃน์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ณ‘ํ•ฉ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. find ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„ par = [ -1 for i in range(N + 1) ] # ๋ฃจํŠธ๋ฅผ ๋‹ด์„ ๋ฐฐ์—ด def find(x): # ๋ฃจํŠธ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ํ•จ์ˆ˜ if par[x] ์•„์ง ์—ฐ๊ฒฐ๋œ ์ ์ด ์—†์Œ par[x] = find(par[x]) # ์ž์‹ ์˜ ๋ถ€๋ชจ๋ฅผ ๋ถ€๋ชจ->๋ถ€๋ชจ ๋ฅผ ์žฌ๊ท€๋กœ ๋ฃจํŠธ ๋ถ€๋ชจ๋ฅผ ์ฐพ์Œ return par[x] # ๋ฃจํŠธ ๋ถ€๋ชจ๋ฅผ ๋ฆฌํ„ด par ์ด๋ผ๋Š” ๋ฐฐ์—ด์—๋Š” ๊ฐ ๋…ธ๋“œ์˜ ๋ถ€๋ชจ๋ฅผ ๋‹ด์•„ ๋†“์Šต๋‹ˆ๋‹ค. par ๋ฐฐ์—ด์˜ index๋Š” ๊ฐ..
[Algorithm] ์žฌ๊ท€๋ฅผ ํ†ตํ•œ ์ˆœ์—ด(permutation) ๊ตฌํ˜„(+ python ๋‚ด์žฅ ํ•จ์ˆ˜ ์ด์šฉ) ์ˆœ์—ด์ด๋ž€, N๊ฐœ์˜ ์›์†Œ์—์„œ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜๋ฅผ ๋ฝ‘์„ ๋•Œ, ์ˆœ์„œ๊นŒ์ง€ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ) [1, 2, 3] ๋ฐฐ์—ด์—์„œ 2๊ฐœ์˜ ์›์†Œ๋ฅผ ์„ ํƒํ•  ๊ฒฝ์šฐ => (1, 2), (1, 3), (2, 3), (2, 1), (2, 3), (3, 1), (3, 2) ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ์ฒ˜๋Ÿผ (1, 2), (2, 1)์˜ ๊ฒฝ์šฐ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฅธ ์žฌ๊ท€๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ๊ตฌํ˜„ test = [1, 2, 3] test_len = len(test) N = 2 # ๋ฝ‘์„ ์ˆœ์—ด์˜ ๊ฐœ์ˆ˜ visit = [0] * test_len # ํ•ด๋‹น index์˜ ๊ฐ’์„ ์‚ฌ์šฉํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€ arr = [0] * N # ํ˜„์žฌ ์ˆœ์—ด์„ ๋‹ด์„ ๋ฐฐ์—ด arr_list = [] # ๋ชจ๋“  ์ˆœ์—ด์„ ๋‹ด์„ ๋ฐฐ์—ด def permutaion(level): if level >=..
[Algorithm] ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ(Floyd Warshall) ์•Œ๊ณ ๋ฆฌ์ฆ˜(ft.ํŒŒ์ด์ฌ) ๐Ÿšฉ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŒŒ์ด์ฌ ๊ตฌํ˜„ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์€ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฐ™์ด ์ตœ๋‹จ๊ฑฐ๋ฆฌ ํ˜น์€ ์ตœ์†Œ๋น„์šฉ์„ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์€ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๋“ค๊นŒ์ง€์˜ ์ตœ์†Œ ๊ฑฐ๋ฆฌ(ํ˜น์€ ์ตœ์†Œ๋น„์šฉ)์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— "์–ด๋”˜๊ฐ€๋ฅผ ๊ฒฝ์œ ํ•œ๋‹ค."๋ผ๋Š” ์กฐ๊ฑด์ด ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•˜๊ธฐ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ถœ๋ฐœ์ (s), ๋„์ฐฉ์ง€์ (e), ๊ฒฝ์œ ์ง€(p)์— ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•˜๋ฏ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N^3)์œผ๋กœ ํฐ ํŽธ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๋…ธ๋“œ(N)์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ณ ๋ คํ•ด ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด ์‚ฌ์šฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ์ง€ ๊ณ ๋ คํ•ด๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. โœ๏ธ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ„ ๊ทธ๋ฆผ์˜ ๊ฒฝ์šฐ๋Š” ์ถœ๋ฐœ์ง€์ ์ด 1๋ฒˆ ๋…ธ๋“œ, ๋„์ฐฉ์ง€์ ์ด 4๋ฒˆ ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ ์ž…๋‹ˆ๋‹ค. 1 -> 4๋กœ ๊ฐ€๋Š”๊ฒŒ ๊ฒฝ์œ ..

728x90