라이징캠프 iOS 11기 6주차 개발일지

Ryu_jin·2022년 11월 25일
0
post-thumbnail

6주차 개발일지

Rest API, Restful API -> URL

  • REST : 소프트 아키텍쳐의 한 양식.
    HTTP 프로토콜을 활용하였기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍쳐 스타일.

  • Client에서 바로 객체로 치환 가능한 형태의 데이터 통신이 가능하여, Server와 Client의 역할을 분리할 수 있게 되었다.

  • 간단하게 말하자면 URL로 정보의 자원을 표현하는 아키텍쳐 스타일


@Restful -> Rest한 API 느낌~ !직관성!

  • 구분자 '/' , '-' -> ex) GET/block-user/3
    • HTTP Method / 명사 / 명사
  • Status Code -> 서버와의 통신 상태 코드
    • 200 성공!
    • 400 -> Client 부적절한 요청
    • 500 -> 서버 문제 오류
    • 301 -> 기존 URL 변경 -
      ex) www.naver.com → www.naver.co.kr

👍 단계별 테스트

  • 1단계 Postman → Xcode → print 체크 → swifty JSON → 2단계 JSON 형태 출력해보기
  • Code.isSuccess, data(JSON), Message 확인

JSON(JavaScript Object Notation)

  • 데이터를 저장하거나 전송할 때 사용되는 경량의 DATA 교환 형식
    단순히 데이터를 표시하는 표현 방법이다. 텍스트 형식이며, javascript 객체 형식을 기반으로 만들어졌다.

  • Swift는 JSONDecoder, JSONEncoder를 통해 JSON 데이터를 핸들링 할 수 있다.

  • name-value 쌍으로 이루어져 있다.


🔑 로그인 방식 3가지 [OAuth, JWT, 쿠키-세션]

쿠키-세션 : 쿠키(클라이언트 스토리지) + 세션(서버 스토리지 이름) = 반복되는 걸 줄이기 위해 + 구현이 간단.

  • But, SID 노출 시 해킹 위험 보안 취약 → 자유이용권

OAuth → 소셜 로그인 → api 제공 이유 ? 플랫폼 유저 확보 (카카오 ,네이버)

  • But, 제약 - 퍼미션 리스트 : nickname, profile image
    • 카카오에서는 email → 선택적 (필수 = 사업자등록)
  • OAuth → AccessToken + RefreshToken → 6H + 1week, 1month → 갱신 해줘야함
    • → 갱신 API → Refresh → new AccessToken
  • RefreshToken 있으면 자동 로그인 가능 → 앱 실행 시 갱신 AccessToken 호출 하여 자동로그인
  • Keychain → 암호화 저장
  • API header 에 추가
  • 장점 → 보안성 : 단점 → 리소스 복잡 구현 난이도 오름
  • OAuth, refresh → 자동로그인
  • → 자동로그인 → UserDefault = 내부 DB
  • Appdelgate, View , login .splash ex)
  • UserDefault.refreshToken != nil? -> home -> 갱신API 요청 후 → 자동로그인
    else 자동 로그인
  • 약식이고 원래는 UserDefault가 Keychain 임

JWT (Json Web Token) -> 계속 ~~ 검사

  • header(토큰 type, 해쉬 암호화 알고리즘), payload(body 내용), signature(secret key)
  • 장점 : 서버에서 별도의 저장 장소 필요 x, 서버에서 처리 필요 x, 계속 검사하므로 보안에 Good
  • 해야할일 header → value(token) 헤더 넣는거

+ 페이징 → 100,000 , option , pageNo:Int

page 1 : default → 20개

ex) 구글 네이버 내렸을때 페이지

ios 에서는 → Youtube 처럼 → 일정 스크롤 시 무한 스크롤 : 끝에 닿을때 쯤 또 스크롤

→ 테이블 뷰 , 컬렉션 뷰 → 현재 스크롤 바 위치 알 수 있음 이용

ex) TableView.frame.heigt 와 비교해서 아래쪽이면 더 불러오기 DequeReusable +

profile
Empire

0개의 댓글