전체 글131 그런 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. 패턴에 관하여 -패턴이란 "단독 또는 복합 값의 구조" 라고 한다. -Swift에는 문법에 응용할 수 있는 여러 가지 패턴이 존재한다. 이 패턴들을 잘 사용하면 코드의 양을 줄이거나, 문법의 활용이 수월해질 수 있다. -대부분의 패턴은 switch, if, guard, for 등의 키워드와 아주 친하며 두 개 이상의 키워드가 합을 이뤄 동작한다. (특히 switch 구문에서 유용하게 사용됨.) -Swift의 패턴은 크게 두 가지로 나뉜다. 1. 값을 해제하거나 무시하는 패턴(어떤 종류의 값과도 일치하는 패턴) -단순 상수, 변수 및 옵셔널 바인딩에서 값을 소멸시키는데 사용된다. -이러한 패턴에 대한 Type Anotation을 지정하여 특정 유형의 값과만 일치하도록 제한을 걸 수 있다. -패턴의 종류에는 와일드 카드 .. 2023. 3. 15. Nested Types(중첩 타입)에 관하여 Nested Types(중첩 타입) -공식문서에 따르면 열거형은 종종 특정 클래스나 구조체의 기능을 지원하기 위해 만들어지는 경우가 있다. 이와 비슷하게 복잡한 타입의 컨텍스트 내에서 사용하기 위해 유틸리티 클래스나 구조체를 정의하는게 편리할 수 있다. 이를 위해 Swift에서 제공해주는 것이 Nested Type이다. (지원하는 타입의 정의 내에서 클래스, 구조체 및 열거형을 중첩할 수 있다.) -야곰님의 Swift 문법책에 따르면 열거형은 특정 클래스나 구조체의 기능을 명확히 사용하기에 용이하다. 하지만 굳이 클래스나 구조체 외부에서 열거형을 사용할 필요가 없을 경우도 있다. 즉, 클래스나 구조체 내부에서 자신의 역할을 충실히 할 수 있도록 역할을 구분짓는 열거형을 선언해주고 자신의 내부에서만 사용할.. 2023. 3. 13. 이전 1 ··· 6 7 8 9 10 11 12 ··· 22 다음