Swift 17

❓ 접근 제어(Access Control)

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

Swift 2024.06.17

❓ Delegate와 DataSource의 차이

안녕하세요!벌써 월요일이라니 아쉬운 Yunie입니당..오늘은 CollectionView와 TableView, TextField 등에 자주 사용하는 Delegate와 Datasource의 차이가 어떤 것이 있는지 알아보겠습니다!만약 저처럼 기계적으로 둘을 사용했다면 이번 기회에 둘이 어떤 역할을 맡고 있는지 알아가시는 것도 좋을 것 같습니다! 🤗  ❓Delegate / Datasource일반적으로 우리는 TableView, CollectionView를 그릴 때 이 둘을 모두 사용하게 됩니다그럼 Delegate만 가지고 있고 Datasource는 없는 친구들도 있나요?라고 하신다면! TextField와 TextView가 그 대표적인 예시라고 할 수 있습니다 그럼 이 둘이 어떤 차이가 있길래 누구는 Dele..

Swift 2024.06.10

❓ 타입 프로퍼티

바로 지난 글에서는 저장 프로퍼티에 대해 알아봤었던 거 기억하시나요?프로퍼티에는 저장, 타입, 연산 프로퍼티로 총 세 가지 종류가 있다고 했었는데, 이번 글에서는 타입 프로퍼티에 대해 다뤄보도록 하겠습니다! ❓ 타입 프로퍼티타입 프로퍼티는 프로퍼티답게 클래스, 구조체, 열거형에서 사용됩니다그리고 타입 프로퍼티는 저장 타입 프로퍼티, 연산 타입 프로퍼티 두 가지로 나뉠 수 있습니다이전 글들을 통해서 저장 프로퍼티, 연산 프로퍼티에 대해 알아봤으니 두 프로퍼티가 어떤 역할을 하는지, 어떻게 생겼는지는 알 수 있을 겁니다그런데 이 둘에게 타입이 붙으면 어떤 점이 다른 걸까요?코드로 살펴볼게요!struct Student { static var name: String = "yunie" static let age:..

Swift 2024.06.07

❓ 연산 프로퍼티

안녕하세요! 한 주의 중간인 딱 노곤해지는 수요일이네요!그래도 내일이면 휴일이라니 여러모로 여유있게 보낼 수 있을 것 같아 기분이 좋습니다☺️ 이제 본론으로 들어가자면 저번 글에서는 저장 프로퍼티에 대해 알아봤습니다그때, 프로퍼티는 저장 / 연산 / 타입 프로퍼티 이렇게 총 세 가지로 나뉜다고 말씀드렸는데요!오늘은 연산 프로퍼티에 대해 공부해볼 생각입니다!  ❓ 연산 프로퍼티저장 프로퍼티는 이전 글에서 말했다시피 우리가 아는 일반적인 프로퍼티 형식을 이야기합니다그렇다면 연산 프로퍼티는 뭘까요? 이름처럼 무언가를 연산해 주는 프로퍼티인가..?라고 우리는 자연스레 추측해 볼 수 있습니다그리고 네, 맞습니다!연산 프로퍼티는 다른 저장 프로퍼티의 값을 가져와 연산을 수행하거나, 프로퍼티로 전달받은 값을 다른 프..

Swift 2024.06.05

❓ 저장 프로퍼티

안녕하세요!아실지 모르겠지만 Swift의 프로퍼티에는 총 세 가지가 존재합니다바로 저장, 타입, 연산 프로퍼티인데요오늘은 그중에서도 저장 프로퍼티에 대해 알아보겠습니다!프로퍼티란 ❓사실 프로퍼티라고 하면 개발에 아직 익숙지 않으신 분들은 강의나 관련 도서를 봤을 때  ‘도대체 그게 뭔데?’라고 생각하실 것 같아요분명 그냥 변수를 얘기하는 것 같은데 쟤는 왜 프로퍼티인가~ 싶기도 할 것 같고요이전에 프로퍼티에 대해 잘 모르던 저도 마찬가지였습니다😆그래서 프로퍼티가 뭐냐고 물으신다면 우리가 아는 그 변수/상수 맞습니다 🙂다만, 일반적으로 선언하는 것이 아닌 클래스 또는 구조체 내에서 사용하는 변수들을 모두 프로퍼티라고 합니다let number: Int = 0 // 변수struct UserData { ..

Swift 2024.05.31

❓final

타 언어에서 이미 final을 접해보기는 했지만 자세히 알아본 적은 없어서 이번에는 final에 간단하게 알아봤습니다! ❓ finalfinal은 Apple이 제공하는 Document의 상속(Inheritance) 파트에서 찾아볼 수 있습니다.이에 따르면, final은 class 이외에도 method, property, subscript등의 앞에 붙여 사용 가능하다고 하네요! 🧐 그렇다면 final은 어떤 기능을 하는 걸까요?final은 단어 그대로 ‘최종!’이기 때문에 final 키워드가 붙은 method, property, subscript는 서브클래스에서 오버라이드가 불가능하게됩니다. 그렇기 때문에 만약 final 키워드가 붙은 무언가를 상속받아 오버라이드하려고 하면 컴파일 타임 에러가 발생하게 됩..

Swift 2024.05.27

❓lazy

강의를 듣거나 다른 사람의 코드를 참고할 때 간혹 lazy라는 키워드를 볼 수 있었습니다. 들어본 적은 있지만 제대로 사용해 본 적이 없어 알아두면 좋을 것 같아 기록하게 되었습니다! ❓ lazylazy를 해석하면 ‘게으른’, ‘느긋한’ 등의 의미를 지닙니다.그리고 키워드로서의 lazy 또한 lazy로 프로퍼티 선언 시 lazy가 붙지 않은 다른 프로퍼티보다 지연된다는 점에서 이와 같은 특징을 보여줍니다.결국 이는 lazy가 붙은 프로퍼티는 사용되기 전까지는 메모리에 올라가지 않음을 의미합니다.이제 간단한 예시로 lazy 프로퍼티가 없을 때와 있을 때를 비교하며 lazy가 어떤 식으로 작동하는지 알아보겠습니다import UIKitclass GPS { init() { print("GPS!..

Swift 2024.05.20