전체 글 24

[Swift] Closure(클로저)란?

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 Closure는 무엇인지에 대해 알아보도록 하겠습니다! Closure는 Optional과 같이 Swift의 꽃이라고 볼 수 있습니다! 실제로 많이 사용하기도 하고 많은 편리함을 제공하기 때문이죠! Closure의 정의는 코드에서 전달 및 사용할 수 있는 코드블럭입니다. 코드블럭? 함수가 코드블럭이었는데 그럼 함수랑 어떤 차이가 있는지 알아봐야겠죠? 사실 함수도 클로저의 일종입니다. 이게 무슨 말이냐구요? 클로저에는 크게 Nemed Closure와 Unnamed Closure가 있는데 여기서 Nemed Closure, 즉 이름이 있는 클로저를 함수라고 표현하고 Unnamed Closure, ..

Swift 2023.06.21

[Swift] 예외처리(try-catch)

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 Swift에서 예외처리 하는 방법을 알아보도록 하겠습니당!! Swift에서 예외처리를 하기 위해서는 try-catch 구문을 사용하게 됩니다. 프로그램에서 에러가 발생하는 등 예외 상황에 대응하기 위해 사용합니다. 에러 발생(throwing), 감지(catching), 전파(propagating), 조작(manipulating)을 제공하는 클래스를 지원합니다. 프로그램에서 에러가 발생했을 때 어떤 에러인지에 따라 다르게 대응하기 위해 사용됩니다. 그럼 try-catch를 어떻게 사용하는지에 대해 알아보도록 하겠습니당. 예시 아래 예시 코드를 통해 설명해보겠습니다! 먼저 발생할 수 있는 에러..

Swift 2023.06.18

[Swift] Extension(익스텐션)이란?

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 Extension(익스텐션)은 무엇인가!에 대해 알아보도록 하겠습니다. 직역하자면 확장, 연장선 정도로 해석할 수 있겠네요. 실제로 익스텐션은 클래스, 구조체, 열거형, 프로토콜의 기능을 확장하는 기능을 담당합니다. 익스텐션으로 추가할 수 있는 기능들은 다음과 같고, 자세한 내용은 예제 코드를 통해 더 설명드리겠습니다! Extension(익스텐션)에 추가할 수 있는 기능 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티 타입 메서드 / 인스턴스 메서드 initializer(이니셜라이저) Subscript(서브스크립트) 중첩타입 특정 프로토콜을 준수할 수 있도록 기능 추가 예시 1. 연산 프로퍼..

Swift 2023.06.15

[Swift] Protocol(프로토콜)이란?

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 Protocol(프로토콜)에 대해서 알아보겠습니다~ 이전 포스팅인 구조체, 클래스, 열거형에서 계속 등장했던 프로토콜이란 무엇인가.... 간단하게 설명하자면 특정 역할을 위해 프로퍼티, 메서드, 기타 요구사항 등의 청사진이라고 생각하시면 됩니다! 그럼 이 말은 무엇이냐.. 어떤 구조체, 클래스, 열거형이 프로토콜을 채택하면 해당 프로토콜에서 요구하는 프로퍼티, 메서드 등을 실제 구현해야 합니다. 프로토콜은 실제 구현체가 아닌 단순 역할을 정의하는 역할을 담당한다고 생각하시면 이해가 쉬울까요(?)😅 아직 이해가 되지 않는 분들을 위해 간단한 예시와 코드를 통해 설명해보도록 하겠습니다! 예시 ..

Swift 2023.06.13

[Swift] 열거형(Enumeration)이란?

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 열거형(Enumeration)은 무엇인지 알아보도록 하겠습니다! Swift에서 열거형을 사용할 때는 enum 키워드를 사용하게 되는데요. 열거형이란 연관성이 있는 값들을 모아서 나타내는 자료형이라고 생각하시면 됩니다! 단순 정의만으로 이해가 힘들 수 있느니 예시를 들어볼게요! 사용예시 어떤 방향에 대한 값들을 저장해야 하는 상황을 떠올려 볼게요. 크게 동서남북이 있겠죠? 하지만 아래처럼 문자열로 방향을 저장하다보면 오타가 생길 수 있고 그로인해 원하지 않는 상황이 발생할 수 있어요. 이처럼 연관성이 있는 값들을 미리 정의해 사용하기 위해 사용하는 것이 열거형이에요! var direction..

Swift 2023.06.11

[Swift] Class(클래스)란? (feat. 구조체와 차이점)

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) Swift에서는 Class를 통해 구조체와 마찬가지로 프로퍼티나 메서드를 캡슐화하여 인스턴스(Swift에서는 객체를 인스턴스라고 표현합니다.)를 생성할 수 있습니다. 클래스의 특징 클래스는 단일상속이 가능합니다. 클래스는 참조타입(reference type)입니다. iOS 프레임워크 대부분이 클래스로 구현되어 있습니다. (SwiftUI에서는 대부분이 구조체로 구현되어 있습니다.) ARC를 사용하여 메모리 관리를 한다. 클래스를 사용하는 경우 Swift에서는 클래스의 많은 부분을 구조체에서도 가능하며 구조체가 쓰레드 측면에서도 안전하고 빠르기 때문에 Apple에서는 기본적으로 꼭 필요한 경우가 아니..

Swift 2023.06.10

[Swift] 구조체(Struct)란?

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 Swift의 구조체(Struct)에 대해 알아보겠습니당! 구조체란 Swift가 제공하는 타입으로 프로그래머가 프로퍼티나 메서드를 용도에 맞게 캡슐화하여 사용할 수 있습니다. 사실 이렇게 말하면 Class랑 뭐가 다른거지... 생각할 수 있지만 꽤 많은 부분이 다르답니다?!?! 이 부분은 다음에 깊게 살펴보도록 하고 오늘은 구조체에 대해 알아봅시당 구조체 특징 구조체는 상속이 불가능합니다. (하지만 프로토콜을 사용하여 요구사항을 정의할 수 있습니다!) 구조체는 값타입입니다. (Class는 참조타입! 이 둘의 차이는 다음에 이어서 하도록 하겠습니다!) Swift은 대부분 구조체로 구현되어 있습..

Swift 2023.06.08

[Swift] Optional이란?

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) Optional 오늘은 Optional에 대해서 알아보려 합니다! Optional이란 무엇인가... 직역하면 선택적인 이라는 뜻을 가지고 있네요. Swift에서 Optional은 값이 있을 수도, 없을 수도 있는 상황에서 쓰이게 됩니다. 코드로 보며 이해해보겠습니다. var number1: Int = nil// 'nil' cannot be assigned to type 'String' var number2: Int? = nil (nil은 다른 언어의 null과 같으며 비어있다는 뜻을 가지고 있습니다!) 위와 같이 일반적인 문자열 타입의 변수에는 nil을 할당하지 못하지만, 타입 뒤에 ? 나 !를 ..

Swift 2023.06.05

[Swift] 반복문 정리

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 Swift의 반복문에 대해 알아보겠습니다~ 반복문은 같은 로직을 반복하여 코드를 줄여주는 문법이라고 생각하시면 됩니당! 실제로 로직을 구현할 때 자주 쓰이니 익숙해지면 좋을 것 같습니당 반복문인 For문, While문을 알아보겠습니다. For문 for문은 순회하거나 일정 횟수만큼 반복하기 위해 사용하는 문법입니다. 기본적인 사용 방법 예시는 아래를 참고해주세요. let numbers = [1,2,3,4,5] for number in numbers { print(number) } for index in numbers.indices { print(numbers[index]) } for i in..

Swift 2023.03.16

[Swift] 조건문(if-else, switch)과 삼항연산자, if let, guard let

(편의상 편한 말투로 작성하는 점 이해 부탁드립니다.😅) (부정확한 정보가 있을 수 있습니다. 지적 환영🤩) 오늘은 조건문에 알아보겠습니당~ 겸사겸사 조건문과 비슷한 기능을 하는 것들도 더 알아봅시다. if-else 가장 먼저 if-else문을 알아보도록 하겠습니다. if-else는 직역하면 알 수 있듯이 만약 ~~라면 OO 아니면 XX 이런 식이라고 생각하면 될 것 같습니다😅 아래 예제는 가장 기본적인 if-else문의 사용방법입니다. if 조건 { 조건이 true일 때 실행되는 Code } if 조건 { 조건이 true일 때 실행되는 Code } else { 조건이 false일 때 실행되는 Code } if 조건1 { 조건1이 true일 때 실행되는 Code } else if 조건2 { 조건1이 fa..

Swift 2023.03.08