728x90

 

2월 5일 토요일 / 13일 차

 


 

CH07

날씨 앱 만들기

 

 

 

openweather 날씨 API 사용

 

 

내용 요약
기능 상세
- 도시 이름을 입력하면 현재 날씨 정보를 가져와 화면에 표시되게 만듬
- 도시 이름을 잘못 입력하면 서버로부터 응답받은 에러 메시지가 알럿으로 표시 됨

활용 기술
- Current Weather API
- URLSession


웹 통신과 Protocol
- 인터넷 상에서의 통신을 말한다
- 많은 정보들이 주고 받기에 인터넷에는 엄격한 규약이 존재한다.(이것을 Protocol 이라고 부른다)

- HTTP(Hyper Text Transfer Protocol) : Hyper Text를 전송하기 위한 프로토콜
   ㄴ Http 통신 : 요청과 응답으로 이루어짐(Client, Web Server)
   ㄴ Http 패킷 : Header와 Body로 이루어짐(Header는 보내는 사람과 받는 사람의 주소, 패킷의 생명시간 / Body에는 전달하려는 실제 내용)
   ㄴ Http Method
        - GET : 클라이언트가 서버에 리소스를 요청할 때 사용
        - POST : 클라이언트가 서버의 리소스를 새로 만들 때 사용
        - PUT : 클라이언트가 서버의 리소스를 전체 수정할 때 사용
        - PATCH : 클라이언트가 서버의 리소스를 일부 수정할 때 사용
        - DELETE : 클라이언트가 서버의 리소스를 삭제할 때 사용
        - HEAD : 클라이언트가 서버의 정상 작동 여부를 확인할 때 사용
        - OPTIONS : 클라이언트가 서버에서 해당 URL이 어떤 메소드를 지원하는지 확인할 때 사용
        - CONNECT : 클라이언트가 프록시를 통하여 서버와 SSL 통신을 하고자 할 때 사용
        - TRACE : 클라이언트가 서버간 통신 관리 및 디버깅을 할 때 사용
   ㄴ Http Status
        - 100번 대 Informational : 요청 정보를 처리 중
        - 200번 대 Success : 요청을 정상적으로 처리함
        - 300번 대 Redirection : 요청을 완료하기 위해 추가 동작 필요
        - 400번 대 Client Error : 서버가 요청을 이해하지 못함
        - 500번 대 Server Error : 서버가 요청 처리 실패함

- URLSession : 특정한 url을 이용하여 데이터를 다운로드하고 업로드하기 위한 API
   ㄴ 공유 세션(Shared Session) : 직접 만든 설정만큼 맞춤 설정을 할 수는 없지만, 쉽게 만들어 사용가능
       URLSession.shared()

   ㄴ 기본 세션(Default Session) : 공유 세션과 유사하게 작동하지만 직접 원하는 설정을 할 수 있고,
캐쉬와 쿠키, 인증 등을 디스크에 저장, 순차적으로 데이터를 처리하기 위해 delegate를 지정할 수 있음

       URLSession(Configuration: .default)

   ㄴ 임시 세션(Ephemeral Session) : 공유 세션과 비슷하지만 캐쉬, 쿠키, 사용자 인증 정보를 디스크에 저장하지 않음,
메모리에 올려서 세션에서 연결하고 세션 만료시 데이터가 사라짐

       URLSession(configuration: .ephemeral)

   ㄴ 쿠키 세션(Background Session) : 앱이 실행하지 않는 동안 백그라운드에서 컨텐츠 업로드 및 다운로드를 수행할 수 있음
        URLSession(configuration: .background)


- URLSessionConfiguration : URLSession을 생성해줌

- URLSessionTask : URLSession을 통해 생성된 Task, Task를 통해 실제 서버와 통신할 수 있음
   ㄴ URLSessionDataTask : 데이터 객체를 사용하여 데이터를 요청하고 응답받음, 주로 짧고 비번하게 요청하는 경우에 사용
   ㄴ URLSessionUploadTask : 데이터 객체 또는 파일 형태의 데이터를 업로드하는 작업을 수행,
앱이 실행되지 않았을 때 백그라운드 업로드를 지원

   ㄴ URLSessionDownloadTask : 데이터를 다운로드 받아서 파일 형태로 저장하는 작업을 수행,
앱이 실행중이지 않을 때는 백그라운드 다운로드를 지원

   ㄴ URLSessionStreamTask : TCP/IP 연결을 생성할 때 사용
   ㄴ URLSessionWebSocketTask : WebSocket 프로토콜 표준을 통해 통신함

URLSession Life Cycle
 1. Session Configuration을 결정하고, Session을 생성
 2. 통신할 URL과 Request 객체를 설정
 3. 사용할 Task를 결정하고 그에 맞는 Completion Handler나 Delegate 메소드들을 작성
 4. 해당 Task를 실행
 5. Task 완료 후 Completion Handler 클로저가 호출이 됨

 

 


 

 

날씨 정보를 가져오는 모습

 

 

 

복습할 내용

 

- URLSession에 대한 이해, 사용 방법

- API에 대한 이해, 사용 방법

- Codable 프로토콜을 통해 JSON파일 Encodable과 Decodable

 

 

 

 

오늘의 공부 후기

 

실습을 진행하면서 처음으로 API를 이용한 앱을 만들어 봤습니다.

과거 프로젝트를 진행할 때 스마트 미러 모듈에 버스 도착시간 API를 사용한 경험이 있는데

iOS도 API를 이용해 앱을 구현하는 방식이 유사하고 익숙해서 더 흥미롭게 강의를 들을 수 있었습니다.

iOS는 Encodable과 Decodable이 합쳐진 Codable 프로토콜을 채택하여 JSON파일을 인코드, 디코드 한다는 점을

새롭게 알게 되었고 앞으로 프로젝트나 개발에 있어서 기초가 되는 유익한 강좌였습니다.

 

 

 

 

 

 

 

 

 

 

https://bit.ly/37BpXi

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

 

 

 

 

728x90

+ Recent posts