분류 전체보기 (207) 썸네일형 리스트형 First-Class Citizen(일급 객체) Swift는 함수형 패러다임을 따르고 있다. Swift는 다중 패러다임 프로그래밍 언어이며, 아래와 같은 프로그래밍 패러다임을 차용하고 있습니다. - 명령형 프로그래밍 패러다임 - 객체지향 프러그래밍 패러다임 - 함수형 프로그래밍 패러다임 - 프로토콜 프로그래밍 패러다임 즉, Swift라는 언어는 일급 객체(First-Class Citizen)에 부합하는 언어이다. 공식문서를 살펴보면 Swift에서 함수는 일급 객체이기 때문에 함수를 변수, 상수, 매개변수에 넣을 수 있다고 한다. 그렇다면 여기서 일급 객체란 무엇일까? 일급 객체 일급 객체란 아래 세 가지 조건을 만족하는 객체를 의미한다. 특별한 용도, 혜택이 있다는 것이 아니라 사용할 때 다른 요소들과 아무런 차별 없이 사용할 수 있는 객체이다. 모든.. Kakao 다음(Daum) 검색 API 구현 (feat. Expandable Cell) Kakao Developers에서 활용할 수 있는 API 중 검색 API를 구현해보자. 관련 가이드는 아래 링크를 통해서 보다 자세하게 확인할 수 있다. https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-blog Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 검색 중에서 블로그와 카페 검색 값을 하는 프로젝트를 만들어보자. 먼저 두 가지 API를 확인하면, - 블로그 : GET /v2/search/blog - 카페 : GET /v2/search/cafe 로 URL에.. Cell안의 UIButton 이벤트 처리 (+WebKit View) Cell안의 버튼에 대한 이벤트 처리를 어떻게 할 수 있을까? 여러 가지 방법이 있을 수 있지만, 이번 정리에서는 3가지 방법을 살펴보자. Tag Delegate Closure UIButton의 tag를 이용하는 방법 (준비중) DelegatePattern를 이용하는 방법 개인적으로 그동안 많이 사용한 방식이다. 델리게이트 패턴은 말 그대로 위임하는 방식을 말한다. 이러한 델리게이트 패턴을 사용하기 위해서는 프로토콜을 만들고 채택해야 한다. 위임자가 프로토콜을 만들고, 피위임자가 해당 프로토콜을 채택한 후 규약을 따르는 방식을 코드를 작성하면 된다. 피위임자는 해당 규약 내에서 기능을 수행할 수 있는 이 때, 기능을 알맞게 수정해서 사용하면 된다. 동작 과정을 요약하면 다음과 같다. 1) cell에 Pr.. TMDB - GET / Pagenation TMDB API를 활용한 트렌드 미디어 GET API 연결 및 Pagenation을 구현해보자. 페이지네이션 구현 방법에 앞서서 먼저 페이지네이션이 무엇인지 짧게 말하자면, 페이지네이션이란? 대량의 데이터와 리소스를 분할해서 갖고 오는 방법으로 주로 서버의 데이터와 리소스를 다룰 때 사용하는 방법이다. 구현 방법은 크게 세 가지로, 아래와 같다. UITableViewDelegate의 프로토콜 중 하나인, willDisplayCell 메서드를 사용하는 방법 UIScrollViewDelegate의 프로토콜 중 하나인 scrollDidScroll을 통해 스크롤 뷰의 Offset을 활용하는 방법 UITableViewDataSource 프로토콜 중 하나인 Prefetching Protocol을 사용하는 방법 이 .. APIManager 그동안 서버 통신을 ViewController에서 작업을 했다면, 이를 보다 효율적으로 사용해보도록 하자. 싱글톤 패턴을 적용해서 서버 통신 시, APIManager를 만들어 ViewController와 서버통신을 나누어 작업을 진행해 볼 수 있다. 맥주 정보를 랜덤으로 받아오는 서버통신을 다음과 같이 구현했다고 할 때, final class BeerViewController: UIViewController { // MARK: - UI Property @IBOutlet weak var collectionView: UICollectionView! // MARK: - Property private var beerList: [BeerResponse] = [] // MARK: - Life Cycle overri.. Pagenation 페이지네이션 (a.k.a 무한스크롤)이 무엇이고 어떻게 구현할 수 있는지 알아보자. Pagenation 대량의 데이터와 리소스를 분할해서 가져오는 방식으로 주로 서버의 데이터/리소스를 다룰 때 사용한다. (ex, 쇼핑몰의 경우 서버가 갖고 있는 제품들은 엄청 많지만 사용자가 해당 페이지에서 제품들의 정보를 다 볼거라는 보장이 없기 때문에 페이지네이션을 통해 데이터를 관리한다.) 주로 사용자의 스크롤 시점을 기반으로 페이지네이션 기능을 구현한다. Pagenation 방법 Offset Based Pagenation 오프셋페이지네이션의 종류는 크게 두 가지이다. 1. PageNumber 2. LimitOffset 몇 번째 페이지에서 몇 개의 데이터를 보여줄 지에 대한 정보를 쿼리 스트링으로 전달한다. let .. Serialization Serialization (직렬화) - Encoding 시스템의 데이터 구조에 의해서 데이터는 값 타입과 참조 타입으로 구분되어 메모리에 저장되어 있다. Value Type Reference Type 외부에서도 사용 가능 특정 시스템에서만 사용할 수 있는 형태로 저장 (= 메모리 주소) Reference Type 데이터를 외부 시스템 즉, 서버에서도 사용할 수 있도록 Value Type 데이터로 변환하는 과정을 직렬화라고 한다. - 시스템에서 사용하는 객체를 디스크에 저장하거나 네트워크를 통해 전송할 수 있는 형식으로 변환하는 작업을 의미 - 메모리 내 객체를 문자열로 변환하는 과정을 의미 Deserialization (역직렬화) - Decoding 직렬화의 반대 개념으로 직렬화된 데이터를 다시 시스템에.. REST API Rest API (= Represenatational State Transfer) 문서, 이미지, 데이터 등의 컨텐츠와 기능을 네트워크를 통해서 활용할 수 있도록 제공되는 인터페이스이자 아키텍처 스타일 2000년도에 로디 필딩의 박사학위 논문에서 최초로 소개된 개념으로 HTTP처럼 규약이 있는 프로토콜은 아니다. 리소스를 중심으로 End Point(URL)를 생성하고, HTTP 메소드(GET, POST, PUT, DELETE)를 통해 동작을 수행한다. 자원 : 서버에 있는 문서, 이미지, 데이터 End Point : 자원을 탐색하기 위한 URL로 모든 자원은 고유한 URL을 갖고 있다. 데이터의 포맷으로 JSON, XML을 사용한다. Rest의 6원칙 (이 6원칙을 만족해야 Rest하다 라고 표현할 수 .. 이전 1 ··· 17 18 19 20 21 22 23 ··· 26 다음