์ ์ฒด ๊ธ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. ์ด์ 1 2 3 4 ๋ค์