네트워크 이해하기

Woozoo·2022년 12월 28일
0

깃헙스위프트기초

목록 보기
19/38

Concurrency

  • 네트워크 이해하기 전에, concurrency(동시성)를 알아보자
  • Concurrency: 여러 개의 작업이 동시에 일어나게 보이게 하는 것
    • 이것은 다른의미로는 어떤 작업들이 순서에 상관없이 동시에 수행될 수 있음을 얘기함

Thread

  • 각각의 작업들은 Thread에서 실행됨
    • Main-Thread : 화면 표시 및 사용자 인터랙션을 받는 작업 수행
      • 데이터를 화면에 보여주기
      • 버튼 클릭 이벤트 감지하기
    • Bacground : Main-Thread 외에 작업들
      • 네트워크에서 데이터를 다운받을 때나
      • 디비에서 데이터를 읽어 온다던가
    • Custom : 지정된 스레드를 통해서 작업할 때 사용
      • 카메라를 통해서 들어온 영데이터 가공 시
      • 오디오 데이터 변조시

Async vs Sync Task

  • Async(비동기) vs Sync(동기) 작업의 차이
    • 동기: 요청과 리턴이 같음
    • 비동기: 요청과 리턴이 동시가 아님

Sync

Async

실제 사용에서

특히, 네트워크 사용시

HTTP

  • 서버와 대화하는 방식 (통신 규약)
  • 데이터 요청
  • 데이터 응답

데이터 요청

  • URL 이란?

  • URL: 서버에 데이터를 요청하기 위해 입력하는 영문 주소
  • 요청 메소드
    • GET: 존재하는 자원에 대한 요청
    • POST: 새로운 자원을 생성
    • PUT: 존재하는 자원에 대한 변경
    • DELETE: 존재하는 자원에 대한 삭제

데이터 응답

  • status code
    • 2xx: 성공
    • 3xx: 리다이렉션 메시지
    • 4xx: 클라이언트 에러
    • 5xx: 서버 에러
  • body(요청한 데이터들)
    • JSON
    • Image

HTTP 요약

  • 요청시, URL + Request Method가 필요
  • 응답시, Status Code + Response Body (JSON)으로 처리
profile
우주형

0개의 댓글