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

์ „์ฒด ๊ธ€40

[iOS] TIL_20230811 identifier ์‰ฝ๊ฒŒ ์ง€์ •ํ•˜๊ธฐ ๊ฐœ๋ณ„ ํด๋ž˜์Šค์— identifer ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ”„๋กœํ† ์ฝœ ์—†์–ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒ ํ•ด๋†“์œผ๋ฉด ์–ด๋–ค ์ด์œ ๋กœ ๊ตฌํ˜„ ๋˜์–ด์žˆ๋Š”์ง€ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•… ํ•˜๊ธฐ ์ข‹์Œ. UserDefaultsHelper ๋ฐ–์— ๋„ฃ์œผ๋ฉด ๋นŒ๋“œํ•  ๋•Œ ๋ชจ๋“  swift ํŒŒ์ผ์—์„œ ์ ‘๊ทผ๊ฐ€๋Šฅ(๋ชจ๋“ ํŒŒ์ผ์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ฒŒ๋” ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”) ํด๋ž˜์Šค ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  enum ์ด๋ผ๋ฉด ํด๋ž˜์Šค ์•ˆ์— ๋‘๋ฉด ํด๋ž˜์Šค ์“ฐ์ผ ๋•Œ๋งŒ ์ปดํŒŒ์ผ ํ•˜๋ฉด ๋˜์–ด์„œ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์•„๋‚„ ์ˆ˜ ์žˆ์Œ. → ์ปดํŒŒ์ผ ์ตœ์ ํ™” class UserDefaultsHelper { let userDefaults = UserDefaults.standard enum Key: String { case nickname, age } var nickname: Strin.. 2023. 8. 15.
[iOS] TIL_230810 1. Activity Indicator ๋ฐ‘์— ๊ฐ€์šด๋ฐ์— ๋„ฃ์œผ๋ ค๋ฉด ์…€์— ๋“ค์–ด๊ฐ€๋Š” ๋“ฑ ์ด์ƒํ•˜๊ฒŒ ๋“ค์–ด๊ฐˆ ๊ฒƒ ์ผ๋‹จ ๊ฒ€์ƒ‰๋ฐ” ์ชฝ์— ๋„ฃ์Œ ์ธ์ŠคํŽ™ํ„ฐ๋กœ ์ ๋‹นํžˆ ์œ„์น˜ ์กฐ์ • ํ›„ center๋กœ align indicator ์ฒ˜๋ฆฌ hidden (viewDidLoad) show (ํ†ต์‹ ์‹œ์ž‘/ ex. ๊ฒ€์ƒ‰. ๋ฐ์ดํ„ฐ…) hidden(ํ†ต์‹ ๋, ๋ทฐ ๊ฐฑ์‹ ) ๋‚ ์งœ ์˜ˆ์™ธ์ฒ˜๋ฆฌ 8๊ธ€์ž (20220101) ์˜ฌ๋ฐ”๋ฅธ ๋‚ ์งœ (20233333) ๋‚ ์งœ ๋ฒ”์ฃผ ํ™”๋ฉด ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ๋Š” ์ธ๋””์ผ€์ดํ„ฐ ์ˆจ๊ธฐ๊ธฐ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ์ธ๋””์ผ€์ดํ„ฐ ๋ณด์ด๊ณ  ๋Œ์•„๊ฐ€๊ฒŒ ํ•˜๊ธฐ 2. HTTP POST POST์‹œ ํ•„์š”ํ•œ ๊ฒƒ url method key header text.๋ชฉ์  ์›๋ณธ ์š”์ฒญ์„ ์œ„ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋„ฃ๊ธฐ POST ์„ฑ๊ณต Text Attatchment ํ…์ŠคํŠธ๋ทฐ์— ์ด๋ฏธ์ง€ ๋„ฃ์„์ˆ˜ ์žˆ์Œ ์ผ๊ธ‰ ๊ฐ์ฒด .. 2023. 8. 14.
[iOS] TIL_230809 json ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์‹œ ์ฃผ์˜์‚ฌํ•ญ json์˜ ๊ฐ€์žฅ ๋ฐ”๊นฅ์ด ๋ฐฐ์—ด์ž„ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผ Video ๊ฒ€์ƒ‰ ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ ๋ ˆ์ด์•„์›ƒ ์„ค์ •์‹œ ๋ถ€๋“ฑํ˜ธ ์‚ฌ์šฉํ•˜๊ธฐ ์ œ๋ชฉ์ด ๊ธธ์–ด์ง€๋ฉด ๋‘๋ฒˆ์งธ ๋ผ๋ฒจ์ด ๊ฐ€๋ ค์งˆ ์ˆ˜ ์žˆ์Œ ๋‘๋ฒˆ์งธ ๋ผ๋ฒจ bottom ๋งˆ์ง„ 8๋กœ ์คŒ → ์•„์˜ˆ ๋‚ด๋ ค๊ฐ€๋ฒ„๋ฆผ 8๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ฒŒ๋กœ ๋ณ€๊ฒฝ. ๋ ˆ์ด์•„์›ƒ ๋ฌธ์ œ ์—†์ด ์ž˜ ์„ค์ • ๋จ ๋™์˜์ƒ ๊ฒ€์ƒ‰ ๋ทฐ(Kakao API) video ๋‹ด์„ ๊ตฌ์กฐ์ฒด ์„ ์–ธ ๋„คํŠธ์›Œํฌํ†ต์‹ ํ•ด์„œ ์–ป์€ video ๋‹ด์•„ ๋†“์„ struct ๋ฐฐ์—ด ์„ ์–ธ json์œผ๋กœ ์–ป์€ ๊ฐ’๋“ค๋กœ Struct ์ดˆ๊ธฐํ™” ํ•ด์„œ Struct ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ €์žฅ ์ƒํƒœ์ฝ”๋“œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ request์— ๋ฌธ์ œ ์žˆ์„ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์—๋Ÿฌ๋ฉ”์„ธ์ง€ ๋œธ. validate์— ๋ฒ”์œ„๋ฅผ ๋„ฃ์–ด์ฃผ์–ด ํ•ด๋‹น ๋ฒ”์œ„ ๋ฉ”์„ธ์ง€ response๋กœ ๋ฐ›์œผ๋ฉด ์˜ค๋ฅ˜์—ฌ๋„ success๋กœ ๋“ค์–ด์˜ค๊ณ .. 2023. 8. 10.
[iOS] TIL_230808 ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๊ณผ์ œ์—์„œ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์“ฐ๋ผ๊ณ  ํ•˜๋Š” ๊ณณ๋„ ์žˆ๊ณ  ์“ฐ์ง€๋ง๋ผ๋Š” ๊ณณ๋„ ์žˆ์Œ. →ํšŒ์‚ฌ์™€ ํŒ€๋งˆ๋‹ค ์ œ๊ฐ๊ฐ์ž„ ๋‹ค ์ ์‘ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š” HTTP๋ž€ ๋น„์—ฐ๊ฒฐ์„ฑ. Connectionless ๋ฌด์ƒํƒœ์„ฑ Stateless ์š”์ฒญํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „์— ๋ญ์š”์ฒญํ–ˆ๋Š”์ง€ ์ด๋Ÿฐ๊ฑฐ ๋ชจ๋ฆ„. ํ•ญ์ƒ ์—ฐ๊ฒฐํ•˜๊ณ  ํ•ด์ œํ•˜๊ณ  ์ด๋Ÿผ. API ์“ฐ๋˜ api๊ฐ€ ์—†์–ด์ง€๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ์Œ. ํ™•์ธ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ•ด์ค˜์•ผํ•จ. ๊ตฌ์กฐ์ฒด vs ํด๋ž˜์Šค ์ƒ์†์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŽ์ด์”€. bookmark The Collaborative API Development Platform Leading Open Source API Development Platform for HTTP, REST, GraphQL, gRPC, SOAP, and WebSocket.. 2023. 8. 9.
[iOS] TIL_230807 ๋„คํŠธ์›Œํฌ ํ†ต์‹  Open API ๋ชฉ๋ก ๊ณต๊ณต ๋ฐ์ดํ„ฐ ํฌํ„ธ https://www.data.go.kr/ ๋„ค์ด๋ฒ„ ๊ฐœ๋ฐœ์ž ์„ผํ„ฐ https://developers.naver.com/main/ ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ์„ผํ„ฐ https://developers.kakao.com/ TMDB ์˜ํ™” https://developer.themoviedb.org/reference/intro/getting-started Unsplash ์ด๋ฏธ์ง€ https://unsplash.com/developers Giphy ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ Gif https://developers.giphy.com/ ๋‚ ์”จ https://openweathermap.org/ ์˜ํ™”์ง„ํฅ์œ„์›ํšŒ ๋ฐ•์Šค์˜คํ”ผ์Šค https://www.kobis.or.kr/kobisopenapi/homepg/ma.. 2023. 8. 9.
[iOS] TIL_230804 ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์žˆ๋Š” ๋‹จ์–ด ๋ฐฐ์—ด ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๊ธ€์ž ๋ณ€๊ฒฝ ๋์„ ๋•Œ ๊ฒ€์ƒ‰ ์‹œ ๋‹จ์–ด ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” list ์š”์†Œ searchlist์— ์ถ”๊ฐ€ํ•˜๊ธฐ ๊ฒ€์ƒ‰ ๋œ ์…€์—์„œ ์ข‹์•„์š” ๋ˆ„๋ฅด๋Š” ๊ธฐ๋Šฅ → ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ ํ•˜๋ฉด ์›๋ณธ๋ฐ์ดํ„ฐ์—๋Š” ์ข‹์•„์š” ๋ฐ˜์˜ ์•ˆ๋˜์„œ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์—†์–ด์ง ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์˜ํ™” ํƒ€์ดํ‹€ ๊ฐ€์ ธ์˜ค๊ธฐ ์›๋ณธ ๋ฐฐ์—ด(list)์—์„œ ๊ฐ™์€ title์—” ๋ฐ์ดํ„ฐ ์กฐํšŒํ•ด์„œ ๋ณ€๊ฒฝํ•˜๊ธฐ item์€ ๋ฐ˜๋ณต๋ฌธ์šฉ ๋ณ€์ˆ˜์ž„ ์ธ๋ฑ์Šค ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Œ. item์ด๋ž‘ index ๋‘˜ ๋‹ค ๊ฐ€์ ธ์™€์„œ ์›๋ณธ์ธ list์—์„œ ๋ฐ์ดํ„ฐ ์ˆ˜์ • ํ…์ŠคํŠธํ•„๋“œ ํ”Œ๋ ˆ์ด์Šค ํ™€๋” ๋ฒ„๊ทธ ์ œ๊ฑฐ ์•„๋ž˜ ๋กœ์ง ์ฒ˜๋Ÿผ ํ…์ŠคํŠธ ํ•„๋“œ ํ…์ŠคํŠธ ๋‚ด์šฉ์œผ๋กœ๋งŒ ํ”Œ๋ ˆ์ด์Šค ํ™€๋” ui ์ฒ˜๋ฆฌํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ placeholder๋ž‘ ๊ฐ™์€ ๋‚ด์šฉ ์ž…๋ ฅํ–ˆ์„๋•Œ ํšŒ์ƒ‰์œผ๋กœ ๋ณ€ํ•ด๋ฒ„๋ฆฌ๋Š” ๋ฒ„๊ทธ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ. ์•„๋ž˜์ฒ˜๋Ÿผ ํ…์ŠคํŠธ ์ปฌ๋Ÿฌ .. 2023. 8. 6.
[iOS] TIL_230803 ๊ฐ™์€ ๋ทฐ์ปจ์„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ผ€์ด์Šค(์ถ”๊ฐ€ & ์ˆ˜์ • ๋“ฑ)๋กœ ์จ๋ณด๊ธฐ true/false, 0/1, “present”/”push”๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ํ•ด์ฃผ์‹ฌ bool ๊ฐ’๋„ ์ข‹์ง€๋งŒ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ ๋ฐ–์— ๋Œ€์‘ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๋ฉด ์ˆ˜์ •ํ•˜๊ธฐ ์–ด๋ ค์›€ ์ˆซ์ž๋‚˜ ๋ฌธ์ž์—ด๋กœ ํ•˜๋Š” ๊ฑฐ๋Š” ์—ฌ๋Ÿฌ์‚ฌ๋žŒ์ด ํ˜‘์—…ํ•  ๋•Œ ์–ด๋ ต๊ณ  ํ˜ผ์žํ•ด๋„ ๊นŒ๋จน์„ ๊ฐ€๋Šฅ์„ฑ ๋งŽ์Œ. → ์—ด๊ฑฐํ˜•์œผ๋กœ ํ•ด๊ฒฐ. viewDidLoad์—์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ์ฝ”๋“œ ๊ตฌํ˜„ return ํ•  ๋•Œ ๋ญ”๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋ฉด ์ข‹์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ๊ทธ๋ƒฅ return ๋˜๋„ ๋ฌธ์ œ ์—†๋Š” ๋ถ€๋ถ„ ํ…์ŠคํŠธ ๋ทฐ์˜ placeholder ํ…์ŠคํŠธ ํ•„๋“œ์™€ ๋‹ฌ๋ฆฌ ๊ธฐ๋ณธ ์ง€์› X → ๋ถ€ํ•˜์ง์›(ํ”„๋กœํ† ์ฝœ) ๋ฐ๋ ค์™€์•ผ ํ•จ. set์„ ์ด์šฉํ•ด์„œ ์œ„์˜ ๋‘ ์ฝ”๋“œ๊ฐ€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋จ. ๊ฐ์‹œ์ž didSet ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ๊ฐฑ์‹ .. 2023. 8. 6.
[iOS] TIL_230802 1. ์…€์— ๋žœ๋ค ์ƒ‰์ƒ ๋„ฃ๊ธฐ ์ƒ‰์ƒ ์„ ํƒ๋„๊ตฌ Google์— ์žˆ์Œ www.google.com ์…€ ์•ˆ์— ๋žœ๋ค ์ปฌ๋Ÿฌ ์ง€์ • ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด ์คŒ. ๋ฌธ์ œ : likeButton ๋ˆ„๋ฅด๋ฉด ์ƒ‰๊น”์ด ๊ณ„์† ๋ฐ”๋€œ;; ์ด์œ : ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๊ปด์„œ tableView.reloadData() ๋  ๋•Œ๋งˆ๋‹ค ๋ทฐ์˜ ์…€์ด ๋‹ค์‹œ ๋งŒ๋“ค์–ด ์งˆ๋•Œ๋งˆ๋‹ค ์ƒ‰์ƒ์ด ์ƒˆ๋กœ ๋ฝ‘ํž˜. ํ•ด๊ฒฐ: ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๋Š” struct์—์„œ ์ปฌ๋Ÿฌ๊ฐ’์„ ๋งŒ๋“ค๊ณ  ๊ฐ€์ง€๊ณ  ์žˆ์ž. ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์คŒ. ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๋ง์ด ๋œธ. ํ•จ์ˆ˜์— static ๋ถ™์—ฌ์„œ ํƒ€์ž… ๋ฉ”์„œ๋“œ๋กœ ๋ฐ”๊ฟ”์ค˜์„œ ํ•ด๊ฒฐ ์ธ์Šคํ„ด์Šค๋ฉ”์„œ๋“œ๋ž‘ static ํƒ€์ž… ๋ฉ”์„œ๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ค๋ฅธ ๊ณณ์— ์ €์žฅ ๋จ. static์€ ํ”„๋กœ๊ทธ๋žจ ๋๋‚  ๋•Œ๊นŒ์ง€ ์‚ด์•„์žˆ์Œ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์‚ด์•„ ์žˆ์„ ๋•Œ๋งŒ ์กด์žฌ . ๋ทฐ์ปจ์—์„œ ํ•จ์ˆ˜ ๊ฐ€์ ธ๋‹ค ์“ธ ๋•Œ ํƒ€์ž…๋ฉ”์„œ๋“œ๋ผ.. 2023. 8. 5.
[iOS] TIL_230801 ํ”„๋กœํผํ‹ฐ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ (ํด๋ž˜์Šค/๊ตฌ์กฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์•ผ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ) ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋™์‹œ์— or ์„ ์–ธ๋งŒ ํ•ด๋‘๊ณ  ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ดˆ๊ธฐํ™” ํ•ด๋„ ๋จ! struct User { var nickname: String //์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ๋™์‹œ์— or ์„ ์–ธ๋งŒ ํ•ด๋‘๊ณ  ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ดˆ๊ธฐํ™” ํ•ด๋„ ๋จ! //์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ + ์ €์žฅ ํ”„๋กœํผํ‹ฐ static var originName: String = "์ง„์งœ ์ด๋ฆ„" //ํƒ€์ž… ํ”„๋กœํผํ‹ฐ(Meta Type) + ์ €์žฅ ํ”„๋กœํผํ‹ฐ //์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ์ˆœ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ, ์•ฑ ์ข…๋ฃŒ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์œ ์ง€ //์ง€์—ฐ ์ €์žฅ ํ”„๋กœํผํ‹ฐ(lazy) ์ฒ˜๋Ÿผ ๋™์ž‘ } ์ธ์Šคํ„ด์Šค๋Š” ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ ํƒ€์ž… ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ๋ถˆ๊ฐ€ ํƒ€์ž…์ด๋ฆ„์œผ๋กœ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ๋ถˆ๊ฐ€ ํƒ€์ž… ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ .. 2023. 8. 3.
[iOS] TIL_230731 XIB๋กœ ํ…Œ์ด๋ธ”๋ทฐ ์…€ ๋งŒ๋“ค๊ธฐ ํ…Œ์ด๋ธ”๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋งŒ๋“ค๋˜ ์…€์„ xib๋กœ ๋”ฐ๋กœ ๊บผ๋‚ด์„œ ๋งŒ๋“ฆ ์›๋ž˜ ํ…Œ์ด๋ธ”๋ทฐ ์ฝ”๋“œ๋ž‘ ๋˜‘๊ฐ™์ด ์งฐ์ง€๋งŒ runtime ์˜ค๋ฅ˜๋‚จ. guard let ๊ตฌ๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ”์ค˜ ๋ด„ guard let ๊ตฌ๋ฌธ์— ์˜ํ•ด ์—๋Ÿฌ ์—†์ด ๋นˆ ์…€๋“ค์ด ๋“ค์–ด๊ฐ€๊ธด ํ–ˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ์›ํ•˜๋Š” ์…€์ด ์•ˆ ๊ฐ€์ ธ์™€์ง. ํ…Œ์ด๋ธ”๋ทฐ ์…€ ๋“ฑ๋กํ•˜๊ธฐ XIB๋กœ ํ…Œ์ด๋ธ”๋ทฐ์…€์„ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ, ํ…Œ์ด๋ธ”๋ทฐ์— ์‚ฌ์šฉํ•  ์…€์„ ๋“ฑ๋กํ•ด์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”! bundle ์ด๋ž€? ์ง€๊ธˆ์€ ๋‚ด ํ”„๋กœ์ ํŠธ ์œ„์น˜์ •๋„ ๋ผ๊ณ ๋งŒ ์•Œ์•„๋‘๊ธฐ.(nil๋กœ ํ•˜๋ฉด ๋‚ด ํ”„๋กœ์ ํŠธ ์œ„์น˜) ํ…์ŠคํŠธ ์–‘ ๋งŒํผ ๋†’์ด ๋„“ํžˆ๊ธฐ (Dynmic Height) Dynamic Height์„ ์œ„ํ•ด ์„ค์ •ํ•ด์•ผ ํ•  ๊ฒƒ automaticDimension numberOfLines Auto Layout(์—ฌ๋ฐฑ) Dynamic heigh.. 2023. 8. 3.