네트워크 프로토콜 스택
프로토콜 스택은 데이터 통신에 사용되는 계층화된 프로토콜의 집합입니다.
- 계층 구조로 이루어져 있어 각 계층이 특정 역할을 담당합니다.
- 상위 계층에서 하위 계층으로 데이터가 전달되며, 각 계층에서 헤더 정보가 추가됩니다.(캡슐화)
- 대표적인 모델로 OSI 7계층과 TCP/IP 4계층이 있습니다.
TCP/IP 프로토콜 스택의 주요 계층
- 응용 계층: HTTP, FTP, SMTP 등
- 전송 계층: TCP, UDP
- 인터넷 계층: IP
- 네트워크 인터페이스 계층
iOS에서의 네트워크 통신 방식
URL Session
- iOS의 기본 네트워킹 API
- HTTP/HTTPS 요청을 처리하는 데 사용
- 비동기적으로 데이터를 주고받을 수 있음
Alamofire
- 서드파티 네트워킹 라이브러리
- URLSession을 기반으로 하지만 더 간편한 인터페이스 제공
Combine 프레임워크
- iOS 13부터 도입된 반응형 프로그래밍 프레임워크
- 네트워크 요청을 비동기적으로 처리하고 결과를 스트림으로 받을 수 있음
Swift Concurrency
- iOS 15부터 도입된 비동기 프로그래밍 모델
- async/await 키워드를 사용하여 비동기 네트워크 요청을 동기 코드처럼 작성 가능
iOS에서 네트워크 통신 시 주의할 점
- HTTPS를 사용하여 보안 통신 구현
- 백그라운드 전송 지원을 위한 적절한 설정
- 네트워크 상태 변화에 대응하는 코드 구현