문법27 [Swift] 네트워크 통신 (3. URLSession) URLSession URLSession은 네트워크 데이터를 가져오거나 보내는 작업을 수행한다. URLSession의 주요 특징 비동기적 네트워킹 (Asynchronous Networking) URLSession은 비동기적으로 네트워크 요청을 처리하므로, 네트워크 작업이 백그라운드에서 수행될 수 있습니다. 이는 앱의 성능을 향상시키고 응답성을 유지하는 데 도움이 됩니다. 다양한 데이터 전송 방식 지원 URLSession을 사용하여 데이터를 업로드하거나 다운로드할 수 있으며, JSON, 이미지, 파일 등 다양한 데이터 형식을 처리할 수 있습니다. 이번 숙련 챕터에서의 예제는 JSON 데이터를 다운로드하여 사용합니다. 캐시와 쿠키 관리 URLSession은 네트워크 응답을 캐싱하고 쿠키를 관리할 수 있는 기능.. 2024. 1. 4. [Swift] 네트워크 통신 (2. REST API) 네트워크 통신 REST API REST는 HTTP 프로토콜을 기반으로 하며, 클라이언트와 서버 간의 통신을 위한 규칙을 정의 HTTP 메서드 (HTTP Methods) REST API에서는 HTTP 메서드를 사용하여 자원을 다룬다. HTTP 메서드 GET: 자원을 읽기 위해 사용 (ex. 유저를 조회) POST: 새로운 자원을 생성하기 위해 사용 - 멱등하지 않음 (ex. 유저를 생성(가입)) 💡멱등성 : 여러번 요청(시도)해도 모든 결과값이 동일한 성질 PUT: 기존 자원을 업데이트하기 위해 사용 - 멱등함 (ex. 유저를 수정) DELETE: 자원을 삭제하기 위해 사용 (ex. 유저를 삭제(탈퇴)) 자원 (Resources) REST API에서는 모든 데이터가 자원으로 표현된다. 이러한 자원은 고유한.. 2024. 1. 4. [Swift] 네트워크 통신 (1. URL 구성요소) 네트워크 통신 URL 구성요소 프로토콜 (Protocol) URL은 일반적으로 http:// 또는 https://와 같은 프로토콜로 시작 이는 클라이언트와 서버 간의 통신 방법을 지정한다. http://는 보안 없는 통신을, https://는 SSL/TLS 암호화를 사용하여 보안된 통신을 나타낸다. 도메인 (Domain) 도메인은 API 서버가 호스팅되는 서버의 주소를 나타낸다. 예를 들어, music.naver.com은 API 서버가 위치한 서버의 도메인 주소이다. 포트 (Port, 옵션) 포트 번호는 서버에서 API 요청을 수신하는데 사용되는 포트를 나타낸다. 대부분의 경우 HTTP의 기본 포트는 80이고, HTTPS의 기본 포트는 443 (일반적으로 생략될 수 있다.) 경로 (Path) 경로는 서버.. 2024. 1. 4. [Swift] ARC(Automatic Reference Counting)란? ARC(Automatic Reference Counting) 란? Swift는 ARC를 사용하여 Heap 영역의 객체 메모리를 자동으로 관리한다. ARC는 Heap 영역의 객체에 대한 Strong Reference(강한 참조) count를 추적하고, 객체가 더 이상 필요하지 않을 때 (참조 count가 없을 때) 해당 객체에 대한 메모리를 자동으로 해제하는 방식으로 메모리를 관리한다. Strong Reference (강한 참조) Swift에서 변수나 상수는 Strong Reference(강한 참조)를 한다. 객체에 대한 Strong Reference count가 증가되어 있다면, 해당 객체는 메모리에 유지된다. class Person { // Person이라는 참조 타입의 클래스 var name: Str.. 2024. 1. 4. [Swift] RxSwift RxSwift 🖍️ Swift 언어로 작성된 함수형 반응형 프로그래밍을 위한 라이브러리로, 옵저버블 시퀀스와 이벤트 기반 프로그래밍을 간편하게 처리할 수 있도록 지원한다. RxSwift 이란? ReactiveX(Reactive Extensions) 패턴의 Swift 버전으로, Swift 언어로 작성된 반응형 프로그래밍을 위한 라이브러리 RxSwift는 데이터 스트림과 이를 다루는 연산자들을 통해 비동기 및 이벤트 기반 프로그래밍을 지원한다. Observable: 데이터 스트림을 나타내는 타입으로, 데이터의 변화나 이벤트를 방출(emit)한다. Observable은 이벤트 시퀀스를 발생시키는데 사용된다. 이 이벤트는 next, error, completed와 같은 종류가 있다. Observer: Obser.. 2023. 12. 15. [Swift] Combine Combine 🖍️ Swift에서 제공하는 함수형 반응형 프로그래밍을 위한 프레임워크로, 비동기적인 데이터 스트림을 다루고 조작하는데 사용된다. 반응형 프로그래밍이란? 반응형 프로그래밍(Reactive Programming)은 데이터 스트림 또는 데이터의 변화에 따라 코드가 자동으로 반응하는 프로그래밍 패러다임이다. 이 패러다임에서는 데이터의 변경 사항을 감지하고 이에 따라 연속적으로 반응하는 방식으로 프로그램을 작성한다. 반응형 프로그래밍은 다음과 같은 핵심 개념을 포함하고 있다. 1. 데이터 스트림(Data Stream): 이벤트 스트림, 값의 흐름 등과 같이 시간에 따라 연속적으로 발생하는 데이터의 흐름을 나타낸다. 이러한 데이터 스트림은 사용자 입력, 센서 데이터, 외부 API의 응답 등 다양한 .. 2023. 12. 15. 이전 1 2 3 4 5 다음