[iOS] ์ฑ ์๋๋ฐ์ค์ iOS์ ํ์ผ ์์คํ
App Sandbox + File System
์ค๋์ ์ฑ ์๋๋ฐ์ค์ ๋ํ ๊ฐ๋ ์ ์ ๋ฆฌํด๋ณด๊ณ ์ฑ ์๋๋ฐ์ค ๋ด๋ถ์์ ํ์ผ๋ค์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ๊ณ ์๋์ง ๊ณต์๋ฌธ์๋ฅผ ํตํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ดํด๋ณด๋ ค๊ณ ํ๋ ๋ฌธ์๋ File System Programming Guide์ App Sandbox Design Guide์ธ๋ฐ์, ์๋๋ฐ์ค ๋ฌธ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ MacOS๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์ด ์์ด์ ๋๋ฌด ๊น๊ฒ๋ ๋ค๋ฃจ์ง ์๊ณ ์๋๋ฐ์ค์ ๊ฐ๋ ์ด ๋ฌด์์ธ์ง ํ์ธํ๋ ์ฉ๋๋ก ๋ณด๋ ค๊ณ ํด์. ๋ฌธ์ ์์ฒด๊ฐ 2016๋ ์ ๋ง์ง๋ง์ผ๋ก ์ ๋ฐ์ดํธ ๋์ด์ ์ ๋ขฐ๋๋ ๋์ง ์๊ตฌ์.
๊ทธ๋ผ ํ๋์ฉ ์์ํด๋ณด๊ฒ ์ต๋๋ค!
App Sandbox
๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์ฑ ์๋๋ฐ์ค๋ ์ปค๋ ๋ ๋ฒจ์์ ์ฑ์ ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ์ ์ ํํ๋ ๊ธฐ์ ์ด์์. ์ฑ ์๋๋ฐ์ค์ ๋ชฉ์ ์ ์ฑ์ด ์์๋์์ ๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ ์์คํ ์ ์ํ์ด ๋์ง ์๋๋ก ๋ฐฉ์งํ๋ ์ญํ ์ ์ํํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ ์๊ณ ์๋ฏ์ด ๋ณต์กํ ์๋ก ์ํํธ์จ์ด๊ฐ ๊ฐ์ง๋ ์ํ์์๋ค์ด ๋์ด๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฒ์๋ฐฐ์ธ ๋ ๋ง๋ ์ฒซ ํ๋ก๊ทธ๋จ์ธ Hello World ์ถ๋ ฅ ํ๋ก๊ทธ๋จ๊ณผ ์ง๊ธ ๋ง๋ค๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ๋น๊ตํด๋ณด๋ฉด, ๋ณต์ก๋์ ๋ฐ๋ผ ์ํ์์๊ฐ ์ผ๋ง๋ ๋ง์์ง ์ฒด๊ฐํ ์ ์์ฃ ใ ใ
๊ฐ๋ฐ์๋ค์ด ์๋ฌด๋ฆฌ ๋ณด์์ ์ ๊ฒฝ์ ๋ง์ด ์ฐ๋๋ผ๋ ์ฑ์ ๊ณต๊ฒฉํ๋ ์ง์์์๋ ๊ทธ๋ฅ ๋ฑ ํ ๋ฒ๋ง ๋ซ์ด๋ด๋ฉด ๋ฉ๋๋ค. ๊ทธ์ ๊น์ง ์๋ฌด๋ฆฌ ๋ง์ ๋ณดํธ๋ฅผ ํ์ด๋ ํ ๋ฒ ๋ซ๋ฆฌ๋ ์๊ฐ๋ถํฐ๋ ์๋ฏธ๊ฐ ์์ด์ง์ฃ .
์ฑ ์๋๋ฐ์ค๋ ์ฑ์ ๋ค์ด์ค๋ ๊ณต๊ฒฉ์ ์ฌ์ ์ ์ฐจ๋จํ๋ ๊ธฐ์ ์ ์๋์์. ๋์ ๊ณต๊ฒฉ์ด ์ฑ๊ณตํ์ ๋ ๋ฐ์ํ๋ ํผํด๋ฅผ ์ต์ํํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ธฐ์ ์ ๋๋ค.
์ฑ ์๋๋ฐ์ค๊ฐ ์ด๋ป๊ธธ๋ ํผํด๋ฅผ ์ต์ํ ํ๋ค๋ ๊ฒ์ผ๊น์? ๊ณ์ ์ฝ์ด๋ด ์๋ค!
๋ฌธ์์์๋ ์๋๋ฐ์ค๊ฐ ์ ์ฉ๋์ง ์์ ์ฑ์ ์ด๋ค ์ผ์ด ์ผ์ด๋ ์ ์๋์ง ์ ๋ช ํ๊ณ ์์ต๋๋ค. ์๋๋ฐ์ค๊ฐ ์ ์ฉ๋์ง ์์ ์ฑ์ ์ฑ์ ์คํํ๋ ์ฌ์ฉ์๊ฐ ์ฑ์ ๋ํ ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ณด์์ด ํ ๋ฒ ๋ซ๋ฆฌ๊ฒ ๋๋ฉด ์ด์ ๊ทธ ์ฑ์ ์ฑ์ ๊ณต๊ฒฉํ ๊ฐ๋ฐ์๊ฐ ์ํ๋๋๋ก ๋ฌด์์ด๋ ์ง ํ ์ ์๋ ์ฑ์ด ๋๋๊ฑฐ์ฃ .
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์, ์ฑ ์๋๋ฐ์ค๋ ๋ ๊ฐ์ง ์ ๋ต์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋จผ์ , ์ฑ ์๋๋ฐ์ค๋ ๊ฐ๋ฐ์๊ฐ ์ฑ์ด ์์คํ ๊ณผ ์ด๋ป๊ฒ ์ํธ์์ฉํ ์ง ์ ์ ํ ์ ์๋๋ก ํด์ฃผ๊ณ ์์ด์. ๊ทธ๋ผ ์์คํ ์ ์ฌ๊ธฐ์ ์ ์๋ ๋๋ก ์ฑ์๊ฒ ์์คํ ์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ์ฃผ๊ณ ๊ทธ ์ด์์ ํ์ฉํ์ง ์์ฃ .
๊ทธ๋ฆฌ๊ณ ์ฑ ์๋๋ฐ์ค๋ ์ฌ์ฉ์์๊ฒ ํฌ๋ช ํ๊ฒ ์ถ๊ฐ์ ์ธ ์ ๊ทผ์ ํ์ฉํ๊ณ ์์ด์. ํฌ๋ช ํ๋ค๋ ๊ฒ์ ์ฌ์ฉ์ ๋ชจ๋ฅด๊ฒ ์ด๋ฐ ๊ถํ๋ค์ด ํ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ, ์ฌ์ฉ์ ์ธํฐ๋ ์ ์ ํตํด ์ฌ์ฉ์์๊ฒ ์๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ฌธ์์๋ ์ด๋ ๊ฒ ๊ทธ๋ฆผ์ด ์๋๋ฐ์, ํต์ฌ์ ๊ฒฐ๊ตญ ์ฑ์ด ์ด๋ค ๋ฐ์ดํฐ๋ ์์คํ ์ ๋ฆฌ์์ค์ ๋ง์๋๋ก ์ ๊ทผํ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ๋ฐ์์ ์ํด, ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์์๊ฒ ์ธ์ง๋ ์์ญ๋งํผ์ ๋ฐ์ดํฐ์ ์์คํ ๋ฆฌ์์ค์๋ง ์ ๊ทผํ ์ ์๊ฒ ํ๋ ๊ฒ์ด์ฃ .
์๊น ์ฑ ์๋๋ฐ์ค์ ๋ชฉํ๊ฐ ๊ณต๊ฒฉ์ ์ํด ๋ฐ์ํ๋ ํผํด๋ฅผ ์ต์ํํ๋ ๊ฒ์ด๋ผ๊ณ ํ์์ฃ ? ์ด์ ๋ฌด์จ ์๋ฏธ์ธ์ง ์๊ฒ ๋ค์!
์ฑ ๋ณด์์ ๋ฌธ์ ๊ฐ ์์ด์ ๊ณต๊ฒฉ์์๊ฒ ์ฑ์ ์ ์ด๊ฐ ๋์ด๊ฐ๋ ์ฑ์ ์ฑ ์๋๋ฐ์ค์ ์ํด ํ์ฉ๋ ์์ญ๋ง ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฉ๋์ง ์์ ์์ญ์ ์์ ํ๊ฒ ๋ณดํธํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ๋ํด์ ์ฑ ์๋๋ฐ์ค๋ ๊ณต๊ฒฉ์๊ฐ ์ฑ์ ์ ์ด๋ฅผ ํ์ทจํด์ ์์คํ ๋ฆฌ์์ค๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋, ์ฑ ์๋๋ฐ์ค๋ ํ์ฌ ์ด๋ค ์์ ์ด ์ํ๋๋ ค๊ณ ํ๋์ง ์ฌ์ฉ์์๊ฒ ๋ช ์์ ์ผ๋ก ์๋ฆฌ๋ ๊ฒ์ ํตํด์ ํ ๋ฒ ๋ ์์คํ ์ ๋ณดํธํ๋ ค๊ณ ํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด, ์ฑ ์๋๋ฐ์ค๊ฐ ์ ์ฉ๋ ์ฑ์ ๋ฐ๋์ ๋ช ์์ ์ผ๋ก ์ด๋ค ๋ฆฌ์์ค์ ์ด๋ค ๋ชฉ์ ์ผ๋ก ์ ๊ทผํ๋ ค๊ณ ํ๋์ง ์๋ฆฌ๊ฒ ๋ฉ๋๋ค. ๋ฆฌ์์ค ๋ชฉ๋ก์ด ๋ฌธ์์ ๋์์๋๋ฐ, iOS์ ๋ง์ถฐ์ ์ ๋ฆฌํด๋ณผ๊ฒ์:
- ํ๋์จ์ด(์นด๋ฉ๋ผ, ๋ง์ดํฌ, ํ๋ฆฐํฐ)
- ๋คํธ์ํฌ ์ฐ๊ฒฐ(์์ฒญ, ์๋ต)
- ์ฑ ๋ฐ์ดํฐ(์บ๋ฆฐ๋, ์ฐ๋ฝ์ฒ, ์์น)
- ์ ์ ๋ฐ์ดํฐ(Downloads, User Selected Files)
์ด๋ ๊ฒ ์ ๋ฆฌ์์ค์ ๋ํด ๋ช ์์ ์ผ๋ก ์์ฒญ๋์ง ์์ ์ ๊ทผ์ ๋ฐํ์์ ๋ชจ๋ ์ฐจ๋จ๋ฉ๋๋ค.
iOS์ ํ์ผ ์์คํ
iOS๋ ํ์ผ์ ๋ณต์กํ๊ฒ ๊ด๋ฆฌํ์ง ์๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ผ๋ก ํ์ผ ์์คํ ์ ์ ๊ทผํ๋ ๊ฒ์ ๋ง์ต๋๋ค. ์ฌ์ฉ์๋ ํ์ผ์ด ์ด๋์ ์ ์ฅ๋๋์ง ํฌ๊ฒ ๊ณ ๋ คํ ํ์๊ฐ ์์ฃ . ๊ทธ๋ฆฌ๊ณ ์ฑ์ด ํ์ผ ์์คํ ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ช๊ฐ์ง ๊ท์น๋ค์ ๋ฐ๋ผ์ผํฉ๋๋ค.
๊ทธ๋ผ ํ์ผ์ ์ด๋์ ์ ์ฅ๋๋๋ฐ?
์์์ ์ฑ ์๋๋ฐ์ค์ ๋ํด ์ ๋ฆฌํด๋ณด์๋๋ฐ์, iOS ์ฑ์ ์ฑ ์๋๋ฐ์ค ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ ์๋ ํ์ผ๋ค๊ณผ ์ํธ์์ฉํ ์ ์๊ฒ ์ ํ๋์ด ์์ต๋๋ค. ์ฑ์ด ์ฒ์ ์ค์น๋ ๋ ์์คํ ์ ์ฑ์ ์๋๋ฐ์ค ๋๋ ํ ๋ฆฌ์์ ์ปจํ ์ด๋ ๋๋ ํ ๋ฆฌ๋ค์ ๋ง๋ค๊ฒ ๋ฉ๋๋ค. ์ปจํ ์ด๋ ๋๋ ํ ๋ฆฌ์ ๋ํด์๋ ์ด ๋ฌธ์์์ ๋์์์ง ์์์ ์์์ ๋ดค๋ ์๋๋ฐ์ค ๋ฌธ์๋ฅผ ํ์ธํด๋ดค์ด์.
์์์ ์ค๋ช ํ ๊ฒ๊ณผ ๋ค๋ฅด์ง ์์ง๋ง ์ค์ํ๊ฑด use only by your app์ ๋๋ค. ์ด ์ฑ์์๋ง ์ฌ์ฉ๋๋ ๋๋ ํ ๋ฆฌ๋ผ๋ ๊ฑฐ์ฃ . ์ด ๋๋ ํ ๋ฆฌ์ ๋ํด์๋ ์ฑ์ด ์ฝ๊ธฐ ์ฐ๊ธฐ์ ๋ํ ์ ๊ทผ์ ๊ฐ์ง ์ ์๋ค๊ณ ํฉ๋๋ค.
iOS์์๋ ์ญํ ์ ๋ฐ๋ผ์ ์ปจํ ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ๋ฌ๊ฐ ๊ฐ์ง๊ณ ์๋๋ฐ์, ๊ธฐ๋ณธ์ ์ผ๋ก Bundle Container, Data Container๊ฐ ์๊ณ iCloud Container์ ๊ฐ์ ์ถ๊ฐ์ ์ธ ์ปจํ ์ด๋๋ค์ ์ฑ์ด ์ถ๊ฐ์ ์ธ ์ ๊ทผ์ ์์ฒญํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ ์ฝ๋ค์! ๋ฒ๋ค ์ปจํ ์ด๋๋ ์ฑ์ ๋ฒ๋ค์ ๊ฐ์ง๊ณ ์๊ณ , ๋ฐ์ดํฐ ์ปจํ ์ด๋๋ ์ฑ๊ณผ ์ฌ์ฉ์์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ปจํ ์ด๋๋ ๋ด๋ถ์ ํ์ ๋๋ ํ ๋ฆฌ๋ค์ ๋ ๊ฐ์ง๊ณ ์์ฃ .
์ฑ์ ์ด ์ปจํ ์ด๋๋ฅผ ๋ฒ์ด๋์๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ ์ ์๋๋ก ์ ํ๋์ด ์์ต๋๋ค. ํ์ง๋ง ์ ์ผํ๊ฒ ํ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์์คํ ์ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์์ ์ฑ์ด๋, ์ฐ๋ฝ์ฒ ์ฑ์ ์๋ ์ ๋ณด๋ฅผ ์ ๊ทผํ๋ ๊ฒ ์ฒ๋ผ์.
๋๋ ํ ๋ฆฌ ๋ฏ์ด๋ณด๊ธฐ
์๋๋ฐ์ค ๋๋ ํ ๋ฆฌ ๋ด๋ถ์ ์๋ ๋๋ ํ ๋ฆฌ๋ค์ ์ด๋ค ์ข ๋ฅ๊ฐ ์์๊น์? ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ๋๋ ํ ๋ฆฌ๋ค๊ณผ ๊ทธ ์ฉ๋๋ฅผ ์ ๋ฆฌํด๋ด ์๋ค.
๋ฌธ์์ ๋์์๋ ์ ๋ณด๋ฅผ ํ ๋๋ก ์ ๋ฆฌํด๋ดค๋๋ฐ์, ์ฌ์ค ์ ์ผ ์ค์ํ ๊ฒ์ ๋ฒ๋ค, ์บ์, ์์ ๋๋ ํ ๋ฆฌ๋ ๋ฐฑ์ ๋์ง ์๋๋ค๋๊ฑฐ์์.
๋ฒ๋ค์ ๋ฐฑ์ ์ ํ์ง ์๋ ๋์ ์ ์ฑ ์คํ ์ด์์ ๋๊ธฐํ๋ฅผ ํตํด ์ต์ ์ํ๋ฅผ ์ ์งํ๊ฒ ๋ฉ๋๋ค.
๋ง๋ฌด๋ฆฌ
๋์ด ๊ณ์ ๊ฐ๊ฒจ์ ์กฐ๊ธ ๊ธํ๊ฒ ์ ๋ค๋ณด๋ ๋ด์ฉ์ด ์ฝ๊ฐ ๋ถ์คํด๋ณด์ฌ์ ์กฐ๋ง๊ฐ ๋ณด์์ ํด์ผํ ๊ฒ ๊ฐ์ต๋๋ค! ๊ทธ๋๋ ์ฑ ์๋๋ฐ์ค์ ์๋ฏธ์ ๋ํด์ ์๊ฒ๋๊ณ , ํ์ผ ์์คํ ์ ์ข ๋ฅ์ ๋ํด์๋ ํ ๋ฒ ์ญ ์ ๋ฆฌํด๋ณผ ์ ์์ด์ ์ข์๋ ๊ฒ ๊ฐ์์! ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค!
๋ํผ๋ฐ์ค
- https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW1
- https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW4
'๐ ์์ด-์ค-์์ค > ๐ฑ iOS ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] NSCache์ ์บ์ ์ ์ฑ ๋ฏ์ด๋ณด๊ธฐ (2) | 2022.02.08 |
---|---|
[iOS] ๋ฉ์ดํธ๋ฌ๋: ๋ฐ์ชฝ์ง๋ฆฌ ์ด๋ฏธ์ง ์บ์ ๊ฐ์ ํ๊ธฐ (0) | 2022.01.18 |
[iOS] view.layer์ ์ ์ฒด๋ฅผ ์ฐพ์์ (1) | 2022.01.15 |
[iOS] required init?(coder: NSCoder)์ ์ ์ฒด๋ฅผ ์ฐพ์์ (1) | 2022.01.11 |
[iOS] ๊ณต์๋ฌธ์๋ก ๊ณต๋ถํ๋ URLSession (2) | 2022.01.11 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote