Search

16주차 멘토링

진행 일자
2024/01/03
피드백 여부
피드백 완

이번 주 배운것

1.
시리킷
2.
위젯킷
3.
vapor

멘토링

최종 프로젝트 멘토링 관련
1/10 (수) → 7시 30분에 멘토진 회의
앞으로 방향성 / 어떤 프로젝트 맡고 싶은지! (제 추측..!)
프로젝트 3 (MVP)
위치기반 API (권장? 필수?)
프로젝트 4 (고도화)
위젯
watchOS
Analytics
Crashlytics
Vapor
API 소통과정?
API → Application Programming Interface
프로그램 사이의 상호작용을 위한 인터페이스
REST API
웹 (서버) 클라 간의 데이터를 주고 받을 수 있는 규약 (인터페이스)
HTTP 형식 통신
클라 (1단계)
API 요청 (HTTP)
get, post ~~ (HTTP Method) “http://dsfasdfasdf.com/user/1
헤더, 쿼리 매개변수, 바디 데이터
엔드포인트 URL
요청이 전송됨
API 서버로~
앱이 인터넷 연결을 가지고 요청을 서버로 보내는 작업!
HTTPRequest, URLSession, Alamofire, Moya (외부라이브러리)들이 이걸 클라단에서 가능케해줌!
서버 (2단계)
API 요청을 받음!
내부적으로 분석함 (get, post~~) / 헤더, 쿼리 매개변수, 바디 데이터
케이스에 맞는 처리
내부 서버 코드 로직에서~
Response을 생성해줌!
API 요청에 대한 처리를 가지고 클라에게 전달해줄 응답값을 생성한다!
HTTP response 형식을 지킴
HTTP statusCode, Header, Response body → 이런정보들을 가지고 데이터를 만들어줌 (응답 데이터)
클라에게 역으로 응답 보내줌
클라 (3단계)
Reponse을 수신하게 됨!
HTTP statusCode, Header, Response body
statusCode 정상적인지 → 클라에서 판단하고 처리를 하는 로직을 구성하게됨!
application/JSON
리스폰스 바디를 디코딩해서 적절한 모델링을 거침
multipart-form
뷰나 로직에 반영하면 됨!
서버에서는 효율과 시간복잡도를 고려해야함! O(1)
for i in 1...10 { print(i) } print(1) print(2)
Swift
복사
Badge 정보
DB에 유저정보
User
name
email
설정 화면 진입 시
DB에 직접 접근해서 User > name을 get해옴 → 뷰에 뿌려줌
User > completedWalking get 해옴 → 뷰에 뿌려줌 (1값)
산책 완료 시 (버튼을 두거나 어떤 로직에서)
User > completedWalking값을 get해와서 (1) → 1을 더해서 2를 만들고 이 값을 → DB User > completedWalking에 저장 (update)
Firebase > read / update를 활용해서 DB 값을 갱신!
회사 탐색