[Swift] 공식 문서 - Properties (속성)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 "Properties (속성)"를 정리해보겠습니다. * 완벽한 번역이 아닌 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 lazy 속성은 동시에 여러 개의 쓰레드가 접근할 경우 중복으로 초기화가 될 가능성이 있다는 점 Objective-C와 Swift의 클래스 인스턴스 값과 참조를 저장하는 방법이 다르다는 점 => Swift가 훨씬 단순화 되었다는 점 computed propety가 실제로는 저장이 안 된고 계산만 한다는 점 Observers willSet, didSet이 Property Observer라는 카테고리(?)라는 점 옵저버를 가진 속성을 in-out 매개 변..
[Swift] 공식 문서 - 구조체와 클래스 (Structures and Classes)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 구조체와 클래스 (Structures and Classes)를 정리해보겠습니다. * 완벽한 번역이 아닌 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 구조체 및 클래스를 인터페이스 파일과 구현 파일로 분리하지 않는 것이 Swift만의 특징이라는 사실 object라는 단어가 클래스 인스턴스만을 지칭한다는 사실 struct를 더 많이 사용하는 이유가 클래스의 추가적인 기능때문이라는 점 구조체나 클래스에서 UpperCamelCase, lowerCamelCase를 맞추는 행위가 표준 스위프트 타입과 일치하려고 하는 것이라는 점 콜렉션은 복사 성능 비용을 감소시키려고 최적화 한다..
[Swift] 공식 문서 - 열거형 (Enumerations)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 열거형 (Enumerations)를 정리해보겠습니다. * 완벽한 번역이 아닌 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 열거형 타입은 ‘복수형 (plural) 보단 단수형 (singular)’ 이름을 부여해야 명확하다는 점 CaseIterable를 채택함으로서 모든 케이스 집합체를 가질 수 있다는 점 Associated Values에 대한 내용 case 이름 앞에 var 나 let annotation을 하나만 적어도 된다는 점 원시 값으로 문자열을 사용할 땐 그 case 이름에 있는 문장이 각 case 의 암시적인 값이 된다는 점 열거형 initializer는 nil..
[Swift] 공식 문서 - 클로저 (Closures)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 클로저 (Closures)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 전역 함수와 중첩 함수가 클로저라는 사실 sorted 메서드가 클로저를 기반으로 동작된다는 사실 클로저의 인자, 반환값 생략할 수 있는 이유가 Swift의 타입 유추라는 점 => 생략 가능하다는 것은 알고 있었지만 이번 포스팅을 통해 이유를 알게 되었다. ">" 연산자 메서드에 문자열별 구현이 되어 있어 sorted()에 클로저 대신 쓸 수 있다는 점 클로저는 참조 타입이라는 점 값이 캡처가 되면 클로저와 인스턴스 사이에 강한 참조 사이클이 생성된다는 점 캡처로 생..
[Swift] 공식 문서 - 함수 (Functions)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 함수 (Functions)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 다른 함수 내에 함수를 정의할 수 있다는 점 Void가 빈 튜플이라는 점 반환되는 튜플의 옵셔널을 튜플 전체를 옵셔널로 감싸서 표현한다는 점 반환값이 있는 한 줄로 된 함수는 return을 생략해도 된다는 점 가변 파라미터가 배열(array)로 사용 가능하다는 점 in-out 파라미터는 기본값 설정이 안 된다는 점 목차 서론 함수 (Functions) 는 특정 작업을 수행하는 코드 모음 입니다. 무슨 동작을 하는지 함수에 특정 이름을 줄 수 있으며 이름은 필요할 때..
[Swift] 공식 문서 - 제어 흐름 (Control Flow)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 제어 흐름 (Control Flow)을 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 Dictionary로 for-in 루프를 쓸 때 순서가 보장이 안 된다는 점 for-in에서 임시 값이 상수로 선언된다는 점 switch에서 실행된 부분을 선택하는 절차를 switching이라고 한다는 점 switch에서 튜플로 case를 넣을 수 있다는 점 switch에서 값 바인딩이 가능하다는 점 switch에서 값 바인딩을 포함한 혼합 케이스에 대한 내용 fallthrough 키워드는 switch 케이스 실행을 위한 케이스 조건을 확인하지 않는다는 ..
[Swift] 공식 문서 - 콜렉션 타입 (Collection Types)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 공식 문서 - 콜렉션 타입 (Collection Types)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 새로 배운 점 콜렉션을 변경할 필요가 없을 때 immutable하게 만들면 성능 최적화가 된다는 점 배열 index로 범위를 줘서 한 번에 값을 변경할 수 있다는 점 remove(at:)가 삭제한 아이템을 반환한다는 점 마지막 아이템을 삭제하는 removeLast()가 존재한다는 점 (index, value)를 반환하는 enumerated()에 대한 부분 Set에서 집합 연산을 다양하게 지원한다는 점 Dictionary의 updateValu..
[Swift] 공식 문서 - 문자열과 문자 (Strings and Characters)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 문자열과 문자 (Strings and Characters)를 정리해보겠습니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 새로 배운 점 Swift의 String과 Character 타입은 유니코드 호환으로 텍스트 처리를 빠르게 하였다는 점 Multiline String 관련 문법 String의 isEmpty가 Property라는 점 Extended Grapheme Clusters의 문법 여러 개의 문자를 합쳐 하나의 그래픽으로 나타낸다는 점 똑같이 보이는 문자라도 다른 양의 메모리가 필요할 수 있다는 점 SubString은 문자열을 참조하는 구조라는 점 서론 문자열은..
[Swift] Swift 공식 문서 - 기본 연산자(Basic Operators)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 기본 연산자(Basic Operators)를 정리하려고 합니다. * 공식 문서 내용을 한 줄 한 줄 읽는 것에 의의를 두었습니다. * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 새로 배운 점 Swift가 C++로 이루어진 만큼 C와 연산자가 유사한 부분이 많다는 점 튜플의 연산 서론 연산자는 값을 할당, 연산, 결합하는 특수 기호입니다. 예를 들어, 덧셈 연산자(+)는 i = 1 + 2에서와 같이 두 숫자를 더하고 논리 곱 연산자(&&)는 entryDoorCode && passedRetinaScan과 같이 두 개의 Boolean 값을 결합합니다. Swift는 기본적으로 C언어의 연산자를 지원하며 코딩 오류를 줄이기 위해 몇 가지 ..
[Swift] Swift 공식 문서 - Swift 소개(2)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 1편에 이어 애플 개발자 홈페이지의 Swift 소개를 정리하려고 합니다. 1편 바로 가기 2021.12.14 - [Swift/공식 문서 정리] - [Swift] Swift 공식 문서 - Swift 소개(1) * 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 Source and Binary Compatibility 스위프트 5를 사용하면 새로운 버전의 컴파일러를 사용하기 위해 스위프트 4 코드를 수정할 필요가 없습니다. 대신 새로운 컴파일러를 사용하면 한 번에 한 모듈씩 새로운 Swift 5 기능을 이용하여 마이그레이션 할 수 있습니다. Swift 5는 이제 앱을 위한 바이너리 호환성을 도입했습니다. 즉, 추후 새로운 버전의 OS가 릴..
[Swift] Swift 공식 문서 - Swift 소개(1)
·
Swift/Swift 가이드
안녕하세요. 개발하는 정주입니다. 오늘은 애플 개발자 홈페이지의 Swift 소개를 정리하려고 합니다. Swift 공식 가이드 문서를 정리하기 전에 Swift가 무엇인지, 어떻게 소개되고 있는지 알아야겠다는 생각이 들었습니다. 파파고의 힘을 빌려 번역했으며 잘못된 번역이 있다면 댓글로 알려주세요. 목차 배우기 쉽고 강력한 프로그래밍 언어 Swift는 iOS, iPadOS, macOS, tvOS 및 watchOS를 위한 강력하고 직관적인 프로그래밍 언어입니다. Swift 코드 작성은 대화형이고 재미있으며, 구문은 간결하면서도 표현력이 있습니다. 또한 스위프트는 개발자들이 사랑하는 현대적 기능을 포함하고 있습니다. 스위프트 코드는 설계상 안전하고 빠르게 실행되는 소프트웨어도 생산합니다. Modern 스위프트는..
[Swift] JSON 다루기 / JSON Codable
·
Swift/개념 & 응용
[iOS/Swift] JSON 다루기 / Codable / JSON Decoder / JSON Encoder 안녕하세요. 개발하는 정주입니다. 오늘은 iOS에서 JSON을 다루는 방법에 대해 포스팅하려고 합니다. JSON 데이터를 넣는 구조체 정의와 인코딩, 디코딩에 대해 알아봅시다. Codable JSON을 다루기 전 Codable이 뭔지 알아야 합니다. 공식 문서에서는 Codable을 "Codable is a type alias for the Encodable and Decodable protocols."로 정의하였습니다. 즉 인코딩과 디코딩을 할 수 있는 프로토콜이라는 뜻이며 그러한 것을 수행하려고 할 때 채택하면 됩니다. typealias Codable = Decodable & Encodable ..
[Swift 5/부스트 코스] iOS 프로그래밍을 위한 스위프트 기초 - Quiz 2-1 오답 노트
·
Swift/개념 & 응용
[Swift 5/부스트 코스] iOS 프로그래밍을 위한 스위프트 기초 - Quiz 2-1 오답 노트 안녕하세요. 개발하는 정주입니다. 오늘은 Quiz 2-1에서 틀린 문항에 대해 포스팅하려고 합니다. 코드를 제대로 보지 않고 제출을 한 것이지만 실수도 안 하는 것이 좋으니 포스팅을 하며 다시 다짐하려고 합니다. 사용자 정의 타입 퀴즈 저는 Quiz 2-1의 Q3을 틀렸습니다. 구조체와 클래스의 차이점에 관한 문제로 var, let으로 property를 정의하고 let 객체를 만들었을 때 객체의 property를 수정할 수 있는가에 대한 내용입니다. struct MyStruct { var propertyA: Int = 10 let propertyB: Int = 10 } class MyClass { var ..
[Swift 5/부스트 코스] iOS 프로그래밍을 위한 스위프트 기초 - guard (1-25) 생각해보기 / if와 guard
·
Swift/개념 & 응용
[Swift 5/부스트 코스] iOS 프로그래밍을 위한 스위프트 기초 - guard (1-25) 생각해보기 / if와 guard 안녕하세요. 개발하는 정주입니다. 오늘은 guard에 대해 포스팅하려고 합니다. 부스트 코스 1-25 내용입니다. 생각해보기를 통해 if와 guard의 차이점도 함께 알아보도록 합시다. http://www.boostcourse.org/mo122/lecture/11313 iOS 프로그래밍을 위한 스위프트 기초 부스트코스 무료 강의 www.boostcourse.org 생각해보기 if와 guard는 뭐가 다를까요? if와 guard 모두 특정 조건에 따라 분기한다는 점은 동일합니다. 따라서 특정 상황을 제외하면 둘 중 무엇을 선택해도 코드 로직에 영향을 주진 않을 것입니다. 여기서 ..
[Swift 5/부스트 코스] iOS 프로그래밍을 위한 스위프트 기초 - 타입 캐스트 as (1-24) 생각해보기
·
Swift/개념 & 응용
[Swift 5/부스트 코스] iOS 프로그래밍을 위한 스위프트 기초 - 타입 캐스트 as (1-24) 정리, 생각해보기 안녕하세요. 개발하는 정주입니다. 오늘은 타입 캐스트에 대해 포스팅하려고 합니다. 부스트 코스 1-24 타입 캐스트 내용입니다. 생각해보기 내용은 맨 아래에 있습니다. http://www.boostcourse.org/mo122/lecture/11312 iOS 프로그래밍을 위한 스위프트 기초 부스트코스 무료 강의 www.boostcourse.org as as는 업 캐스팅과 다운 캐스팅에 사용되는 연산자입니다. 업 캐스팅 Sub class instance를 Super Class Type으로 참조합니다. 컴파일 시점에 캐스팅 가능 여부를 판단합니다. // UniversityStudent 인..
유정주
'Swift' 카테고리의 글 목록 (7 Page)