Swift 17

❓ Enum(2)

안녕하세요!이전에는 Enum이란 뭐고 어떻게 사용하는지, 원시값 RawValue가 뭔지 알아봤습니다!오늘은 Enum의 연관값이랑 CaseIterable이라는 프로토콜을 채택해서 어떻게 활용할 수 있는지 알아볼게요🔥  🧐 연관값은 왜 필요할까이전에 사용했던 예제를 살펴보면 각 OS에 대해 명시하고 있기는 하지만 각 OS가 몇 버전인지는 명시해주고 있지 않습니다enum AppleOS { case iOS case MacOS case TvOS case WatchOS} 그런데 이제는 iOS이면서 최신버전인 17.5일 때, 무언가를 처리하고 싶은 겁니다그러면 이런 식으로 사용하게 되겠죠?switch AppleOS { case .iOS: if version == 17.5 { ..

Swift 2024.07.12

❓ Enum(1)

안녕하세요!오늘은 조건을 좀 더 간결하게 처리할 수 있는 Enum! 풀어쓰면 Enumeration이라는 친구를 알아볼게요!  ❓ 열거형 Enum(Enumeration)Enum은 방금 말씀드린 것처럼 조건을 좀 더 간결하게 처리할 수 있게 만들어줍니다그전에 왜 그런 특성을 가지냐 하면~ Enum은 개발자가 정의한 같은 주제를 공유하는 데이터들로 구성되거든요 예를 들어, 각 'AppleOS'에 맞게 조건을 처리한다고 해볼게요그럼 아마 iOS, MacOS, TvOS, WatchOS로 조건을 처리하게 되겠죠?이를 if-else문으로 풀어보자면if os == 'iOS' {} else if os == 'MacOS' {} else if os == 'TvOS' {} else if os == 'WatchOS' {} el..

Swift 2024.07.10

❓ Switch-Case

안녕하세요! 사실 이번 글은 열거형으로 가져오려고 했는데, 그럼 Switch문이 사용되잖아요..?혹시 Switch문을 잘 모르시는 분들이 계실까 해서 오늘은 Switch-Case문부터 한 번 알아보려고 합니다  ❓Switch-CaseSwitch-Case문이 어떤건지 살펴보기 전에 언제 사용되는지 알아볼게요 우선 if-else문에서 나이를 조건으로 학교를 나눠주게 된다면 아래와 같이 코드가 작성될 겁니다if age >= 1 && age = 8 && age = 14 && age = 17 && age   그런데 막상 쓰고 보니 가독성도 별로고.. 쓰는 과정 속에서 age를 쓰는 것도 귀찮은 거죠 😅 그래서 이렇게 다양한 경우의 수를 어떻게 좀 더 간결하고 간단하게 처리할 수 있을까 싶을 때 Switch-Ca..

Swift 2024.07.08

❓ Optional Chaining

안녕하세요!오늘은 옵셔널 시리즈의 마지막글로 옵셔널 체이닝에 대해 알아보겠습니다!!  ❓ Optional ChainingChaining이라는 단어를 들으면 어떤 느낌을 받으실까요?체인이 막 연결되어 있는 형태니까 얘도 이런 걸 뜻하는 게 아닐까~?라고 하신다면 맞습니다!옵셔널을 연쇄적으로 사용하는 것이거든요! 저만 그런지는 모르겠지만.. 개발 중에 객체 내 해당 프로퍼티가 옵셔널타입이었던걸 잊어버릴 때가 있습니다그래서 무작정 불러와! 하고 쓰게 되죠😅 바로 아래처럼요// yunie라는 인스턴스의 pet이라는 프로퍼티에 접근해서 petName을 가져와줘yunie.pet.petName 그런데 만약 저 yunie인스턴스와 그의 내부 프로퍼티인 pet이 옵셔널 타입이라면..?옵셔널을 해제해주는 어떠한 과정도 ..

Swift 2024.07.05

❓Nil Coalescing (??)

안녕하세요!오늘로 벌써 옵셔널에 관한 글이 다섯 번째인가요?그래도 오늘 개념은 정말 별 거 없으니까 걱정 마세요!그럼 갑시다  ❓Nil Coalescing (??)개발공부를 하거나 Swift문법 공부를 하시면서 ?? 라는 연산자를 보신 적 있으실까요?저 ?? 가 오늘 공부하고자 하는 Nil Coalescing Operator입니다! 지금까지 알아본 옵셔널을 해제해 주는 방법 중 안전한 방법들은 guard let, if let 구문이 있었죠그리고 Nil Coalescing 또한 안전하게 옵셔널을 해제해주는 방법인데, 보다 더 간편합니다! 우선 옵셔널 타입의 nickname이라는 변수를 선언해 볼게요var optionalNickname: String? = "Yunie" 이제 저는 여기서 nickname 내 ..

Swift 2024.07.03

❓ Implicitly Unwrapped Optional

안녕하세요!벌써 7월이 다가왔네요..! 이제 본격적인 장마시작인데, 길 다니실 때 항상 조심하시고요!그럼 7월도 따끈따끈한 글로 시작해 볼까요~!!  ❓Implicitly Unwrapped Optional (IUO)오늘은 줄여서 IUO라고 불리는 암묵적 옵셔널 추출에 대해 알아보려고 합니다이전에 옵셔널은 값이 있을 수도, 없을 수도 있는 변수/상수를 선언할 때 사용해 준다고 했죠?그리고 그 옵셔널을 해제하기 위해 Forced Unwrapping, Optional Binding의 방식을 사용하게 된다고 말씀드렸습니다 그런데 이 IUO라는 친구는 특별한 형태의 옵셔널로 옵셔널로 선언한 변수/상수임에도 불구하고 값을 꺼내올 때 자동으로 옵셔널을 해제해 준다는 특징을 가지고 있습니다 이제 예제로 한 번 살펴볼게..

Swift 2024.07.01

❓ Optional Binding

안녕하세요!드디어 금요일이네요!!! 이번주도 좋은 한 주가 되셨길 바라면서~!정말 자주 사용되는 Optional Binding에 대해 알아볼게요☺️ ❓ Optional Binding Optional Binding은 이전 글의 Forced Unwrapping처럼 옵셔널을 해제해 주는 Optional Unwrapping 방법 중 하나입니다그리고 Forced Unwrapping과 반대로 가장 많이 사용되면서 안전한 방법이기도 합니다 Optional Binding에는 크게 if let과 guard let 방법이 있습니다 (while let도 있는데, 거의 사용하지 않아요)간단히 살펴보면 optionalUserName이라는 Optional String Type을 해제해줄 때 이런 형태로 사용하게 됩니다 let o..

Swift 2024.06.28

❓ Forced Unwrapping

안녕하세요!오늘은 저번에 이야기했던 Forced Unwrapping에 대해 알아보려고 합니다!한 번 Optional이라는 상자를 뜯어보죠!  ❓ Optional Unwrapping자, 그전에 오늘도 관련 기본 개념부터 알아보고 갈게요Optional Unwrapping이란 간단하게 Optional이라는 상자를 열어주는 작업이라고 했습니다 아, 난 귀찮은데 그냥 사용하면 안되나? 라고 생각하실 수 있는데..만약 Optional Unwrapping을 거치지 않고 데이터를 사용하게 된다면?  이렇게! Optional이라는 상자가 데이터와 함께 표현됩니다그렇기 때문에 제가 원하던 "안녕하세요! Yunie의 블로그입니다"의 형태가 출력되지 않음을 확인할 수 있습니다 원래의 의도대로 출력하고 싶다면 이 Optiona..

Swift 2024.06.26

❓ Optional

안녕하세요!드디어 감기에서 벗어난 Yunie입니다!오늘부터 옵셔널에 대해 조금씩 알아보려고 합니다아마 다음 글은 Optional Unwrapping에 대한 글이 되겠네요 :) ❓ nil옵셔널에 대해 알아보기 전에 nil이라는 개념에 대해 먼저 이해하고 넘어가는 게 좋을 것 같아요nil은 Int타입의 0이나 String타입의 ""와 달리 정말 아무런 값이 없음을 이야기합니다 🧐 그럼 nil은 언제 사용되나요?보통 앱의 로직이 어딘가 잘못되었거나 원하는 결과를 받아오지 못했을 때 등 앱이 강제로 꺼져버리는 경우가 발생합니다이러한 경우를 런타임 에러라고 하죠?그럼 런타임 에러가 발생할 가능성이 있는 앱을 우리는 안정적이라고 할 수 있을까요?아마 아닐겁니다 그래서 애플은 앱의 안정성을 위해 nil이라는 개념을..

Swift 2024.06.24

❓ Type Inference / Type Annotation

안녕하세요!오늘은 Swift 문법의 기본 중의 기본을 공부해보려 합니다!  ❓변수 / 상수 선언두 가지 메인 주제를 다뤄보기 전에 Swift에서 변수와 상수는 어떤 식으로 선언되는지 살펴볼게요!let namevar age Swift를 막 시작하신 분들도 아시겠지만 Swift에서 상수는 let / 변수는 var로 선언됩니다하지만 이렇게 무작정 선언해 주면?  오류가 발생하게 됩니다! 간단히 말씀드리자면 name이나 age가 어떤 타입인지 모르겠어~라는 겁니다컴파일러는 데이터 각각의 자료형에 맞는 메모리를 준비해 두는 역할을 하는데요막 name과 age를 메모리에 담으려고 봤더니 이 상수/변수가 어떤 자료형인지 알 수 없는 상황인 겁니다..! 따라서 우리는 변수와 상수를 선언할 때에 컴파일러를 위해서라도 타..

Swift 2024.06.21