SWIFT

    [Swift] 어떻게 구조체 이름이 Data냐구요

    ⚠️ 공식문서를 읽고 제가 해석(파파고), 의역한 정보도 포함되어 있으니, 잘못된 정보는 댓글로 알려주시면 감사하겠습니다 🙇‍♂️ 개인적인 학습을 위해 작성한 글입니다. 이 글에는 정확하지 않은 정보가 포함되어 있을 수 있습니다. 서론 이번 주에 iOS에서 네트워킹을 하는 방법 즉, URL을 통해 데이터를 가져오고 보내는 것을 공부했는데, URLSession 클래스의 여러 메서드에 서 Data라는 타입이 자주 등장했다. 그래서 궁금증을 해결하기 위해 글을 써본다! 장문이 될 것 같지만 그럼 시작! 사건의 발단,,, dataTask 메서드는 completionHandler의 파라미터로 Data, URLResponse, Error를 가지고 있는데, data는 우리가 해당 URL로 요청을 보냈을 때 서버로부터..

    [Swift] final 파헤치기

    블로그 글을 오랜만에 쓰려니 어색,, 어색,, 묵혀놨던 글 소재거리 발견해서 공부하고 포스팅해봅니다,,, 이제부터 말투는 내 쓰고 싶은 대로 쓸 거임,,, 시작! 이전에 부스트 코스 iOS 앱 프로그래밍에서 코드 리뷰를 받았을 때 이러한 리뷰 내용이 있었다. 리뷰어님 dispatch가 뭔데요... 내가 아는 건 요건디ㅋㅋㅋㅋㅋ method dispatch라고 검색하니 그제야 내가 찾고 싶었던 것들이 조금씩 보이기 시작했다! 그럼 method dispatch는 뭘까...? Method Dispatch 간단하게 말하면, Method Dispatch는 어떤 작업을 실행해야 하는지, 더 구체적으로는 어떤 메서드를 호출해야 하는지 결정하는 데에 사용되는 알고리즘 혹은 메커니즘이라고 할 수 있다. 음... 일단 o..

    [Swift] 구조체와 클래스, 열거형 - 사용자 정의 타입

    * 이 글은 "스위프트 프로그래밍 (3판)" 및 야곰닷넷의 "스위프트 기초 강의", The Swift Programming (번역본)을 공부하며 정리한 내용입니다. 사용자 정의 타입은, 프로그래머가 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용하게 쓰입니다. 구조체와 클래스는 프로퍼티와 메소드를 사용하여 구조화된 데이터 및 기능을 가질 수 있습니다. Swift에서 이 둘은 문법상 생김새는 비슷하나, 구조체는 값 타입, 클래스는 참조 타입이라는 것이 가장 큰 차이라고 할 수 있습니다. 값 타입과 참조 타입은 추후에 따로 다뤄보도록 하겠습니다. 구조체 (Struct) struct SoccerPlayer { // Properties var name: String // 이름 var age: Int // 나이..

    [Swift] 옵셔널

    * 이 글은 "스위프트 프로그래밍 (3판)" 및 야곰닷넷의 "스위프트 기초 강의", The Swift Programming (번역본)을 공부하며 정리한 내용입니다. 옵셔널(Optional) 이란? 옵셔널은 nil의 가능성을 명시적으로 표현하는, 스위프트의 특징 중 하나인 안정성을 문법으로 담보하는 기능입니다. 단어 뜻 그대로 Optional, '선택적인' , '값이 있을 수도, 없을 수도 있음' 을 나타내는 표현입니다. 이 말인 즉슨, 변수나 상수에 값이 있다고 보장할 수 없다,혹은 변수나 상수의 값이 nil 일 수도 있다를 의미합니다. 위 코드를 보면, convertedNumber에서 String 타입인 possibleNumber를 Int 타입으로 변환을 시도합니다. convertedNumber의 타입..

    [Swift] 함수

    * 이 글은 "스위프트 프로그래밍 (3판)" 및 야곰닷넷의 "스위프트 기초 강의"를 들으며 정리한 내용입니다. 함수 스위프트의 함수는 자유도가 굉장히 높은 문법 중 하나입니다. 기본적으로 함수의 이름과 매개변수(Parameter), 반환 타입(Return Type) 등을 사용하여 함수를 정의합니다. 기본적인 함수 선언의 형태와 호출은 다음과 같습니다. func name(parameter1: type, parameter2: type...) -> Type { // 함수 구현부분 return 반환 값 } // 예시 func sum(a:Int, b:Int) -> Int { return a+b } /* 함수이름 - sum 매개변수(parameter) - a,b 반환 타입(return type) - Int */ /..

    [Swift] 데이터 타입 (1) - 기본

    * 이 글은 "스위프트 프로그래밍 (3판)" 및 야곰닷넷의 "스위프트 기초 강의"를 들으며 정리한 내용입니다. 1. 데이터 타입 (Data Type, 자료형) 데이터 타입은 프로그램 내에서 다뤄지는 데이터의 종류를 뜻합니다. 스위프트의 기본 데이터 타입은 구조체를 기반으로 스위프트의 다양한 기능인 익스텐션, 제네릭 등을 사용하여 구현되어 있습니다. 스위프트의 모든 데이터 타입 이름은 첫 글자가 대문자로 시작하는 대문자 카멜케이스를 사용합니다. 2. Int/UInt 정수 타입으로, Int는 +/- 부호를 포함한 정수를 나타내며 - 부호를 포함하지 않는 0을 포함한 양의 정수는 UInt로 나타냅니다. Int와 UInt 타입의 최댓값과 최솟값은 max와 min 프로퍼티를 사용하여 알 수 있습니다. Int/UI..

    [Swift] 데이터 타입 (2) - 데이터 타입 안심, 컬렉션 타입

    * 이 글은 "스위프트 프로그래밍 (3판)" 및 야곰닷넷의 "스위프트 기초 강의"를 들으며 정리한 내용입니다. 1. 스위프트의 데이터 타입 안심 스위프트는 타입에 굉장히 민감하고 엄격한 언어입니다. 서로 다른 타입간의 데이터 교환은 반드시 타입캐스팅(Type-Casting) 을 거쳐야 합니다. 스위프트에서 값 타입의 데이터 교환은 엄밀히 말해서 타입캐스팅이 아닌 새로운 인스턴스를 생성하여 할당하는 것입니다. 스위프트는 데이터 타입을 안심하고 사용할 수 있는(Type-Safe) 언어입니다. 예를 들면 String 타입 변수에 Int 타입의 값을 할당하려고 하면 컴파일 오류가 발생합니다. 스위프트가 컴파일 시 타입을 확인하는 것을 타입 확인이라고 합니다. 이러한 타입 확인을 통해 런타임 오류를 피할 수 있습..

    [Swift] 기본

    * 이 글은 "스위프트 프로그래밍" (3판)을 보며 공부한 내용을 정리한 것입니다. 1. 기본 명명 규칙 변수, 상수, 함수, 메서드, 타입 등의 이름은 유니코드에서 지원하는 어떤 문자(한글, 한자, 영문, 숫자, 이모티콘 등) 라도 사용할 수 있습니다. 다만 다음과 같은 예외 경우는 사용할 수 없습니다. - 스위프트에서 미리 정한 예약어 또는 키워드 - 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름 - 연산자로 사용될 수 있는 기호 ( +, -, *, / ) - 숫자로 시작하는 이름 - 공백이 포함된 이름 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스(Lower Camel Case)를 사용합니다. 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입..