App Transport Security
Apple ์ธก์์๋ ์ฑ ์์ฒด์ ๋ณด์์ฑ์ ์ํด์ ATS(App Transport Security)๋ผ๋ ์ ์ฑ ์ ํตํด ๊ธฐ๋ณธ์ ์ผ๋ก https ํต์ ์ ํ๋๋ก ์ ๋ํ๊ณ ์๋ค. ๊ทธ๋์ http ์๋ฒ์ ํต์ ์ ํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. http ์๋ฒ๋ก ํ ์คํธํ๋ ค๋ฉด Info.plist์์ ATS ๊ด๋ จ ์ค์ ์ ํด์ฃผ์ด์ผ ํ๋ค.
ATS๋ iOS 9 ๋ฒ์ ์ดํ๋ถํฐ ์ ์ฉ๋ ๊ฐ์ธ์ ๋ณด๋ณดํธ ๊ธฐ๋ฅ์ด๊ณ , Xcode 7 ๋ฒ์ ์ด์์์ ์ฑ ์์ฑ ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๊ฐ์ ธ๊ฐ๊ฒ ๋๋ ๋ณด์ ์ ์ฑ ์ด๋ค.
- http : Allow Arbitrary Loads๋ฅผ YES๋ก ๋ณ๊ฒฝ
- https : ๊ตณ์ด ์ค์ ์ ํด์ค ํ์๊ฐ ์์
๋ฐ์ดํฐ ๋ฆฌ๋ก๋ ์์
- ํ ์ด๋ธ ๋ทฐ๋ ์ปฌ๋ ์ ๋ทฐ ์ฌ์ฉ ์
- viewDidLoad ์์ ์ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ 0์ด์ด์ ํ ์ด๋ธ ๋ทฐ์ ๊ทธ๋ ค์ง๋ ๋ด์ฉ์ด ์์๋๋ฐ ์ค๊ฐ์ ๋ฐ์ดํฐ๊ฐ 3์ด ๋์๋ค๋ฉด ํด๋น ๋ด์ฉ์ ๊ฐ์ง๊ณ ๋ค์ ๊ทธ๋ ค์ค ํ์๊ฐ ์์. ์ด๋ฅผ ๊ฐฑ์ ํ๋ค ๋๋ ๋ฆฌ๋ก๋ํ๋ค๋ผ๊ณ ํํํ ์ ์๊ฒ ๊ณ ๋ํ์ ์ผ๋ก reloadData() ๋ฉ์๋๋ฅผ ๋ง์ด ์ด์ฉํ๋ค.
์ธ์ฆํค
์๋ฒ์ ์์ฒญํ๋ค๊ณ ๋ชจ๋ ์ฌ๋์ด ์์์ ์ด์ฉํ ์ ์๋ ๊ฒ์ด ์๋๋ผ ํ์ฉ๋ ์ฌ๋์๊ฒ๋ง ์คํํ๋ ๊ฒ๋ ํ์ํ๋ค. ์ธ์ฆํค๋ฅผ ์ด์ฉํ๋ฉด ํ๊ฐ๋ ์ฌ์ฉ์๋ง ์๋ฒ์ ์์์ ์ ๊ทผํ ์ ์๋๋ก ์ปจํธ๋กคํ ์ ์๋ค.
- ํ์ผ์ ์ฌ๋ฆฌ์ง ์๋ .gitignore
- API KEY ๊ด๋ จํด์ ํ์ผ๋ก ๋ชจ์๋๊ณ ๊ด๋ฆฌ
- Info.plist
- ํ๊ฒฝ ๋ณ์ ์ค์
- ...
- ํ๊ฒฝ ๋ณ์ ์ด์ฉํ๋ ๊ฒ ํ ๋ฒ ์์๋ด์ผ์ง!
URL ๊ด๋ฆฌํ๊ธฐ
- URL ์์๋ก ๊ด๋ฆฌ
- ์ค๋ณต๋ URL ์ฌ์ฉ ๊ด๋ฆฌ
์ด๋ค ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ ์ง๋ ๊ณ ๋ฏผ์ด ํ์, Enum์ผ๋ก ๊ด๋ฆฌํ๋ ๋ชจ์ต๋ ๋ง์ด ๋ณด์ด๋ ๋ฏ ํ๋ค.
REST API
- ๋คํธ์ํฌ ์์ ์กด์ฌํ๋ ์์๋ค์ ํน์ ๊ท์ฝ์ ๋ง์ถ์ด ์ ๊ทผํ ์ ์๋๋ก ํ๋ ๊ฒ
- ์น์ ์ฅ์ ์ ํ์ฉํ ์ํคํ ์ฒ
- HTTP ์์์ ๊ตฌํ ๊ฐ๋ฅ
API ์์ฒญ ํ์์ ๋ํด์๋ ์ ์ดํด๋ณผ ํ์๊ฐ ์๋ค.
HTTP Method
- GET(์กฐํ)+ query parameter
- POST(์์ฑ) + headers, parameters(body)
- ...
Endpoint
- ๊ณ ์ ํ ๊ฒฝ๋ก
- v1/user, v2/user์ ๊ฐ์ด ๋ฒ์ ๊ด๋ฆฌ๋ ๊ฐ๋ฅ
REST API 6์์น
- Uniform Interface : ์์์ ๋ํ ์๋ณ์ด ๊ฐ๋ฅํด์ผ ํจ, ๊ณ ์ ํด์ผ ํจ
- Stateless(๋ฌด์ํ์ฑ) : ํด๋ผ์ด์ธํธ์ ์ํ๊ฐ ์๋ฒ์ ์ ์ฅ๋์ง ์๊ณ ์ข ๋ฃ
- Cachable : HTTP์ ๊ฐ๋ ฅํ ํน์ง์ธ ์บ์ฑ ๊ธฐ๋ฅ ํ์ฉ ๊ฐ๋ฅ, ๋ฆฌ์์ค๋ฅผ ์ค์ผ ์ ์์
- Self-descriptiveness : ์๋๊ฐ ์ง๊ด์ ์ด์ด์ผ ํจ. ์ฝ๊ฒ ์ดํดํ ์ ์๋ ํํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ธ์ผ ํจ.
- Client-Server ๊ตฌ์กฐ
- ๊ณ์ธตํ ๊ตฌ์กฐ
HTTP 2๊ฐ์ง ์ค์ํ ํน์ง
- ๋น์ฐ๊ฒฐ์ฑ
- ๋ฌด์ํ์ฑ
REST API ๋จ์
- Overfetching : ์ฌ์ฉํด์ผ ํ๋ ์ ๋ณด๋ ๊ทนํ ์ผ๋ถ์ธ๋ฐ Response์ ๋๋ฌด ๋ง์ ๋ฐ์ดํฐ๊ฐ ๊ฐ์ด ๋์ด์ฌ ์ ์์.
- Underfetching : ํ์ํ ์ ๋ณด๋ณด๋ค ๋ก๋ฉ์ด ์ ์ผ๋ฉด ์ถ๊ฐ API ์์ฒญ์ด ํ์ํ ์ ์์
'๐ฑ SeSAC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SeSAC] 220804 TIL (0) | 2022.08.10 |
---|---|
[SeSAC] 220803 TIL (0) | 2022.08.10 |
[SeSAC] 220801 TIL (0) | 2022.08.10 |
[SeSAC] 220729 TIL (0) | 2022.08.10 |
[SeSAC] 220728 TIL (2) | 2022.08.06 |