Networking
일반적인 작업들이 기기 내부에서만 이뤄지는 것과는 달리.
네트워킹은 데이터가 외부로 전송되고, 외부에서 전송받기도 하기 때문에 여러 외부적 요인을 고려해야 한다.
특히 한 곳에 고정되어 사용되지 않는 모바일은 더더욱 중요하다.
Gideline
- 가능한 한 High-Level Api를 사용할 것
 - 필요한 데이터만 전송할 것
 - Cache를 적극적으로 활용할 것
 - 비동기 방식으로 구현할 것. 만약 동기 방식으로 구현해야 한다면 mainThread를 점유하지 않도록 할 것
 - Hostname을 사용할 것
 - HTTPS를 사용할 것. IPV4를 사용하지 않도록 하고, 특정 HW를 위해 사용해야 한다면 관련된 정보를 함께 제출할 것
 
API
URLSession
일반적인 네트워크 기능
URLSession은 기존의 NSSession을 완전히 대체한다.
- APIRequest
 - File Transfer
 - Authentication
 
WebKit
HTML의 표시
- Display Web Contents
 - Browser Features
 - Script Injection
 
GameKit
P2P 게임의 구현
- Bluetooth, Wi-Fi Lan Connection
 - Game Center Integration
 - Voice Chat
 
MultipeerConnectivity
P2P 게임의 Utillity 기능
- Wi-Fi
 - P2P Wi-Fi
 - Bluetooth Personal Area Netwok
 
Bonjour
화면공유, 음악 스트리밍
- Automatic discover of device and services on local network
 
CFNetwork
소켓통신 (DSD 소켓 비권장)
- Access network Service
 - Handle changes in network configurations
 
Network
iOS 12 이상의 소켓통신, URLSeesion의 본체
- Direct Access to TLS, TCP, JDP
 
'학습 노트 > iOS (2021)' 카테고리의 다른 글
| 204. App Transport Security (ATS) (0) | 2022.07.08 | 
|---|---|
| 203. Display Web Contents (0) | 2022.07.06 | 
| 201. Migration (0) | 2022.07.06 | 
| 200. Performance & Debugging (0) | 2022.06.30 | 
| 199. Context Synchronization (0) | 2022.06.29 |