IOS application/Networking
0. Networking
개발자킹콩
2021. 4. 10. 16:28
네트워킹
넷플릭스 애플뮤직 페이스북
언제 네트워킹이 필요할까??
컨텐츠의 경우에는 암호화와 워터마킹이 된 영상이 내려온다.
그래서 영상유출시 누가 했는지 다 알 수 있다.
이런 앱들이 Networking이 안된다면?
이 앱 모두 정상작동을 하지 못한다.
데이터의 전달이 되지 않으면 안되니깐!!
Networking + IOS
우리는 IOS에서 Networking 작업을 어떻게 할 수 있을까? —> URLSession
IOS에서는 URLSession class를 통해서 네트워크 작업을 할 수 있다.
이론
네트워킹이라는 작업은 상당히 느린 작업이다.
네트워크보다 빠른 작업은 메모리 접근, 디스크 파일 읽기 등. 이것보다 네트워킹은 상당히 느린 작업이다.
앱에서는 앱의 반응성이 상당히 중요하다. 반응이 느리면 앱 사용자의 불만은 증가한다.
사용자를 빡치게 만드는 현상 뒤에는 어떤 원인이 있었을까? —> 동시성 Concurrency
동시성을 제공해 주지 않아서다.
—> 컴퓨터는 네트워킹이 되는 동안에도 사용자 인터렉션이 되어서 즉각적인 반응을 주어야하는데 그렇지 못한 경우가 발생한 것이다.
어떻게 이 동시성을 만들어 줄 것인가?
IOS에서는 이러한 동시성을 만들어 주기 위해서 제공해 주는 API들이 있는데 이는 다음 두가지다.
- GCD
- Operations
우리는 GCD를 이용해서 어떻게 동시성이 필요한 작업들을 안전하게 수행할지에 대해서 알아볼 것이다.
앞으로 배울 것
- Concurrency
- GCD: Concurrency를 구현하기 위한 것
- HTTP: HTTP를 통해 네트워킹에 필요한 기초지식을 배울 예정이다.
- URLSession: 실제 IOS에서 네트워킹을 하기 위한 쿨랴수