Q1. 손님 - 홀알바 - 주방 - 스마트 시스템 - 냉장고 (비유) 에 대해서 실제 도구와 1:1 매칭해보기 (아키텍처이해)
우선, 서버란 → 통신 관련 서비스
손님 → Client
홀 알바 → Server
스마트 시스템 → DBMS
재료 → DB
주방 → 백엔드
Q2. HTTP Method의 종류는 어떤 것들이 있고 어떤 기능을 하는가?
5가지 기능
1) GET → 조회
2) POST → 생성, 데이터를 주로 보낼 때, 게시글을 작성할 때
가장 큰 예시로는 인스타스토리 작성, data→작성/ 회원가입, 휴대폰 번호, 이메일,….구조체 형태로 만들어서 보냄
3) DELETE → 삭제
4) PUT → 수정
5) PATCH → 일부 수정(ex) 사용자 닉네임 변경)
Q3. HTTP 통신을 위해 iOS에서 어떤 순서로 구현해야하는가?
API(Application Programming Interface)
데이터 보내는 방법
1) 쿼리 스트링
2) get/user/5 → REST API 형식
여기서 API란 응용프로그램 간에 데이터를 주고 받는 방법
통신 라이브러리에는 Alamofire, Moya가 있음
원래는 URL Session을 사용했는데 이게 코드가 너무 방대해서
개선 → Alamofire 이번주 과제에서 다방면으로 꼭 써봐야할 것
A) Header에 데이터를 넣어주는 방법
B) Body 방법 → JSON
[추가로 참고한 자료]
원래 내 수업에서 필기한 것과 그 외의 공부를 할 때 아래의 사이트를 참고했다
[RC] 5주차 개념 - Network Intro & API
이번주 과제
1) API 세개이상(카카오톡 로그인, 인기영화순위, 영화 관련 API 하나 더) , 데이터 파씽(오타,옵셔널 주의)
2) 라이브러리 사용(TABMAN,COCOAPOD)
카카오에서 알려주는 카카오 로그인 페이지 만들기
카카오 로그인 삽질 많이 해보고 깨달은 점
공식문서 참고는 필수 -> 오류 -> 블로그 참고
API로 너무 많은 시간을 낭비할 수 있으니...
카카오 로그인 공식문서
Kakao Developers
[카카오 로그인 참고한 자료]
iOS 카카오 로그인 구현하기
[iOS] 카카오톡 소셜 로그인 연동
[iOS] 카카오 간편로그인
Swift 카카오 연동 로그인
Kakao Developers
카카오로그인 구현
[로그인 구현하면서 맞닥뜨렸던 오류들 해결책]
Swift 카카오 연동 로그인
Expected declaration
swift Thread 1 signal Sigabrt 에러 해결 방법
[iOS / Error] Unable to load contents of file list... 에러 해결
이번 UI에서 가장 중요했더 부분 -> Tabman라이브러리 사용해보기
참고한 자료
How to implement Android-Like Tab Layouts in iOS using swift 3
Using Segues
영화 주간 순위, 검색 API 받아온 사이트
영화진흥위원회 오픈API
데이터 파싱 관련
Postman - Sign In
[Swift] 06. JSON Parsing
데이터 파싱시 문제 생길 때 이용한 사이트
QuickType!!!!!!!
Instantly parse JSON in any language | quicktype
네이버 지도 API 구현하기
네이버 지도 API 참고한 사이트
[Xcode] 네이버 지도 API 사용하기
[swift | ios] 네이버 지도 API로 현위치 트래킹, 마커 표시 해보기
Swift 현재 위치 받아오기 (위도, 경도)
지도에 마커찍기
네이버 지도 오류
Main thread warning with CLLocationManager.locationServicesEnabled()
gitlfs 제대로 설치 안 하면 네이버 맵 오류 나니까 잘 해결해야함
+충돌나서 xcode 깃허브에 커밋 안되는데 이 오류도 해결해야함
참고한 자료
[iOS/Swift] TabMan 라이브러리 사용하기 - (Custom tabbar / 상단 탭바 / 커스텀 탭바)
[iOS-opensource] tabman (상단탭)
[기타 오류]
Xcode Buildtime Error: 'Unable to load contents of file list: '.../Info.plist' (in target 'xxxx')
'Method' is ambiguous for type lookup in this context, Error in Alamofire
[swift] unrecognized selector sent to instance 오류
iOS 시작 가이드
Main thread warning with CLLocationManager.locationServicesEnabled()
이외에도 역대급으로 오류가 많았다
1) 카카오 로그인 API 결국 로그인 안되었던 이유 -> 뷰컨 지우고 다시 생성하니까 또 됨 왜 그런지 모르겠음 ㄹㅈㄷ 삽질이었음
2) 가져온 API 데이터 파싱할려고 다 분해해봤는데 enum, struct 다 적어주고 코드 오류도 없는데 뷰에 안 뜸 -> 네이버 지도 marker 안 뜸...ㅠ
구현한 점
상단 탭바 → tabman 라이브러리 사용
영화 API → 영화진흥위원회
카카오로그인 API
네이버 지도 API
구현 못한 점
네이버 지도 API MAKER가 안됨(코드 구현 다 해놨는데) 영화관 API 받아와서 할려고 했는데 데이터 파씽인지 뭔지 코드는 오류가 없는데 안됨
-> 여기 위치 API 이용했는데 마커는 꼭 구현하고 싶음 코드도 다 구현했는데...뷰에 안 뜨는게 너무 아쉬웠음....
https://data.gg.go.kr/portal/intro/develop/searchBulletinPage.do
깃에 프로젝트 안 올라감(내 잔디들...ㅠ) → giflfs 충돌 해결필요
구현한 시뮬레이터
이번주 과제 시뮬레이터
이번주 내 과제 보완할 점
1) 영화 검색 없을 때 → 검색 결과 없다는 뷰 띄어주기,초성검색 많이 하니까
2) 네이버 지도 마커 찍어보기(저도 너무 하고 싶어요ㅠㅠ)
3) 카카오톡 자동 로그인 해두기
4) 영화 상세정보 YYMMDD 이거 , 찍어서 구현하기
멘토님의 추천
1) MVVM 공부하기
2) View는 무조건 View만 띄우는 기능이 있어야 한다
3) Viewmodel 하나만 있어도 코드가 예뻐진다…
4) UI 꿀로 하기 좋은 연습
-가운데 데이터가 없는 경우가 있을 수 있으니 뺐을 때
두 개가 붙을 수 있도록
라벨을 동이 있는 위치로 올리기
-눌렀을 때 뷰가 확장되거나 ,없어진 자리를 매꾸거나
-stackview로 넣어서 데이터가 없는 경우 없애고 빈공간 매꾸기
5) 상세보기…
-상세보기 autoscroll,
-검색쪽까지 검색 → 네이버에서 제공하는 거랑
-좌표체계
위도,경도 Map 다룰 때
구성을 해놓고 들어가는 편
연습해두기
멘토님이 알려주셨던 꿀팁!
1) 일단 멘토님이 보충하라고 하셨던 거 보충해두기
(,찍기//상단 탭바//하단 탭바 커스텀//레이아웃//뷰//등등//)
2) 백엔드가 API 관련해서 만드는 동안 iOS는 최대한 뷰를 많이 만들어놔얗나다 -> 최대한 뷰 많이 만들어두기
3) 1일 1커밋...필수..!
여태까지 달렸으니 끝까지 포기하지 말고 꼭 수료하고 싶다...!
수료해서 제발로....CMC도 지원하고 싶고 더 다양한 경험해보고 싶다
끝까지 화이팅!!!!!!!!