이번 주 배운것
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 값을 갱신!
•
회사 탐색