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

์ „์ฒด ๊ธ€

(95)
[Swift] 1. ๋ช…๋ช…๋ฒ•, ์ฝ˜์†” ๋กœ๊ทธ, ๋ฌธ์ž์—ด ๋ณด๊ฐ„๋ฒ• 1. ๋ช…๋ช…๋ฒ• Swift์—์„œ๋Š” ์ด๋ฆ„์„ ์ง€์„ ๋•Œ ์นด๋ฉœ์ผ€์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ชจ๋“  ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. Lower Camel Case(์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘) : fuction, method, variable, constant ex) viewDidLoad, userTable ๋“ฑ Upper Camel Case(๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘) : type(class, struct, enum, extension…) ex) Person, Point, Week ๋“ฑ 2. ์ฝ˜์†”๋กœ๊ทธ print ํ•จ์ˆ˜ : ๋‹จ์ˆœ ๋ฌธ์ž์—ด ์ถœ๋ ฅ dump ํ•จ์ˆ˜ : ์ธ์Šคํ„ด์Šค์˜ ์ž์„ธํ•œ ์„ค๋ช…(description ํ”„๋กœํผํ‹ฐ)๊นŒ์ง€ ์ถœ๋ ฅ class Person { var name: String = "TechYeon" var age: Int = 10 } let techYeon: Person..
[Xcode] Xcode ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ ํŒŒ์ผ, ํด๋” ๊ด€๋ จ โญ๏ธ ํŒŒ์ผ ๊ฒ€์ƒ‰ (Open quickly) : cmd + shift + o โญ๏ธ ํ˜„์žฌ ๋ณด๊ณ  ์žˆ๋Š” ํŒŒ์ผ ์œ„์น˜ ํ™•์ธ : cmd + shift + j ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ : cmd + shift + n ์ƒˆ๋กœ์šด ํด๋” ์ƒ์„ฑ : cmd + alt + n Xcode ์ฐฝ(์˜์—ญ) ๐Ÿ”ฅ์ธ์ŠคํŽ™ํ„ฐ ์˜์—ญ - ํŒŒ์ผ ์ธ์ŠคํŽ™ํ„ฐ : ํ”„๋กœ์ ํŠธ ๋‚ด๋น„๊ฒŒ์ดํ„ฐ์—์„œ ์„ ํƒํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒŒ์ผ๋ช…๊ณผ ์ข…๋ฅ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์Šคํ† ๋ฆฌ๋ณด๋“œ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ ์ •๋ณด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋นŒ๋“œ ๋Œ€์ƒ iOS๋ฒ„์ „ ๋“ฑ ์ธํ„ฐํŽ˜์ด์Šค ๋นŒ๋”์˜ ์„ค์ •๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์•ฑ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋นŒ๋“œ ๋Œ€์ƒ์˜ ๋ฒ”์œ„๋ฅผ ์กฐ์ ˆํ•  ๋•Œ์—๋„ ์‚ฌ์šฉํ•œ๋‹ค. - ํžˆ์Šคํ† ๋ฆฌ ์ธ์ŠคํŽ™ํ„ฐ : ํ˜„์žฌ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ „์ฒด ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ปค๋ฐ‹ํ•œ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ,..
[Linux] ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(2) - ์‹œ์Šคํ…œ ๊ด€๋ จ(df, ps, top) ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(2) - ์‹œ์Šคํ…œ ๊ด€๋ จ ๐Ÿ‘ป df ps top df disk free : ๋””์Šคํฌ ์—ฌ์œ ๊ณต๊ฐ„ ํ™•์ธ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ „์ฒด ํฌ๊ธฐ, ์‚ฌ์šฉ ์ค‘์ธ ํฌ๊ธฐ, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฌ๊ธฐ, ์‚ฌ์šฉ์œจ, ๋งˆ์šดํŠธ ์ •๋ณด ๋“ฑ์„ ๋ณด์—ฌ์ค€๋‹ค. $ df [option] [file] [options] -a ๋ชจ๋“  ํŒŒ์ผ ์‹œ์Šคํ…œ ์ถœ๋ ฅ -h ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ(๋‹จ์œ„)๋กœ ์ถœ๋ ฅ (๊ธฐ๋ณธ์€ ํ‚ฌ๋กœ๋ฏธํ„ฐ ๋‹จ์œ„) -T ๋ณด์—ฌ์ฃผ๋Š” ๋ชฉ๋ก์„ ํŒŒ์ผ์‹œ์Šคํ…œ ํƒ€์ž…์œผ๋กœ ์ œํ•œ -l ์ถœ๋ ฅํ•˜๋Š” ๋ชฉ๋ก์„ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ๋งŒ ์ œํ•œ ์•„๋ž˜ ๋ช…๋ น์–ด ์‚ฌ์šฉ์‹œ $ df -h ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด ์ถœ๋ ฅ๋˜์–ด ํŠน์ • ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„ ํ™•์ธ ๊ฐ€๋Šฅ!! ps ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก๊ณผ ์ƒํƒœ ๋ณด์—ฌ์คŒ $ ps [option] [options] -e ..
[Linux] ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(1) - ํŒŒ์ผ, ํด๋” ๊ด€๋ จ(ls, wc, find, grep) ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(1) - ํŒŒ์ผ, ํด๋” ๊ด€๋ จ ๐Ÿ‘ป ls wc find grep ls ํŒŒ์ผ ๋ฆฌ์ŠคํŒ… $ ls [option] [directory name] [options] -a ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ ๋ณด๊ธฐ -l ์ƒ์„ธ์ •๋ณด ๋ณด๊ธฐ (๊ถŒํ•œ, ์†Œ์œ ์ž, ๊ฐฑ์‹ ์ผ) -al ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ + ์ƒ์„ธ์ •๋ณด ๋ณด๊ธฐ (๊ถŒํ•œ, ์†Œ์œ ์ž, ๊ฐฑ์‹ ์ผ) ll ls -l ๊ณผ ๋™์ผ * ์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋ƒ„ ls * ํ˜„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ์„œ๋ธŒ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚˜์—ด ls -F a* ํ˜„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ a๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ ํŒŒ์ผ ์ข…๋ฅ˜ ์ถœ๋ ฅ wc ํŒŒ์ผ ๋‚ด ๋ผ์ธ, ๋‹จ์–ด ๋ฌธ์ž์˜ ์ˆ˜ ๋ณด๊ธฐ $ wc [option] [file] [options] -c ์ „์ฒด ๋ฌธ์ž์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ -l ์ „์ฒด ๋ผ์ธ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ -w ์ „์ฒด ๋‹จ์–ด์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ ํ˜„์žฌ ๋””..
[GitHub] Git requested URL returned Error 403 ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๋กœ์ปฌ์—์„œ ์ปค๋ฐ‹ํ•˜๊ณ  ์›๊ฒฉ์œผ๋กœ ํ‘ธ์‰ฌํ•˜๋ ค๋Š” ์›ฌ๊ฑธ..............!! Git requested URL returned Error 403 ๋ฐœ์ƒ.............!! ์ฐพ์•„๋ณด๋‹ˆ 403 ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ๋„ˆ๋ฌด ๋งŽ๋‹ค... ์ง•์ฏ”.... SSHํ‚ค ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•, ์ž๊ฒฉ์ฆ๋ช… ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ• ๋“ฑ๋“ฑ !!!! ๊ตฌ๊ธ€์— ๋‚˜์˜จ ๋ฐฉ๋ฒ•์ด๋ž€ ๋ฐฉ๋ฒ•์€ ๋‹คํ•ด๋ณด์•˜๋‹ค. ์ผ๋‹จ ํ„ฐ๋ฏธ๋„์—์„œ๋Š” push ๊ฐ€ ๋˜๋Š” ์†Œ์ŠคํŠธ๋ฆฌ์™€ ๊นƒํ—™์˜ ์—ฐ๋™๋ฌธ์ œ์—ฌ์„œ ์žฅ์‹œ๊ฐ„์˜ ์‚ฝ์งˆ ๋์— ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์€ ์›๊ฒฉ ์ €์žฅ์†Œ ์œ„์น˜ ๋งž์ถฐ์ฃผ๊ธฐ.....ใ„ท ใ„ท ์ง•์ฏ”.... ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•๋“ค์„ ์†Œ๊ฐœํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹นํ•˜๋Š” ์‚ฌํ•ญ์— ๋งž๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค๐Ÿ˜Š Solution1. SSHํ‚ค ๋กœ์ปฌ์— ์ถ”๊ฐ€ SSH ํ‚ค๋Š” ์ง„์ฆ‰์— ๋งŒ๋“ค์–ด์„œ ๊นƒํ—™์—๋Š” ๋“ฑ๋กํ–ˆ์—ˆ๋Š”๋ฐ ๋กœ์ปฌ์— ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์•˜์—ˆ๋‹ค..... ๋ฐ”๋กœ ์ถ”๊ฐ€ ๐Ÿ”ฅ Sol..
[Firebase] Firebase ์›น ํ˜ธ์ŠคํŒ… ์ƒ์„ฑ, ๋ฐฐํฌํ•˜๊ธฐ + ๊ด€๋ จ ์—๋Ÿฌ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์— ์›น ํ˜ธ์ŠคํŒ… ์ƒ์„ฑ, ๋ฐฐํฌํ•˜๊ธฐ ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด๋ณด์ž Firebase ? ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋Š” 14๋…„๋„์— ๊ตฌ๊ธ€์—์„œ ์ธ์ˆ˜ํ•œ ๋ชจ๋ฐ”์ผ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœํ”Œ๋žซํผ! 16๋…„๋„ ๋ถ€ํ„ฐ ๊ตฌ๊ธ€์—์„œ ์„œ๋น„์Šค๋ฅผ ๋Œ€ํญ ๊ฐ•ํ™”ํ•œ Baas(Backend as a service) ์„œ๋น„์Šค ์ด๋ฏ€๋กœ, ๋ฐฑ์—”๋“œ๋ฅผ ๋Œ€์‹ ํ•ด ์ค˜์„œ ํ”„๋ก ํŠธ์—”๋“œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ด์ค€๋‹ค. ์ ์šฉ๋Œ€์ƒ : android, ios, web ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋Šฅ : ์ธ์ฆ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์Šคํ† ๋ฆฌ์ง€, ์›๊ฒฉ ๊ตฌ์„ฑ, ํ‘ธ์‹œ ์•Œ๋žŒ, Analytics ์žฅ์  ๊ฐ„ํŽธํ•œ ๊ตฌ์ถ• : ์ธํ”„๋ผ ์ „๋ฐ˜์˜ ํ™˜๊ฒฝ ๊ตฌ์„ฑ๊ณผ ํ™•์žฅ ๋“ฑ์„ ์•Œ์•„์„œ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ๊ทธ์ € ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์—ฐ๋™์‹œ์ผœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ฐ€๊ฒฉ : ํŠน์ • ์‚ฌ์šฉ๋Ÿ‰ ์ดˆ๊ณผ์‹œ ๊ฐ€๊ฒฉ ์ง€๋ถˆ์ด ์žˆ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๊ฐ„ ์ƒ๊ด€์—†..
[iOS] Xcode ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋…นํ™”ํ•˜๊ธฐ, ์•„์ดํฐ ํ™”๋ฉด ๋…นํ™”ํ•˜๊ธฐ (๋™์˜์ƒ, GIF๋กœ ์ €์žฅํ•˜๊ธฐ) Xcode์—์„œ ๊ฐœ๋ฐœ ํ›„ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ ํ™”๋ฉด์„ ์˜์ƒ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ! ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์™€ ์‹ค์ œ ๊ธฐ๊ธฐ์—์„œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋นŒ๋“ฏ์ด ๋ฐฉ๋ฒ• 3๊ฐ€์ง€๋ฅผ ์•Œ๋ ค๋“œ๋ฆด๊ฒŒ์š” :) 1. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋นŒ๋“œ์‹œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ๋นŒ๋“œํ•œ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚˜๋ฉด File > Record Screen ํด๋ฆญ ํ˜น์€ โŒ˜ command + R ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. (+ ๋งฅ๋ถ ํ„ฐ์น˜๋ฐ”์—์„œ ๋…นํ™”๋ฒ„ํŠผ ํด๋ฆญ ๊ฐ€๋Šฅ) ํด๋ฆญ ์‹œ, ์•„๋ž˜์™€ ๊ฐ™์ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ƒ๋‹จ์˜ ์Šคํฌ๋ฆฐ์ƒท ๋ฒ„ํŠผ์ด ์˜ค๋ฅธ์ชฝ์ฒ˜๋Ÿผ ๋นจ๊ฐ„ ๋…นํ™” ๋ฒ„ํŠผ์œผ๋กœ ๋ฐ”๋€Œ๋ฉด์„œ ๋…นํ™”๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋…นํ™”๋ฅผ ๊ทธ๋งŒ๋‘๊ณ  ์‹ถ์„๋• ์œ„์˜ ๋นจ๊ฐ„ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋˜๋Š”๋ฐ ์•„๋ฌด๋Ÿฐ ์„ค์ • ์—†์ด ์ €์žฅํ•˜๋ฉด ๋ฐ”ํƒ•ํ™”๋ฉด์— .mp4 ํŒŒ์ผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋…นํ™”๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์šฐ์ธก ํ•˜๋‹จ์— ๋…นํ™”ํ•œ ํ™”๋ฉด์ด ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์ง€๋Š”๋ฐ, ์ด๋•Œ, ์ด ํ™”๋ฉด ์œ„์— ๋งˆ์šฐ์Šค๋กœ ์šฐ์ธก๋ฒ„ํŠผ ํด๋ฆญ ์‹œ GIF ํฌ๋งท..

๋ฐ˜์‘ํ˜•