🐦 Swift 15

[Swift] 에러 처리, Result Type

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 에러 처리 에러 처리는 왜 필요할까? => 프로그램은 완벽하게 돌아갈 수 없다. 만약에 에러에 대한 적절한 처리를 하지 않았을 경우 앱이 꺼지게 되고, 앱이 반복적으로 꺼지게 되면 사용자 경험에 상당히 악영향을 끼침 => 따라서, 미리 발생할 수 있는 에러 케이스를 사전에 정의하여 적절한 처리를 해준다면, 최소한 앱이 꺼지는걸 방지할 수 있다. Error 프로토콜 enum NetworkError: Error { case networkingError // 네트워크 에러..

🐦 Swift 2023.07.20

[Swift] ARC(Automatic Reference Counting)

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) ARC(Automatic Reference Counting) Swift에서 메모리를 자동으로 관리해주는 방식으로, 클래스/클로저에만 해당되는 메모리 관리 방식 ARC는 참조 횟수(=Reference Count, Retain Count)를 통해 더이상 필요하지 않은 클래스의 인스턴스를 메모리에서 자동으로 해제하는 방식으로 동작 컴파일 시 이미 값 타입의 메모리 해제 시점(reference count가 0이 되는 시점)이 정해져있어서 해제되어야 할 시점에 메모리가 해제됨..

🐦 Swift 2023.06.29

[Swift] 프로토콜 (protocol)

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 프로토콜 프로토콜이란 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진(그래서 구현은 없고 형태만 있음)이다. 구조체, 클래스, 열거형은 프로토콜을 채택하여 프로토콜을 구현할 수 있다. protocol 프로토콜 이름(대문자로 시작){ } ❓ 상속 vs 프로토콜 1) 상속은 클래스만 상속 가능하며, 다중 상속이 불가하다. 프로토콜은 클래스, 구조체, 열거형에서 채택 가능하며 다중 채택이 가능하다. -> 꼭 클래스가 아니라 구조체에서도 공통된 메서드를..

🐦 Swift 2023.06.20

[Swift] 확장 (익스텐션, Extension)

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 익스텐션 구조체, 클래스, 열거형, 프로토콜 타입 등 모든 타입에 새로운 기능(메서드)를 추가하여 사용하는 문법 애플이 만들고 개발자가 접근/변경할 수 있는 타입에도 추가가 가능하여 편리하게 사용 가능한 문법임 ❓ 상속 vs 익스텐션 상속도 결국엔 기존 클래스를 물려받고 메서드를 추가할 수 있는거 아닌가? 했는데 상속은 반드시 상위 클래스/하위 클래스라는 개념이 있어서 하위 클래스가 상위 클래스를 물려받아 메소드를 추가하는 것이고 (수직 확장) 익스텐션은 기존의 클래..

🐦 Swift 2023.06.11

[Swift] 클래스의 상속, 생성자, 타입캐스팅

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 클래스는 메소드나 프로퍼티 등을 다른 클래스로부터 상속받을 수 있다. (구조체는 X) 이 때 속성을 물려주는 클래스를 부모/상위/슈퍼 클래스라고 하며, 물려받는 클래스를 자식/하위/서브 클래스라고 한다. 그리고 어떠한 클래스를 물려 받지 않은 클래스를 기본(Base) 클래스 라고 한다. 클래스의 상속 - 클래스 상속하는 방법: 옆에 상속받을 부모 클래스 이름을 명시해주면 된다. class 자식 클래스이름: 부모 클래스 이름 { } - 클래스가 어떤 클래스를 상속하면,..

🐦 Swift 2023.06.11

[Swift] 속성(property)와 메소드(method)

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) *속성(프로퍼티): 구조체/클래스의 변수 *함수(메소드): 구조체/클래스의 함수 속성(property, 프로퍼티) 프로퍼티 관련해서 구조체와 클래스 간의 차이는 없음 저장 속성 - 위에서 말한 클래스/구조체의 속성과 저장속성은 같은 말이다. 즉, 인스턴스의 변수/상수를 의미함 - 인스턴스 생성 시, 저장 속성은 반드시 값을 가지고 있어야만함 (저장 속성을 온전히 다 초기화하는 것이 인스턴스 생성의 조건임) struct Bird { var name: String? /..

🐦 Swift 2023.06.08

[Swift] 구조체(Struct), 클래스(Class)

본 포스팅은 '스위프트 프로그래밍 (3판)' 도서와 앨런 Swift 문법 마스터스쿨 강의를 참고하여 Swift 프로그래밍에 대해 정리하는 글입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 구조체와 클래스 - 프로그래머가 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용 - 클래스는 틀이고 이 틀을 통해 찍어낸 붕어빵을 객체, 인스턴스 라고 함 (객체는 클래스에서만 해당하는 이름) - 둘은 거의 완전히 동일하나, 값 타입이냐 참조 타입이냐에 가장 큰 차이를 두고 있음 (값 타입과 참조 타입은 아래에서 다룸) 구조체 1) 구조체 정의 struct 구조체 이름 { 프로퍼티와 메서드 } 2) 구조체 인스턴스 생성 및 초기화 struct Developer {..

🐦 Swift 2023.06.08

[Swift] 데이터 타입 고급 (튜플, 컬렉션, 열거형)

본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의를 통해 공부하며 정리하는 포스팅입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 1. 튜플 지정된 데이터의 묶음으로, 연관된 데이터를 같이 묶음으로써 표현할 때 유용함 (ex. 홍길동, 20세, 서울) - 튜플.인덱스, 튜플.요소이름 으로 튜플 안에서 각 데이터를 꺼내오고, 할당도 가능함 //1. 인덱스로 가져오는 방법 var person: (String, Int, Double) = ("yuri", 10, 170.0) print("\(person.0), \(person.1), \(person.2)") // yuri, 10, 170 //2. 요소의 이..

🐦 Swift 2023.05.31

[Swift] 연산자

본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의를 통해 공부하며 정리하는 포스팅입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 1. 연산자 A + B (+ : 연산자, A, B : 피연산자) 1) 단항 연산자 : 피연산자가 1개 ex) +a, -a, !a, a... 2) 이항 연산자 : 피연산자가 2개 ex) a+b, a>=b 3) 삼항 연산자 : 피연산자가 3개 a ? b : c 2. 할당 연산자 - 값을 할당할 때 사용하는 연산자이며, A = B 이렇게 표기함 - 데이터 타입이 서로 다르면 오류 발생 - 연산자가 여러개 일때, 가장 우선순위가 낮아서 가장 마지막에 실행함 (연산자 우선순위 ..

🐦 Swift 2023.05.13

[Swift] 변수와 상수, 의미 있는 이름

본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의와 클린코드 도서를 통해 공부하며 정리하는 포스팅입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 1. 변수 - 프로그램에서 사용할 데이터를 메모리에 임시로 저장하기 위해 사용하는 공간이며, 특정 데이터 타입에 해당하는 값의 이름 - mutable : 변경 가능한 데이터를 담는 공간 var 변수명: 데이터타입 = 값 2. 상수 - 프로그램에서 사용할 데이터를 메모리에 임시로 저장하기 위해 사용하는 공간이며, 특정 데이터 타입에 해당하는 값의 이름 - immutable : 변경 불가능한 데이터를 담는 공간 let 상수명: 데이터타입 = 값 💡 상수를..

🐦 Swift 2023.05.09
반응형