본문 바로가기

학습 노트/iOS (2021)

202. Networking

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