[250416] 네트워크 통신

ON&OFF·2025년 4월 16일

iOS TIL

목록 보기
14/18

📖 오늘 배운 것

JSON (JavaScript Object Notation)

  • 서버와 클라이언트가 가장 많이 사용하는 데이터 형식
  • JSON 은 key-value 형태를 가진다.
[
    {
        "name": "Adam",
        "phoneNumber": "010-1111-2222"
    },
    {
        "name": "Eve",
        "phoneNumber": "010-3333-4444"
    },
    {
        "name": "Abel",
        "phoneNumber": "010-5555-6666"
    }
]

API (Application Programming Interface)

  • 직역 그대로 Application Programming 에 필요한 Interface이다.
  • 즉, 어떤 프로그램을 개발할 때 원하는 기능들을 제공해주는 창구, 설명서, 도구 다.

URLSession

  • URLSession 은 Swift 에서 서버와 통신하기 위해 제공되는 클래스
  • URLSession 을 다루기 위해서는 크게 아래 2가지 개념을 알아야 한다.
  1. URLSessionConfiguration
    • Configuration 이란 환경 설정을 의미.
    • URLSession 으로 네트워크 통신을 하되, 여러가지 커스텀한 설정들을 할 때 URLSessionConfiguration 을 이용.
    • 예를들어 네트워크 통신의 타임아웃 시간 설정, 네트워크 통신 캐시 정책 설정 등을 세팅할 수 있음.
    • URLSession 객체를 생성하려면 URLSessionConfiguration 을 넣어줘야 함.
    • 다음과 같이 default configuration 을 활용해 URLSession 생성 가능.
      let defaultUrlSession = URLSession(configuration .default)
  2. URLSessionTask
    • URLSessionTask 으로 네트워크 통신을 할 때 어떤 태스크를 수행할 것 인지 결정 가능.
    • URLSessionDataTask: GET 요청. 서버로부터 데이터를 가져오거나 서버에 데이터를 전송할 때 사용.
    • URLSessionDownloadTask 파일 다운로드를 처리할 때 사용. 백그라운드 다운로드 지원.
    • URLSessionUploadTask: 파일 업로드를 처리할 때 사용. 백그라운드 업로드 지원.

❓ 배우며 겪은 문제점/의문점

URL Session에 대한 개념이 한번에 와닿지 않았다. 일단 개념은 어느정도 머릿속에 들어오긴 했는데 새로운 개념이다 보니 역시나 실제로 사용하는 부분에서 못 보던 코드들이 나왔고 왜 이렇게 사용하는지 모른 채 따라치기에만 급급했다..

‼️ 해결 방법

코드를 하나하나 차분하게 뜯어보면서 이해하도록 해보자..!

💡 느낀 점

서버와 데이터를 주고 받는 기능인 만큼 앱 개발에 핵심적인 내용인 것 같다. 열심히 공부해서 꼭 내것으로 만들어 보자~~~

🎁 다음에 진행할 것

네트워크 통신을 이용한 실습을 진행해 볼 예정이다.

profile
안 되면 될 때까지

0개의 댓글