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

๐ŸŽ/Swift14

[Swift] UIButton ํฌ๊ธฐ ํ…์ŠคํŠธ ๊ธธ์ด์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๊ธฐ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2022. 1. 8.
[XCode] ์ž˜ ์“ฐ๋Š” ๋‹จ์ถ•ํ‚ค ๋ชจ์Œ 1. ํ™”๋ฉด ๋ถ„ํ• (editor ์ถ”๊ฐ€) shift + control + command + enter 2. ํƒญ์ถ”๊ฐ€ command + t 2. ๋นŒ๋“œ command + b 3. ๋นŒ๋“œ ํ›„ ์‹คํ–‰ command + r 4. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ command + shift + y 5. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ command + shift + l 6. ๋””ํŽœ๋˜์‹œ ๋ณด๊ธฐ control + option + command + enter ๐Ÿ‘€ ์ฐธ๊ณ  https://azsha.tistory.com/76 [Auyolayout] ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์œ ์šฉํ•œ ํŒ ๋ชจ์Œ iOS ๊ฐœ๋ฐœ์ž ๋น„์„ฑ์ƒํ† ํฌ์—์„œ ํƒœ์™„๋‹˜ ๊ฐ•์˜ ์ค‘ ์œ ์šฉํ•œ ํŒ! 1. ํ…์ŠคํŠธ๋ทฐ์—์„œ ์Šคํฌ๋กค์„ ๋„๋ฉด ์•Œ์•„์„œ ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋จ ํ…์ŠคํŠธ๋ทฐ์— ๊ธ€์ด ์ฑ„์›Œ์งˆ๋•Œ๋งˆ๋‹ค ํฌ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ๋Š˜์ด๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์™”์—ˆ๋Š”๋ฐ.. ์Šค azsha.tist.. 2021. 11. 24.
[Swift] Enum ํƒ€์ž…์˜ ์—ฐ๊ด€๊ฐ’ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2021. 11. 1.
[Swift] Optional(์˜ต์…”๋„) ํƒ€์ž…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž ์Šค์œ„ํ”„ํŠธ์˜ ์ค‘์š”ํ•œ ํŠน์„ฑ ์ค‘ ํ•˜๋‚˜๋Š” "์•ˆ์ „์„ฑ"์ด์ฃ . ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ Optional ํƒ€์ž…์„ ์ค‘์š”ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ์Šค์œ„ํ”„ํŠธ๋ฅผ ์ฒ˜์Œ ๊ณต๋ถ€ํ–ˆ์„ ๋•Œ Optional ํƒ€์ž…์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด "?๋‚˜ !๋ฅผ ๋ถ™์ด๋Š” ํƒ€์ž…. ๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„ ์—†์„ ์ˆ˜๋„ ์žˆ๋Š” ํƒ€์ž…." ์ •๋„๋กœ ์•Œ์•„๋’€๋Š”๋ฐ Enum(์—ด๊ฑฐํ˜•), Associated Value(์—ฐ๊ด€๊ฐ’), Generic(์ œ๋„ค๋ฆญ) ๊ฐœ๋…์„ ๊ฐ€์ ธ์™€์„œ ์˜ต์…”๋„์„ ์กฐ๊ธˆ ๋” ๊นŠ๊ฒŒ ์•Œ์•„๋ณผ๊นŒ ํ•ด์š”. Optional์˜ ๊ตฌ์กฐ - Enum ํƒ€์ž… ์˜ต์…”๋„ ํƒ€์ž…์€ ์Šค์œ„ํ”„ํŠธ์— ๊ธฐ๋ณธ์œผ๋กœ ๋‚ด์žฅ๋œ ํƒ€์ž…์ธ๋ฐ, Enumํƒ€์ž…์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์–ด์š”. ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์ธ some๊ณผ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์ธ none, 2๊ฐ€์ง€ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์šฐ๋ฆฌ๋Š” Optional.none์˜ ์ผ€์ด์Šค๋กœ ๊ฐ’์ด ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ nil.. 2021. 11. 1.
[iOS] ๊ณต๊ณต ๋ฐ์ดํ„ฐ API ์ด์šฉํ•˜๊ธฐ (Alamofire) ๋ฐ”๋กœ ์•„๋ž˜์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์—ฌ๋Ÿฌ ํฌ์ŠคํŒ…๋“ค์„ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ํ•ด๋ณด๋Š” ์ค‘์ด๋‹ค. import๊ฐ€ ๋‘๋ ค์šด ์ฝ”๋ฆฐ์ด... ํ•˜์ง€๋งŒ Alamofire๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์ˆ™์ง€ํ•ด๋‘์–ด์•ผ ํ•œ๋‹ค!! ์•„์ขŒ์ขŒ!! Seongmin's Portfolio Blog Hi! I am Seongmin Choo and this is my portfolio website. UC Berkeley CS '21 www.seongmin.org 1. ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ ๊ฐ€์ž… ๋ฐ ํ•„์š”ํ•œ API ์‚ฌ์šฉ ์‹ ์ฒญ API ์‚ฌ์šฉ ์‹ ์ฒญ์„ ํ•˜๋ฉด ์Šน์ธ ํ—ˆ๊ฐ€๊นŒ์ง€ ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. ๐Ÿ“ฑ๋„๋กœ๋ช…์ฃผ์†Œ API๋กœ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๊ฐ„๋‹จ Alamofire๊ตฌํ˜„ (iOS APIํ†ต์‹ ) ๋Œ€๋ถ€๋ถ„ RESTful APIํ†ต์‹ ์„ ์†Œ๊ฐœํ•˜๊ธฐ์œ„ํ•ด์„œ GithubAPI๋ฅผ ์˜ˆ์ œ๋กœ ํ™œ์šฉํ•˜์—ฌ.. 2021. 8. 22.
[Swift] ๋งค๊ฐœ๋ณ€์ˆ˜(Parameter)์™€ ์ „๋‹ฌ์ธ์ž(Argument) + ์ „๋‹ฌ์ธ์ž ๋ ˆ์ด๋ธ”(Argument Label) ์˜ˆ์ „๋ถ€ํ„ฐ Parameter(๋งค๊ฐœ๋ณ€์ˆ˜)์™€ Argument(์ „๋‹ฌ์ธ์ž)์˜ ๊ฐœ๋…์„ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ , ๋น„์Šทํ•œ ์˜๋ฏธ๋กœ ์‚ฌ์šฉํ–ˆ์–ด์š”. ์ตœ๊ทผ์— ์Šค์œ„ํ”„ํŠธ์˜ ๋ฌธ๋ฒ•์„ ๋ณต์Šตํ•˜๊ณ  ์žˆ๋Š”๋ฐ Argument labels(์ „๋‹ฌ์ธ์ž ๋ ˆ์ด๋ธ”)์„ ์ •๋ฆฌํ•˜๋‹ค๋ณด๋‹ˆ ๋‘ ์šฉ์–ด์— ์ฐจ์ด๋ฅผ ๋‘๊ณ  ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋ณธ ๊ธ€์„ ํฌ์ŠคํŒ…ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๐Ÿ˜Ž ํ•œ ์ค„๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด, ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ „๋‹ฌ์ธ์ž๋Š” ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ „๋‹ฌ๋ฐ›๋Š” "๊ฐ’"์„ ์˜๋ฏธํ•˜์ง€๋งŒ ์œ„์น˜์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅด๊ฒŒ ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜์˜ ์ •์˜์—์„œ, ์ „๋‹ฌ์ธ์ž๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜ธ์นญ์œผ๋กœ ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”! greeting์ด๋ผ๋Š” ํ•จ์ˆ˜์˜ ์ •์˜๋ฅผ ํ•˜๊ณ  ํ˜ธ์ถœ์„ ํ•ด์ฃผ์—ˆ์–ด์š”. ์ฆ‰ ์œ„์ชฝ ํ•จ์ˆ˜ ์ •์˜๋ถ€๋ถ„์˜ to์™€ from์€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์•„๋ž˜์ชฝ ํ˜ธ.. 2021. 8. 5.
[Swift] ๋ฌธ์ž์—ด ๊ด€๋ จ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ ์Šค์œ„ํ”„ํŠธ ๊ณต์‹ ๋ฌธ์„œ ๋ฒˆ์—ญ๋ณธ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ž์—ด ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์ •๋ฆฌํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. :) 1. ๋ฌธ์ž์—ด ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Swift ๋˜ํ•œ ์ŠคํŠธ๋ง ํƒ€์ž…๊ณผ ์บ๋ฆญํ„ฐ ๋ฐฐ์—ด์ด ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ์ƒ์ˆ˜ ํƒ€์ž…์˜ catCharacters ์บ๋ฆญํ„ฐ ๋ฐฐ์—ด์„ ์„ ์–ธ ํ›„ ํ•œ ๊ธ€์ž์”ฉ ํ• ๋‹นํ•ด์ค๋‹ˆ๋‹ค. ์ดํ›„ ์ƒ์ˆ˜ ํƒ€์ž…์˜ catString์— ๋ฌธ์ž์—ด ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ์ธ String(์ŠคํŠธ๋ง ํ˜น์€ ์บ๋ฆญํ„ฐ ๋ฐฐ์—ด)์„ ํ• ๋‹นํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ carString์„ ์ถœ๋ ฅํ–ˆ์„ ๋•Œ "Cat!๐Ÿฑ"์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”. let catCharacters: [Character] = ["C", "a", "t", "!", "๐Ÿฑ"] let catString = String(catCharacters) print(.. 2021. 7. 12.
[Xcode] ํ™”๋ฉด ๋’ค์ง‘๊ธฐ ๊ธฐ๊ธฐ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „ํ–ˆ์„ ๋• ๊ธฐ๊ธฐ์˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ํ™”๋ฉด ๋ฐฉํ–ฅ๋„ ํšŒ์ „ํ•˜์ง€๋งŒ, ํ™”๋ฉด์ด ๋’ค์ง‘์–ด์กŒ์„ ๋•Œ์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค. ํ™”๋ฉด์ด ๊ฑฐ๊พธ๋กœ ๋˜์—ˆ์„ ๋•Œ์—๋Š” ๊ธฐ๋ณธ ์„ธ๋กœ ํ™”๋ฉด์ด ๋‚˜์˜ค๋„๋ก ์ ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์‹œ ๊ฐ€์žฅ ์ฒ˜์Œ์— ๋‚˜์˜ค๋Š” Upside Down ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์งœ์ž” ๐Ÿ‘€ ์ฐธ๊ณ  [iOS] ํ™”๋ฉด ๋ฐฉํ–ฅ ์ „ํ™˜ (feat. Override) ์•„์ดํฐ์˜ ๋ฐฉํ–ฅ์— ๋”ฐ๋ผ ํ™”๋ฉด์„ ์ „ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ• velog.io 2021. 6. 21.
[iOS] Height is ambiguous ๊ฒฝ๊ณ  ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ์ด๋ฏธ์ง€ ๋ทฐ ์ƒ์„ฑ ํ›„, ์˜คํ†  ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•ด์ฃผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์œ„์ชฝ์˜ Constraint๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค. ์ด ๊ฒฝ์šฐ ๋†’์ด๋ฅผ ์ž„์˜๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. ํ˜น์€ ์•„๋ž˜๊นŒ์ง€ ๊ฐ™์ด ์ œํ•œ์„ ๊ฑธ์–ด์ฃผ๋ฉด ๋˜๋Š”๋ฐ, ๋†’์ด๋ฅผ ์ž„์˜๋กœ ๊ณ ์ •ํ–ˆ์„ ๋•Œ์—๋Š” ๊ธธ์ด์— ๋งž์ถฐ ๋ฐ‘์—์žˆ๋Š” Button์ด ๊ธธ์–ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ตณ์ด(?) ์Šค๋Ÿฌ์› ๋Š”๋ฐ constraint์˜ ๊ธฐ์ค€์„ ์ด๋ฏธ์ง€ ๋ทฐ์˜ top ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ bottom ๋“ฑ ์—ฌ๋Ÿฌ ์œ„์น˜๋กœ ์ง€์ •์ด ๊ฐ€๋Šฅํ•œ๊ฑธ ์ƒ๊ฐํ•˜๋‹ˆ, ์•ˆ์ „์„ฑ์„ ์œ„ํ•ด ๋†’์ด๋ฅผ ํ™•์ •ํ•˜๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 2021. 6. 17.
[Swift] ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์˜ ์ฐจ์ด (๋ณธ ๋น„๊ต๋Š” Swift5๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.) ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์šฉ๋„์— ๋งž๊ฒŒ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค๋Š” ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค ๋ชจ๋‘ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘˜์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€, ๊ตฌ์กฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ’ ํƒ€์ž… ์ฆ‰, ๋ณต์‚ฌํ•œ ๊ฒƒ์„ ์ฃผ๊ณ ๋ฐ›๊ณ  ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋Š” ์ฐธ์กฐ(์ฃผ์†Œ)ํƒ€์ž…์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. '๋ฌด์—‡์„ ์ฃผ๊ณ ๋ฐ›๋Š”์ง€'๊ฐ€, ์ฆ‰ ์ฃผ๊ณ ๋ฐ›๋Š” ๋Œ€์ƒ์ด ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ธ ๊ฒƒ์ด์ฃ . ์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผํ•  ์ ์€ Swift ์–ธ์–ด ๋‚ด์—์„œ ์ฐธ์กฐ ํƒ€์ž…์€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์œ ์ผํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒด๋ฅผ ๋น„๋กฏํ•ด์„œ ๋‹ค๋ฅธ ํ…Œ์ดํ„ฐ ํƒ€์ž…์€ ๋ชจ๋‘ ๊ฐ’ ํƒ€์ž…์ž…๋‹ˆ๋‹ค. [๊ณตํ†ต์ ] ์‚ฌ์šฉ ๋ชฉ์  : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ  .. 2021. 6. 16.