[iOS] Network & API

growing·2023년 1월 17일

iOS

목록 보기
12/15
post-thumbnail

0. 복습을 위한 질문

Q1. 손님 - 홀알바 - 주방 - 스마트 시스템 - 냉장고 (비유) 에 대해서 실제 도구와 1:1 매칭해보기 (아키텍처이해)

  • 손님 : 클라이언트
  • 홀알바 : 서버
  • 주방 : BL
  • 스마트 냉장고 : DBMS
    - ex) Mysql, mongoDB, Oracle
  • 냉장고 내부 재료 : DB
  • 메뉴판 : API 명세서
    -url, parameter, response
    - response : 파싱 (Json->swift)
    - 파싱 안되는 경우 원인 : 옵셔널 처리 or 오타 ,...
    - response 명세서를 보고 모델을 만들기 (quicktype.io 하면 모델 만들어줌)

클라이언트(Android, iOS, Web)에서 API명세서를 보고 서버에 요청을 하면 서버에서 DBMS를 통해서 DB를 가져다가 다시 서버-> 클라이언트에게 전달

  • 식당(클라이언트)에서 카페(서버)까지 필요한 것**
    - 1) 위치 = 도메인(ip같은)
    - 2) 메뉴판 = API 명세서
    - 3) 주문 방법 = 프로토콜 (http, https, ftp, ssp, ttc, ...)

[크게 보면 url, method->api, parameter]



_- 도메인 : search.naver.com
- 프로토콜 : https

Q2. HTTP Method의 종류는 어떤 것들이 있고 어떤 기능을 하는가?

  • GET : 조회
    - ex) uid(user id):5 or 당근마켓에서 홈 데이터 가져오기 -> 해당 지역 데이터 가져옴

  • POST : 생성 (주로 데이터 보낼 때)
    - ex) 게시글 작성 ( 인스타 스토리 -> 사진, 글 등 데이터를 서버에 보냄)

    • ex) 회원가입 ( 회원가입시 서버에 이름, 이메일 등을 보냄)
  • DELETE : 삭제

  • PUT : 수정 (얘도 일부 수정 가능하긴 함)
    - ex) 게시글 변경, 유저 상태정보 변경(block, ...)

  • PATCH : 일부 수정
    - ex) 회원 정보 중 일부만 수정 (닉네임 변경, ...)

Q3. HTTP 통신을 위해 iOS에서 어떤 순서로 구현해야하는가? (데이터 변경 방법)

1) 쿼리 스트링 -> url에서 노출됨
- ex) 네이버에서 ios치면 &q=ios (쿼리를 통해서 뭔가 함)
- url과 합쳐서 전체를 보내면 됨
URL(String) &q=____

2)
ex) get/user/5 : 5번 user를 조회

  • 이것도 url과 합침

3) body
- postman(쉽게 api 테스트)

profile
Hello, World!

0개의 댓글