분류 전체보기 31

❓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

✏️ 로컬 푸시 알림 보내기(Local Notification)

안녕하세요!최근 푸시 알림의 종류와 로컬 알림을 생성하고 사용자에게 전송하는 방법에 대해 배웠습니다!수많은 앱이 푸시 알림을 사용하고 있는 만큼 개념이나 구현방법을 정리해 두면 좋을 것 같아 이렇게 글을 씁니다 :)  ❓푸시 알림푸시 알림이라는 개념이 조금 생소하실 분들을 위해 소개해드리자면 아래 이미지처럼 흔히 알림 센터에 오고 쌓이는 모든 알림 들을 푸시 알림이라고 합니다 🧐 푸시 알림은 왜 필요한걸까요?앱은 기본적으로 Background 상태(현재 스크린에 보이고 있지 않은 상태)가 되면 모든 기능에 제한을 가지게 됩니다아무래도 현재 눈앞에 있는 앱이 아닌 그 밑의 앱을 사용한다고 생각하면 말이 안 되죠? 여기서 예시로 은행앱을 이야기해 볼게요만약 은행앱이 Background 상태로 가있다고 해서..

iOS 2024.06.19

❓ 접근 제어(Access Control)

이전에 스위프트 문법 강의를 듣다가 알게 된 open이라는 키워드에 대해 알아보다 자연스레 스위프트의 접근 제어자 5가지를 알아보게 되었습니다! ❓ 접근 제어자접근 제어자가 어떤 것인지 알기 위해서는 접근 제어가 무엇인지부터 이해해야 할 것 같아요 접근 제어란 코드끼리 상호작용 할 때, 소스파일 간 또는 모듈 간 접근을 제한하는 것을 말합니다이를 통해 특정 코드의 세부적인 구현은 숨기고 허용된 기능만 사용하는 인터페이스를 제공할 수 있습니다  ✏️ 여기서 잠깐!모듈은 배포하는 코드의 묶음 단위를 말하며 간단하게 import 해오는 것들을 의미합니다소스파일은 스위프트의 코드 파일 한 개를 의미합니다 🧐 그렇다면 소스파일 간, 모듈 간 접근을 제한하는 이유는 뭘까요? 이는 객체지향프로그래밍(OOP)의 은닉..

Swift 2024.06.17

❓ AppDelegate와 SceneDelegate(2)

지난 글에서는 AppDelegate에 대해 알아봤습니다!오늘은 SceneDelegate가 왜 생겼고 어떤 역할을 하는지 알아볼게요🙂 🧐 SceneDelegate는 왜 생겨났을까요?그 이유는 생각보다 간단합니다 iOS13부터 애플이 아이패드에 Multi Window를 지원하기 시작했기 때문입니다아래 이미지처럼 두 가지 화면이 UIScreen위에 그려지고 있는데, 이전 같은 방식이라면 두 화면을 모두 한 번에 관리할 수는 없습니다그리고 애플도 이를 당연히 인지하고 있었겠죠! 그래서 이 두 화면을 모두 관리해주어야 하는 관리자로, SceneDelegate를 만들어낸 것입니다   ❓ SceneDelegate SceneDelegate가 왜 생겨났는지 알게 됐다면 이제 좀 더 파볼까요? SceneDelegate..

iOS 2024.06.14

❓ AppDelegate와 SceneDelegate(1)

안녕하세요!여름감기로 고생 중인 Yunie입니다..🥲 여러분은 감기 조심하세요ㅠ오늘은 이전부터 정리해둬야겠다고 마음만 먹고 미루고 미루던 AppDelegate에 대해 알아볼게요! ❓App LifeCycle저 둘의 역할을 알기 위해서 우리는 우선, 앱의 생명주기에 대해 알아야 합니다앱은 실행되고 종료되는 동안 총 5가지의 상태를 가집니다그리고 표로 간략하게 정리해서 보여드리면 다음과 같아요 (생각보다 간단하죠..? ) 이 중, Active와 InActive와 같이 화면에 앱이 띄워져 있는 상태를 Foreground라고 묶어서 칭해줄 수 있습니다그리고 이와 반대 상태인 앱이 화면에서 사라진 상태를 Background라고 칭하게 되는 거죠!  ❓App Delegate 이제 간단하게 앱이 어떤 생명주기를 가지..

iOS 2024.06.12