ios
-
ATS (App Transport Security) ํบ์๋ณด๊ธฐiOS 2023. 11. 14. 10:04
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ App Transport Security๋ผ๊ณ ๋ถ๋ฆฌ๋ ATS์ ๋ํด ์์๋ณด๊ณ ์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ์ค์ ํ๋ ํ์ต์ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ ATS๊ฐ ๋ฌด์์ธ์ง ๊ณต์๋ฌธ์๋ฅผ ํตํด ํ์ตํด๋ณผ๊น์? ATS? ํ๋ ๋จผ์ ์๊ณ ๋์ด๊ฐ๋ฉด ์ข์๊ฒ์ด ์์ต๋๋ค. ๋ฐ๋ก ์๋ฒ์ ํต์ ํ ๋ HTTP๋ก ํต์ ์ ํ๋ฉด ์ ์ก ๋ณด์ ์ด์๋๋ฌธ์ ์ฐ๊ฒฐ์ด ๋์ง ์์ต๋๋ค! ์ด๊ฒ์ ATS๊ฐ ๊ด์ฌํ๋๊ฑด๋ฐ์. ์ฆ, ์ ํ ํ๋ซํผ์์ ATS๋ผ๋ ๋คํธ์ํน ๊ธฐ๋ฅ์ ๋ชจ๋ ์ฑ๊ณผ ์ฑ ํ์ฅ ํ๋ก๊ทธ๋จ์ ๋ํด ๊ฐ์ธ ์ ๋ณด ๋ณดํธ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ํฅ์์์ผ์ค๋๋ค. ์ฝ๊ฒ ๋งํด๋ณด๋ฉด ์ ํ์ ๋คํธ์ํฌ ๋ณด์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค ๐ ATS์์ ์์ ๋งํ๋ฏ์ด URLSession ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ์ฆ, ๋ชจ๋ URL ๋ก๋ฉ ์์คํ ์์๋ ๋ชจ๋ HTTP..
-
์ธ์ฑ๋ฆฌ๋ทฐ(In-App Review) ์ฐ๋ํ๊ธฐiOS 2023. 11. 9. 10:02
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ธ์ฑ๋ฆฌ๋ทฐ(In-App Review) ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ ์ธ์ฑ๋ฆฌ๋ทฐ๊ฐ ๋ฌด์์ธ์ง ๋ถํฐ ์์๋ณด๊ฒ ์ต๋๋ค. ์ธ์ฑ๋ฆฌ๋ทฐ (In-App Review) ์ธ์ฑ๋ฆฌ๋ทฐ๋ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ์ฑ ์์์ ์ฑ์ ์ฑ์คํ ์ด ํ์ ๋ฐ ๋ฆฌ๋ทฐ๋ฅผ ๋จ๊ธธ ์ ์๋๋ก ์์ฒญํ๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ฆ, ๋ง์ด๋ค ์ฑ์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์ด ์ฑ์ ํ์ ์ ๋จ๊ฒจ๋ฌ๋ผ๋ ํ์ ์ด ๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ข ์ข ๋ณธ์ ์ด ์์ผ์ค๊ฑฐ์์. ์ฝ๊ฒ ๋งํด, ์ฑ ๋ด์์ ํ์ ๊ณผ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํ๋ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์ ๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด ์ธ์ฑ๋ฆฌ๋ทฐ์ ์ฝ๋๋ฅผ ์ฌ์ด์ฃผ์ด๋ ์ธ์ฑ๋ฆฌ๋ทฐ๋ฅผ ๋์ฐ๋ ๊ฒฐ์ ์ ์ ํ ๋ด๋ถ ์์คํ ์์ ํด์ฃผ๊ธฐ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ปจํธ๋กคํ ์ ์๋ ๋ถ๋ถ๋ค์ด ๋ง์ต๋๋ค ๐ฅฒ ์ธ์ฑ๋ฆฌ๋ทฐ์ ํน์ง๋ค์ ์กฐ๊ธ ์ดํด๋ณผ๊น์? ์ธ์ฑ๋ฆฌ๋ทฐ ํน์ง 1๏ธโฃ ์์คํ ์ ์ผ๋ก..
-
๋ฉ์์ด ์ฌ์์ฒ๋ผ์์ iOS ์ทจ์ ํ ํฌ์ผ ์ถ์ฐ ํ๊ณํ๊ณ 2023. 11. 6. 11:45
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ง ์ค๋๋ง์ ํ๊ณ ์ฐ์ ํ๋ ํ๊นํด์ ๐๐ป ๋ฐ๋ก ๋ฉ์์ด ์ฌ์์ฒ๋ผ iOS ๊ฐ๋ฐ์ ์ทจ์ ์ ๋ํด ๊ฐ์๊ฐ ์๋ ๋ผ์ด๋ธ ํ ํฌ์ผ์ ์ถ์ฐํ๊ณ ์์ต๋๋ค! ์ด ๋๋ฒ ๋ผ์ด๋ธ ํ ํฌ์ผ๋ฅผ ํ๋๋ฐ ํ๋๋ 9์์ ํ๋๋ 10์์ ์งํํ์ด์. ์งํํ์ง ์๊ฐ์ด ์ข ๋์๋๋ฐ ์ด์ ์ผ ํ๊ณ ์ฐ์ ํ์ด๋ณด๋ ์ ๋ฅผ ๋ฐ์ฑํด๋ณด๋ฉฐ... ๐ฅฒ ํ๋ฒ ๋์์์ด ์ค๊ตฌ๋๋ฐฉ์ผ๋ก ํ๊ณ ์ฐ์ ํ์ด๋ณผ๊น ํฉ๋๋ค! ์ด๋ป๊ฒ ์ฃผ๋์ด์ธ ๋ด๊ฐ iOS ์ทจ์ ์ ๊ดํด ํ ํฌ๋ฅผ ํ๊ฒ ๋์๋๊ฐ..? ์ฒ์ ๋ฉ์์ด ์ฌ์์ฒ๋ผ์์ iOS ์ฑ์ค์ฟจ ์ด์์ ๋ด๋นํ์๋๋ถ๊ป์ ์ฐ๋ฝ์ด ์์ต๋๋ค ๐ ์๋ฌํ ์ฃผ์ ๋ก ์๋ฐ๊ฒ์ ๋ฉ์์ด ์ฌ์์ฒ๋ผ ์ ํ๋ธ ์ฑ๋์์ ํด๋ณผ ์๊ฐ์ธ๋ฐ ๊ด์ฌ์ด ์๋์งํ๊ณ ๋ง์ด์ฃ . ์ผ๋จ ์๋์์๋ ๋งํ๋ฏ์ด ๊ฐ์๊ฐ ์๋์์ต๋๋ค! ์ ๊ฐ ๊ฒฝ๋ ฅ์ด ๋ง์๊ฒ๋ ์๋..
-
rethrows๋ก ์๋ฌ๋ฅผ ๋ค์ ๋์ ธ๋ณด์ ๐ฅSwift 2023. 11. 3. 09:34
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ rethrows์ ๋ํด ํ๋ฒ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป rethrows? ์ฐ์ rethrows๊ฐ ๋ญ๊น์? throws๋ผ๋๊ฒ์ ๋ค๋ค ์๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ ์ํฉ์์ ์๋ฌ๋ฅผ catchํ์ฌ ์๋ฌ๋ฅผ ๋ค๋ฅธ์ชฝ์์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋๊ฒจ์ฃผ๋๊ฒ ์ฝ๊ฒ ๋งํด ๋์ ธ์ฃผ๋ ์๋ฏธ์ฃ ? ๊ทธ๋ฐ ๊ด์ ์์ rethrows๋ re + throws์ ๋๋ค. ์ฆ, ๋ค์ ๋์ ธ์ฃผ๋๊ฒ์ธ๋ฐ ๋ ์ฝ๊ฒ ํํํด๋ณด๋ฉด ๋๊ฒจ์ง ์๋ฌ์ ๋ํด ๋ ๋ค๋ฅธ์ชฝ์ผ๋ก ๋๊ฒจ์ฃผ๋๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์์ด์! ํ .... ๋ง๋ก๋ ์ฌ์ค ๋ณต์กํด๋ณด์ด๊ณ ์ดํด๊ฐ ์๊ฐ ์ ์์ต๋๋ค. ์ผ๋จ ์ฐ๋ฆฌ๊ฐ ์ข์ํ๋? ์ฝ๋๋ก ์ฝ๊ฒ ํ์ธํ๊ธฐ ์ ์ rethrows๋ฅผ ๋ฑ ๊ตฌ๋๋ก ํ์ด์ ์ ์ํด๋ณด๊ณ ๊ฐ์์ฃ ๐ ๊ณต์๋ฌธ์์์๋ rethrows๊ฐ ํจ..
-
Event CapturingiOS 2023. 10. 26. 13:29
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Event Capturing์ ๋ํด ํ๋ฒ ์์๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ฐ์ ์ฐ๋ฆฌ๋ ์ด์ ํฌ์คํ ์์ Event Bubbling์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด ์์๋ดค์ด์! Event Bubbling์ ๊ฐ๋ณ๊ฒ ๋ค์ ๋ฆฌ๋ง์ธ๋ ์์ผ๋ณผ๊น์? ํ ์์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, ์ด ์์์ ํ ๋น๋ ํธ๋ค๋ฌ๊ฐ ๋์ํ๊ณ ์ด์ด์ ๋ถ๋ชจ ์์์ ํธ๋ค๋ฌ๊ฐ ๋์ํ๋๊ฒ์ด ๋ฒ๋ธ๋ง์ ์๋ฆฌ ๐ซง ๊ทธ๋ ๊ธฐ์ ์ ์ ์ ํฐ์น ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํธ๋ค๋ฌ์ ์ญํ ์ด ์๋จ์ผ๋ก ์ ํ๋ ์ ์๋๊ฒ์ด์ฃ . ๋ง์ฝ ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ ์ดํด๊ฐ ํ์ํ์๋ค๋ฉด ์ด์ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์ ๐๐ป Event Bubbling ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Event Bubbling์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋ฐ๋ก ์ด์ ํฌ์คํ ์ธ Borderle..
-
Event BubblingiOS 2023. 10. 23. 16:54
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ Event Bubbling์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋ฐ๋ก ์ด์ ํฌ์คํ ์ธ BorderlessButtonStyle์ ๋ํด ํ์ตํด๋ณด๋ฉด์ ์งง๊ฒ ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ด๋ผ๋ ๊ฐ๋ ์ด ์ ์ฉ๋์ด์ ๊ทธ๋ ๋ค~๋ผ๊ณ ์๊ฐ๋ง ํ๊ณ ์ง๋๊ฐ์๋๋ฐ์. ๊ทธ๊ฑธ ์ด๋ฒ ํฌ์คํ ์์ ์กฐ๊ธ ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด๋ คํฉ๋๋ค! ๋ง์ฝ BorderlessButtonStyle์์ ์ด๋ป๊ฒ ํ๋ฆ์ ๋ง์ด ๋์๋์ง ํ์ํ๋ค๋ฉด ์๋ ํฌ์คํ ์ ๋จผ์ ์ฐธ๊ณ ํด์ฃผ์ธ์ ๐๐ป BorderlessButtonStyle์ ํ์ฉ ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ ๋ฒํผ์ ๋ค๋ฃฐ๋ ์คํ์ผ์ ์ง์ ํ ์ ์๋๋ฐ์. ๊ทธ ์ค BorderlessButtonStyle์ ์์๋ณด๊ณ ๊ทธ ์คํ์ผ์ ์ด๋ป๊ฒ ์ค์ ์์ ์ ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ์..
-
Default Initializers์ ํํ ์คํดSwift 2023. 10. 17. 14:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์ ์งง๊ฒ Swift์ Access Level์ ๊ณต๋ถํ๋ฉด์ ์คํด๊ฐ ์์ผ ์ ์๋ ๋ถ๋ถ์ ๋ํด ํ๋ฒ ๋์ง์ด๋ณด๋ ค๊ณ ํด์ ๐๐ป โ ๏ธ ๋ด์ฉ ๋ค์ ์งง์ ์ฃผ์ โ ๏ธ ์ผ๋จ ์ด๋ ๋ถ๋ถ์์ ์คํด๊ฐ ์์ผ ์ ์์๋์ง ๊ณต์ ๋ฌธ์๋ฅผ ํตํด ํ๋ฒ ํ์ธํด๋ณผ๊ป์ใ ใ Default Initializers ๋ฐ๋ก Default Initializers ๋ถ๋ถ์ธ๋ฐ์. ์ฌ๊ธธ ํ๋ฒ ํด์ํด๋ณด๋ฉด ์ด๋ ์ต๋๋ค. "Swift๋ ๋ชจ๋ ํ๋กํผํฐ๊ฐ ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง๊ณ ์๊ณ , ๊ทธ ์์ฒด๋ก ์ ์ด๋ ํ๋์ ์ด๊ธฐํ ํจ์๋ฅผ ์ ๊ณตํ์ง ์๋ ๊ตฌ์กฐ์ฒด๋ ๊ธฐ๋ณธ ํด๋์ค์ ๋ํด ์๋์ผ๋ก ์ธ์๊ฐ ์๋ ๊ธฐ๋ณธ ์ด๊ธฐํ ํจ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๊ฒ์ Default Initailizers์ธ ๊ธฐ๋ณธ ์ด๋์ ๋ผ์ด์ ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๊ธฐ๋ณธ ์ด๋์ ๋ผ์ด์ ์ ์ ๊ทผ ๋ ๋ฒจ์ ์ผ๋ฐ์ ์ผ๋ก ํด..
-
allowsHitTesting์ ํตํ ๋ทฐ ํฐ์น ์ด๋ฒคํธ ๋๊ธฐ๊ธฐSwiftUI 2023. 10. 13. 10:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐ ์ด๋ฒ ํฌ์คํ ์์๋ ํน์ ๋ทฐ์ ํฐ์น ์ด๋ฒคํธ๋ฅผ ๋ฌด์ํ๊ณ ๋ค์ ๋ทฐ๋ก ๋๊ธฐ๋ ๋ทฐ ๋ชจ๋ํ์ด์ด์ธ allowsHitTesting์ ํ์ตํด๋ณผ๊ป์ ๐๐ป ์ด๋ฒ ํฌ์คํ ์ SwiftUI๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๊ณ ํฐ์น ์ด๋ฒคํธ๋ฅผ ๋ทฐ๊ฐ ์์ฌ์์๋ ๋ค๋ฃจ๊ธฐ์ ๋๋ฌด ์ ์ฉํ๋ฐ ์์ฃผ ์ฝ๊ธฐ์ ํฌ์คํ ์ด ๋๊ฒ ๊ฐ๋จํ ์ ์์ต๋๋ค! ๋๋ฌด ์งง์์ ์คํฌ๋กค์ ๋ด๋ฆฌ๊ธฐ๋ ์ ์ ํฌ์คํ ์ด ๋๋ ์ ์์ผ๋ ๋น ๋ฅด๊ฒ ์น๊ณ ๋น ์ ธ๋ด์ ๐ง๐ปโ๏ธ ์ฐ์ ์ธ์ ์ฌ์ฉํ ๊น์? ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ณผ๊ป์. struct ContentView: View { @State var isDisplayText: Bool = false var body: some View { VStack { Text("Green") .font(.title) .bold() .for..