🍎 Swift80 [Swift🍎] 타입 메서드와 타입 프로퍼티(Type Method, Type Property) 그리고 객체지향프로그래밍 또 복습하다가 나온 그동안 헷갈렸던 타입 메서드&프로퍼티 개념을 정리해봤다그냥 이렇게 쓰는구나 ❌ → 왜? 이렇게 쓰는지에 중점적으로 정리했음 01. 타입 메서드와 타입 프로퍼티(Type Method, Type Property)타입 메서드와 타입 프로퍼티는 클래스, 구조체, 열거형의 타입 자체에 속한다즉 인스턴스를 생성하지 않아도 직접 타입에서 호출할 수 있으며 static 키워드를 사용한다*프로퍼티: class, struct, enum에서 사용되는 상수나 변수 02. 인스턴스 프로퍼티와 타입 프로퍼티일반적인 경우인 인스턴스 프로퍼티는 객체(인스턴스)를 만들어서 사용한다아래 코드에서 name과 age는 인스턴스 프로퍼티라서 p1와 같은 객체를 만들어야 접근이 가능하다struct Person {.. 2025. 2. 20. [Swift🍎] Struct&Enum에서 mutating의 역할 오랜만에 강의를 돌려보던 중 mutating이라는 생소한 것을 봤다그래서 좀 찾아봄 mutating이란?값 타입인 구조체(struct)와 열거형(enum)에서 인스턴스의 프로퍼티를 메서드 내부에서 변경할 수 있음 예를 들면 Int타입의 변수 count의 값에 1씩 추가하는 함수 increment를 만든다고 가정하자 이 코드에서 Struct(구조체)인 Counter는 값 타입(Value Type)이므로, 인스턴스가 복사 되어 전달된다즉, 구조체 내부의 인스턴스는 불변 메서드로 간주된다(immutable) mutating 키워드를 사용하게 되면 self를 변경할 수 있는 메서드가 되어 count 프로퍼티를 수정할 수 있다→ count에 +1이 잘 되어 출력된다 반면 class는 참조타입이므로 se.. 2025. 2. 19. [Swift🍎] rawValue: 원시값 enum 개념에 대해 복습 중에 궁금해서 찾아본 내용 enum의 각 case에 특정한 값(원시값, rawvalue)를 아래와 같이 할당하여 사용한다enum Season: String { case spring = "봄" case summer // 원시값을 생략하면 case 이름과 같은 문자열이 자동으로 할당됨 case autumn case winter}spring의 경우 "봄"이라는 값을 가지고 있다나머지 summer, autumn, winter의 경우 별도의 값을 지정해 주지 않았으므로, case이름과 동일한 string 값을 갖게 된다 let season = Season.springprint(season.rawValue) // 출력: 봄Season.spring의 원시값은 "봄" .. 2025. 2. 13. [스터디14일차][RxSwift] Traits Traits란?특정한 상황에서 사용하기 쉽게 미리 정의된 Observable의 특별한 형태Single, Completable, Maybe 세 가지 종류가 있다 Single: 한 번만 값을 방출한다오직 하나의 값(.success(value)) 또는 에러(.failure(error))를 방출하는 Observable자동으로 완료되며 값을 받고나면 더이상 방출되지 않는다 예제 1 - just 정해진 값을 그대로 반환할 때 사용import RxSwiftlet single = Single.just("Hello, Single!")single.subscribe(onSuccess: { value in print(value)}) 예제 2 - create 비동기 작업과 같은 상황에서 사용된다(ex. API 요청.. 2025. 2. 7. [스터디13일차][RxSwift] 테이블뷰 RxSwift 사용 시 UITableViewDataSource와 UITableViewDelegate를 직접 구현할 필요가 없다기존에 사용하던 방식에서는 이 두 가지를 Extention으로 분리해서 관리를 했었는데, Rx 바인딩을 통해 모두 처리할 수 있어서 코드가 간결해진다! ✅ RxSwift 사용 시 변경되는 것(요약)UITableViewDataSource 구현 → 없어짐 (bind(to:)로 대체)UITableViewDelegate 구현 → 없어짐 (rx.modelSelected(_:) 등으로 대체)tableView.reloadData() 호출 → 자동 업데이트DispatchQueue.main.async 필요 → Observable이 알아서 UI 스레드에서 실행indexPath.row를 직접 다루는.. 2025. 1. 31. [스터디12일차][RxSwift] Subscribe & Bind & Driver 공통점으로는 Observable이나 Driver의 데이터를 구독하거나, UI를 바인딩하는데 사용된다는 점이 있다하지만 각각의 목적과 동작 방식이 다르다 1. Subscribe가장 기본적인 구독 메서드이며 onNext, onError, onCompleted를 가지고 있으며, 옵저버블의 이벤트 타입에 대한 직접 처리가 가능하다주로 데이터 스트림에서 변화를 감지하고 이벤트를 수동으로 처리할 때 사용한다 내부 로직을 보면 onNext, onError, onCompleted에 대한 처리를 하고 있다 2. BindUI에 데이터를 바인딩할 때 사용되며 onNext만 가지고 있어, 에러를 방출하지 않는 옵저버블과 함께 사용된다주로 onNext 이벤트만 처리하며 에러 핸들링 로직을 가지고 있지 않다 → 오로지 U.. 2025. 1. 22. 이전 1 2 3 4 ··· 14 다음