분류 전체보기
[Swift] 프로퍼티(Property) - 타입 프로퍼티
💡 타입 프로퍼티 (Type Properties) 타입 프로퍼티는 각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티를 말합니다. 즉, 타입 자체에 영향을 미치는 프로퍼티입니다. 인스턴스의 생성 여부와 상관없이 타입 프로퍼티의 값을 하나며, 그 타입의 모든 인스턴스가 공통으로 사용하는 값, 모든 인스턴스에서 공용으로 접근하고 값을 변경할 수 있는 변수 등을 정의할 때 유용합니다. 저장 타입 프로퍼티 변수 또는 상수로 선언할 수 있습니다. 반드시 초깃값을 설정해야 하며 지연 연산이 됩니다. (lazy 키워드 표시❌) 연산 타입 프로퍼티 변수로만 선언할 수 있습니다. class AClass { // 저장 타입 프로퍼티(상수) static let typeProperty_1: Int = 10 // 저장 타입 프..
[TIL] 21. 01. 08
👑 Today I Learned 스위프트 프로퍼티 감시자와 타입 프로퍼티에 대해 공부했다. 코드와 정리한 것을 깃에 올려 잔디를 심었다ㅎㅎ 🌱 2021/01/08 - [Swift] - [Swift] 프로퍼티(Property) - 프로퍼티 감시자 2021/01/09 - [Swift] - [Swift] 프로퍼티(Property) - 타입 프로퍼티 💡기억해야 할 것 프로퍼티 감시자에는 프로퍼티의 값이 변경되기 직전에 호출하는 willSet 메서드와 값이 변경된 직후에 호출하는 didSet 메서드가 있다. 타입 프로퍼티는 인스턴스를 생성하지 않고도 사용할 수 있으며 타입에 해당하는 값이다. 🧐느낀 점 오늘은 나갔다 오느라 낮에 공부를 못하고 새벽에 집중해서 했다. 역시 난 야행성인가 보다.. 집중이 너무 잘돼,..
[Swift] 프로퍼티(Property) - 프로퍼티 감시자
💡프로퍼티 감시자 (Property Observers) 프로퍼티 감시자를 사용하면 프로퍼티의 값이 변경될 때 원하는 동작을 수행할 수 있습니다. 프로퍼티의 값이 새로 할당될 때마다 호출하며 변경되는 값이 현재의 값과 같더라도 호출합니다. 프로퍼티 감시자를 적용할 수 있는 프로퍼티는 다음과 같습니다. 저장 프로퍼티 프로퍼티를 재정의해 상속받은 저장 프로퍼티 또는 연산 프로퍼티 단, 상속받지 않은 연산 프로퍼티에는 프로퍼티 감시자를 사용할 필요가 없으며 할 수도 없습니다. 그 이유는 접근자와 설정자를 통해 프로퍼티 감시자를 구현할 수 있기 때문입니다. 프로퍼티 감시자에는 willSet, didSet 두 개의 메서드가 있는데요. 각각 설명해보도록 하겠습니다! willSet 메서드 프로퍼티의 값이 변경되기 직전..
[TIL] 21. 01. 07
12시가 넘어서 8일이 되었지만 7일 TIL을 적어봅시다~ 👑 Today I Learned 오늘은 Swift 프로퍼티에 대해 공부하고 블로그에 포스팅했다. 새로운 것을 알아갈 때마다 신기하고 기분이 좋다😆 2021/01/06 - [Swift] - [Swift] 프로퍼티(Property) - 저장 프로퍼티 2021/01/07 - [Swift] - [Swift] 프로퍼티(Property) - 연산 프로퍼티 그리고 깃허브에 공부한 내용과 코드를 올릴 SwiftPratice 레포지토리를 만들었다📚 오늘은 시간이 많아서 많이 공부해보려고 했지만,, 4시 42분에 '42 seoul' 체크인 미팅 신청이 있어서 이것만 신경 쓰느라 공부가 눈에 들어오지 않았다..(다행히 신청 성공..!!) 🧐느낀 점 공부한 것을 깃에..
[TIL] Start!
먼저 TIL은 Today I Learned 약어로 오늘 배운 내용을 정리한다는 뜻이다. TIL을 시작하게 된 계기 방학 동안 무엇을 하면 좋을지 검색해보다가 우연히 많은 사람들의 TIL을 보게 되었다. 혼자 뒹굴거리며 게으르게 살았던 나를 바꿀 수 있는 기회라고 생각했다. 하루하루 기록하다 보면 기록을 위해서 스스로 공부를 하고 공부한 것들을 정리하며 하루를 돌아볼 수 있을 것 같아서 시작하게 되었다. 후에 내가 작성한 TIL을 보면서 뿌듯해하는 나의 모습을 떠올리면서,,Start❗️ 일단 방학동안 도전해보려고 한다👊 🔥작성 규칙 하루동안 공부한 내용이나 개발 관련 경험을 기록으로 남기기 (블로그 내에 다른 카테고리에 정리했다면 링크 걸어놓기!) 기억해야 할 점이 있다면 기록하기 주 4일이상 포스팅하기 ..
[Swift] 프로퍼티(Property) - 연산 프로퍼티
💡연산 프로퍼티 (Computed Properties) 연산 프로퍼티는 실제 값을 저장하는 프로퍼티가 아니라, 특정 상태에 따른 값을 연산하는 프로퍼티입니다. 인스턴스 내/외부의 값을 연산하여 적절한 값을 돌려주는 접근자(getter)의 역할이나 은닉화된 내부의 프로퍼티 값을 간접적으로 설정하는 설정자(setter)의 역할을 할 수도 있습니다. 🧐 여기서 "메서드를 두고 왜 굳이 프로퍼티를 쓸까?"라는 의문이 들 수도 있는데요..! 인스턴스 외부에서 메서드를 통해 인스턴스 내부 값에 접근하려면 메서드를 두 개(접근자, 설정자) 구현해야 합니다. 그럼 두 메서드가 분산 구현되어 코드의 가독성이 나빠질 위험이 있습니다. 따라서 프로퍼티가 메서드 형식보다 훨씬 더 간편하고 직관적이라고 합니다~! 다만 연산 프..
[Swift] 프로퍼티(Property) - 저장 프로퍼티
💡프로퍼티 (Property) 프로퍼티는 클래스, 구조체 또는 열거형 등에 관련된 값을 뜻합니다. 프로퍼티는 크게 5가지로 나눌 수 있습니다. 1. 저장 프로퍼티 2. 지연 저장 프로퍼티 3. 연산 프로퍼티 4. 프로퍼티 감시자 5. 타입 프로퍼티 하나씩 순서대로 살펴보겠습니다~! 💡 저장 프로퍼티 (Stored Properties) 저장 프로퍼티는 인스턴스의 변수 또는 상수를 의미합니다. 즉, 클래스 또는 구조체의 인스턴스와 연관된 값을 저장하는 가장 단순한 개념의 프로퍼티입니다. var 키워드를 사용하면 변수 저장 프로퍼티, let 키워드를 사용하면 상수 저장 프로퍼티가 됩니다. 다음은 가장 기본적인 저장 프로퍼티 선언과 인스턴스 초기화하는 방법입니다. // 좌표 struct CoordinatePoi..
[Swift] 구조체와 클래스
구조체와 클래스는 프로그래머가 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용합니다. 또한 프로퍼티와 메서드를 사용하여 구조화된 데이터와 기능을 가질 수 있습니다. 즉, 하나의 새로운 사용자 정의 데이터 타입을 만들어 주는 것입니다. 이러한 구조체와 클래스는 서로 비슷하거나 다음과 같은 공통점이 많습니다. 값을 저장하기 위해 프로퍼티를 정의할 수 있습니다. 기능 실행을 위해 메서드를 정의할 수 있습니다. 서브 스크립트 문법을 통해 구조체 또는 클래스가 갖는 값(프로퍼티)에 접근하도록 서브 스크립트를 정의할 수 있습니다. 초기화될 때의 상태를 지정하기 위해 이니셜라이저를 정의할 수 있습니다. 초기 구현과 더불어 새로운 기능 추가를 위해 익스텐션을 통해 확장할 수 있습니다. 특정 기능을 실행하기 위해 특정..
[Swift] 옵셔널(Optional)
💡옵셔널(Optional) 옵셔널은 스위프트의 특징 중 하나인 안전성을 문법으로 담보하는 기능입니다. 옵셔널을 직역하면 '선택적인'이라는 뜻을 가지고 있는데요. 즉, 값이 있을 수도, 없을 수도 있다는 것을 나타냅니다. 그럼 예를 하나 들어볼까요? Int 타입의 변수에 0을 할당하고 Srtring 타입의 변수에 ""로 빈 문자열을 만들었다면 이 두 개의 변수는 모두 값이 없다는 의미일까요? 정답은 땡❗️0과 ""빈 문자열 모두 하나의 값이지, 값이 없는 것은 아닙니다. 그렇다면 값이 없을 때는 어떻게 표현해야 될까요? 바로 nil로 표현하면 됩니다. 따라서 옵셔널을 읽을 때는 '변수나 상수가 nil일 수도 있으므로 사용에 주의하라'는 뜻으로 받아들일 수 있습니다. 이제 옵셔널을 한번 사용해 볼까요?✨ v..
[Swift] 함수(Function) - 매개변수
💡매개변수(Parameter) 함수를 정의할 때 외부로부터 받아들이는 전달 값의 이름을 의미합니다. 💡전달인자(Argument) 함수를 실제로 호출할 때 전달하는 값을 의미합니다. 매개변수가 없는 함수 함수에 매개변수가 필요 없다면 매개변수 위치를 공란으로 비워둡니다. func helloWorld() -> String { return "Hello, world" } print(helloWorld()) // Hello, world 매개변수가 여러 개인 함수 매개변수가 여러 개인 함수를 정의할 때는 쉼표(,)로 매개변수를 구분합니다. 호출 시에는 매개변수 이름(Parameter Name)을 붙여주고 콜론(:)을 적어준 후 전달인자를 보내줍니다. func greeting(myName: String, yourNa..