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

Programming

(92)
[Xcode] Xcode 15 playground ์ž๋™ ์‹คํ–‰ ์„ค์ • Xcode 15 ๋ฒ„์ ผ playground ์ž๋™ ์‹คํ–‰ ์‹คํ–‰ ๋ฒ„ํŠผ์„ ๊พน ๋ˆ„๋ฅธ ์ƒํƒœ์—์„œ "Aoutomatically Run"์„ ์„ ํƒํ•ด ์ค€๋‹ค. "Manually Run"์„ ์„ ํƒํ•˜๋ฉด ์‹คํ–‰ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์‹คํ–‰ํ•˜๋Š” ์ˆ˜๋™์‹์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
[Swift Tutorial] Xcode UIImage imageLiteral / imageLiteralResourceName ์‚ฌ์šฉ ์˜ˆ์‹œ UIImageView ๊ฐ์ฒด์˜ value๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•œ imageLiteral / imageLiteralResourceName ์‚ฌ์šฉ ์˜ˆ์‹œ 1. Asset์— ์ด๋ฏธ์ง€ ์ž์‚ฐ์„ ๋“ฑ๋ก ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์œผ๋กœ Assets ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ๋„ฃ์Šต๋‹ˆ๋‹ค. 2. UIImageView ๊ฐ์ฒด ์ค€๋น„ diceImageViewOne ์ด๋ผ๋Š” ์ด๋ฆ„์˜ UIImageView ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ ๋ฐ ๋งํฌ ์—ฐ๊ฒฐ๋œ ๋ชจ์Šต 3. ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๊ฐ’(value)๋ฅผ ํ• ๋‹น ๊ฐ์ฒด.์†์„ฑ = ๊ฐ’ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€ 3-1 imageLiteral ์‚ฌ์šฉ ๊ฐ’(value)์˜ ์œ„์น˜์— "#imageLiteral(" ๊นŒ์ง€ ํƒ€์ดํ•‘ํ•˜๋ฉด imageLiteral์ด ์ž๋™์™„์„ฑ ๋œ๋‹ค. ์ž๋™์™„์„ฑ๋œ iamgeLiteral์€ ์™ผ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€ ์•„..
[๊ธˆ์œต IT] EAI / MCI / MCA ๊ธˆ์œต IT ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด MCI ๊ฑฐ๋ž˜, EAI ๊ฑฐ๋ž˜ ๋“ฑ์˜ ์šฉ์–ด๋ฅผ ์ž์ฃผ ๋“ค์„ ์ˆ˜ ์žˆ๋‹ค. MCI(Multi Channel Integration), MCA(Multi Channel Architecture) ์€ ๋ถ€๋ฅด๋Š” ์šฉ์–ด๊ฐ€ ๋‹ค๋ฅธ๋ฟ ๊ฐ™์€ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. MCI, EAI ๋ชจ๋‘ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ์—ฐ๊ณ„ํ•˜๊ธฐ(๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ) ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๊ตฌ์„ฑํ•œ ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด์„œ ํŒ๋งคํ•˜๋Š” ๊ณณ์ด ์†”๋ฅ˜์…˜ ์—…์ฒด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. MCI๋Š” ์œ ์‚ฌํ•œ ์‹œ์Šคํ…œ(๊ฐœ๋ฐœ ์–ธ์–ด ๋“ฑ์ด ๋™์ผํ•œ)๋ผ๋ฆฌ์˜ ๊ฑฐ๋ž˜์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. EAI๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ(๊ฐœ๋ฐœ ์–ธ์–ด๋‚˜ ํ™˜๊ฒฝ์ด ๋‹ค๋ฅธ)๋ผ๋ฆฌ ๊ฑฐ๋ž˜์— ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ์ถœ์ฒ˜ : ๋ฉ”๊ฐ€ํˆฌ์Šค http://www.megatus.com/product/product.asp ๊ธˆ์œต๊ถŒ..
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฌด์ธ๋„ ์—ฌํ–‰ ํŒŒ์ด์ฌ ํ’€์ด import sys sys.setrecursionlimit(10000) def dfs(x, y, maps, visit): val = 0 if x = len(maps[0]): return val if y = len(maps): return val if visit[y][x] is True: return val if maps[y][x] == "X": return val visit[y][x] = True return int(maps[y][x]) + dfs(x - 1 , y, maps, visit) + dfs(x + 1 , y, maps, visit) + dfs(x, y - 1, maps, visit) + dfs(x, y + 1, maps, visit) def solution(..
[HTML] input radio ๋ฒ„ํŠผ checked ์•ˆ๋จ. HTML radio button์˜ checked ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฑด ์ƒ๋‹นํžˆ ์˜ค๋žœ๋งŒ์— ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์ด์œ ๊ฐ€ ์กฐ๊ธˆ ํ™ฉ๋‹นํ•˜๋‹ค. ์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ ๊ฐœ๋ฐœ๋„ ๋งก๊ฒŒ ๋˜์–ด์„œ ์•ฝ๊ฐ„์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ฑด์ด ์žฆ์•„์กŒ๋‹ค. ์˜ค๋Š˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋‹ค input tag์˜ radio ๋ฒ„ํŠผ์˜ checked ์†์„ฑ์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ด๋Ÿฌํ–ˆ๋‹ค. "๋ฒ„ํŠผ1"๊ณผ "๋ฒ„ํŠผ3"์ด checked ์†์„ฑ์œผ๋กœ ๊ธฐ๋ณธ load์‹œ checked๊ฐ€ ๋˜์–ด์•ผํ•˜๋Š”๋ฐ ์ด์ƒํ•˜๊ฒŒ "๋ฒ„ํŠผ1"์ด checked๊ฐ€ ๋˜์ง€์•Š๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ํผ๋ธ”๋ฆฌ์‹ฑ์ด๋‚˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งŽ์ด ํ•˜์…จ๋˜ ๋ถ„๋“ค์ด๋ผ๋ฉด ๋ˆˆ์น˜์ฑ„๊ฒ ์ง€๋งŒ ๋‚ด ์ฝ”๋“œ๋Š” ์ด๋Ÿฌํ–ˆ๋‹ค. ๋ฒ„ํŠผ1 ๋ฒ„ํŠผ2 ๋ฒ„ํŠผ3 ๋ฒ„ํŠผ4 ๋ฌธ์ œ๋Š” ๋ฐ”๋กœ input tage ์•ˆ์˜ name ์†์„ฑ์˜ ๊ฐ’์ด ๊ฐ™๋‹ค๋Š” ๊ฒƒ ์ด์—ˆ๋‹ค. radio butt..
[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 ..

728x90