전체 글133 CodingKey에 관하여 CodingKey -애플의 정의에 따르면 "A type that can be used as a key for encoding and decoding." 인코딩 및 디코딩을 위한 키로 사용할 수 있는 타입 Codable, CodingKey 프로토콜을 채택하면 인코딩 및 디코딩 프로세스 중 사용되는 키 이름을 사용자 정의할 수 있다. Post 구조체의 id가 바로 Key를 말하며 저 Key의 이름을 내 맘대로 커스텀해서 쓸 수 있다는 말씀이다. 우리 Swift에서는 변수나 상수의 이름을 소문자 카멜케이스를 사용해서 정의한다. 하지만 우리가 변환할 API 문서 형식(예 - JSON)은 다른 형태로 Key의 이름을 가지고 있을 때가 있다. 이런 경우에 원칙대로 Key 이름을 정의하지 못하는 단점을 CodingK.. 2023. 3. 31. HTTP에 관하여 HTTP(Hyper Text Transfer Protocol) -웹 상에서 클라이언트와 서버 간 통신을 위한 프로토콜이다. -요청(request)과 응답(response)으로 구성되어 있으며, 기본적으로 80번 port(각 프로토콜의 데이터가 오고가는 통로)를 사용한다. -예를 들어 클라이언트(웹 브라우저)가 HTTP를 통해 서버에 정보를 요청하면, 서버는 클라이언트에게 맞는 정보를 보내줌. iOS 개발자가 HTTP를 알아야 하는 이유 1. 웹 서비스 및 API와의 통신 대부분의 앱들이 웹 서비스 또는 API를 사용하여 원격 서버에서 데이터를 가져오거나 서버로 데이터를 전송하는 작업들을 하고 있다. HTTP를 이해하면 개발자가 적절한 HTTP 요청을 실행해서 서버에서 리소스를 만들고, 읽고, 업데이트하고.. 2023. 3. 30. 그런 REST API로 괜찮은가 REST가 나오기까지 WEB(1991) 질문 : "인터넷에서 어떻게 정보를 공유할 것인가?" 대답 : 정보들을 하이퍼텍스트로 연결한다. 1. HTML이란 형식으로 정보들을 표현하고 2. 정보들에 대한 식별자로 URI를 만들고 3. 그 정보들을 전송하는 방식으로 HTTP라는 프로토콜을 만들었다. 이렇게 WEB이 만들어짐. HTTP/1.0 (1994-1996) Roy T.Fielding이 HTTP 프로토콜 작업에 참여하면서 고민이 생긴다. HTTP/1.0이 나오기전부터 이미 HTTP는 웹의 전송 프로토콜로 이용되고 있었고, 이미 웹은 급속도로 성장하고 있는 상황이었다. 여기서 새로운 HTTP를 적용하면 기존 웹과의 호환성에 문제가 생기지 않을까? 하는 고민이 생긴 것이다. "어떻게 하면 웹에 문제없이 HTT.. 2023. 3. 19. 메모리 안전에 관하여 메모리 안전 -Swift는 기본적으로 안전하지 않은 코드를 방지하도록 여러 장치를 제공한다. 예를 들면 변수가 사용되기 전에 초기화되고, 메모리가 해제된 후에는 접근되지 않으며, 배열 인덱스가 범위를 벗어났는지 확인 등이다. -Swift는 메모리의 위치를 수정하는 코드가 해당 메모리에 대한 독접 접근 권한을 갖도록 요구함으로써 동일한 메모리 영역에 다중 접근으로 인한 충돌이 일어나지 않도록 한다. 이렇게 메모리를 자동으로 관리하기 때문에 프로그래머는 대부분의 경우, 메모리 접근에 대해 생각할 필요가 없다. 하지만 메모리 접근 중 충돌이 발생할 수 있는 경우들을 이해하고 있다면 메모리 접근 충돌에 더 안전한 코드를 작성할 수 있다. (근데 어차피 컴파일러가 충돌이 일어날만한 코드인지 미연에 알려줌.) 메모.. 2023. 3. 17. Error Handling(에러 처리)에 관하여 Error Handling(에러 처리) -프로그램 실행 시 에러가 발생하면 그 상황에 대해 적절한 처리가 필요하다. 적절한 처리를 위해서 Swift에서는 에러의 발생(throwing), 감지(catching), 증식(propagating), 조작(manipulating)을 지원하는 일급 클래스를 제공한다. Error 표현 -Swift에서 에러는 Error 프로토콜을 준수하는 타입의 값으로 표현된다. Error 프로토콜은 요구사항이 따로 없는 빈 프로토콜이지만, 에러 표현을 위한 타입은 이 프로토콜을 채택한다. -Swift의 열거형은 Error를 그룹화 하고, 연관값을 통해 추가적인 정보를 제공하기에 적합하다. ex) 게임 안에서 자판기를 작동시키려 할 때 발생할 수 있는 에러 상황 enum Vendin.. 2023. 3. 16. Where절에 관하여 Where -일반적으로 타입이나 타입 매개변수에 조건을 추가하는데 사용된다. -where 절은 크게 두 가지 용도로 사용된다. 1. 패턴과 결합하여 조건 추가 2. 타입에 대한 제약 추가 ex) 제네릭 함수에서 where func generic(number : T) where T : Equatable{ print(number) } where은 조건을 추가해주는데 사용한다고 했다. 위 코드에서 generic 함수의 T타입은 where 절을 통해 Equatable 프로토콜도 준수해야 한다는 조건을 추가해주었다. 패턴과 결합한 where절 -값 바인딩 패턴과 와일드 카드 패턴과 결합한 where 절을 보자. let tuples : [(Int, Int)] = [(1, 2), (1, -1), (1, 0), (0,.. 2023. 3. 15. 이전 1 ··· 6 7 8 9 10 11 12 ··· 23 다음