Decodable은 Swift에서 제공하는 프로토콜로, JSON과 같은 외부 데이터를 Swift 객체로 변환할 때 사용됩니다. 주로 API로부터 받은 JSON 데이터를 Swift 구조체나 클래스로 쉽게 변환하기 위해 사용되며, 이를 디코딩(Decoding)한다고 합니다. Decodable을 사용하면 각 속성을 일일이 매핑하지 않아도 Swift가 자동으로 데이터를 적절한 속성으로 매핑해줍니다.Decodable의 기본 사용법Decodable 프로토콜을 사용하려면, 먼저 디코딩하려는 Swift 구조체 또는 클래스가 Decodable 프로토콜을 채택해야 합니다.1. 간단한 구조체 예시struct User: Decodable { let id: Int let name: String let email..
private init() {}는 스위프트에서 생성자(initializer)를 private으로 설정하는 구문입니다. 이 코드는 싱글톤 패턴(Singleton Pattern)을 구현할 때 주로 사용됩니다.private init()의 의미init(): 클래스나 구조체의 생성자로, 이 생성자가 호출되면 객체가 생성됩니다.private: 접근 제어자 중 하나로, 해당 생성자가 외부에서 호출되지 않도록 제한합니다. 즉, 클래스 내부에서만 객체를 생성할 수 있게 됩니다.왜 private init()을 사용하는가?private init()을 사용하면 외부에서 직접적으로 객체를 생성할 수 없게 됩니다. 이렇게 하면 하나의 클래스 또는 구조체의 인스턴스를 단 하나만 만들 수 있도록 보장할 수 있는데, 이 기법은 싱글톤..
@escaping은 스위프트에서 클로저를 사용하는 함수나 메서드를 정의할 때 사용하는 키워드로, 클로저가 함수의 실행이 끝난 후에도 실행될 수 있음을 나타냅니다. 클로저는 일종의 코드 블록이나 익명 함수로, 비동기 작업, 콜백, 이벤트 핸들러 등에 자주 사용됩니다.왜 @escaping이 필요한가?스위프트에서 함수는 기본적으로 함수 내부에서 정의된 클로저가 함수의 실행 범위(scope)를 벗어나지 못하도록 제한합니다. 함수가 종료되면 클로저도 함께 소멸하는 것을 보장합니다. 그러나 때로는 클로저가 함수가 끝난 후에도 실행되어야 하는 경우가 있습니다. 이때 @escaping 키워드가 필요합니다.@escaping은 클로저가 함수의 실행 범위를 벗어나도 계속 유지될 수 있다는 것을 나타내며, 아래와 같은 상황에..
클로저(Closure)는 스위프트에서 사용되는 코드 블록으로, 일종의 익명 함수 또는 코드 조각이라고 할 수 있습니다. 함수와 마찬가지로, 특정 작업을 수행하고 값을 반환할 수 있습니다. 하지만, 클로저는 자체적으로 이름이 없으며, 다른 변수나 상수에 저장하거나 함수의 인자로 전달할 수 있습니다.스위프트의 클로저는 익명 함수(Anonymous Function)와 람다 표현식(Lambda Expression)과 유사합니다. 클로저는 함수형 프로그래밍 스타일을 지원하며, 컬렉션 데이터 처리나 비동기 작업 등에 자주 사용됩니다.클로저의 기본 문법클로저는 세 가지 형태를 가지고 있습니다:전역 함수: 이름이 있고 특정 값에 바인딩되지 않는 클로저중첩 함수: 이름이 있고, 특정한 함수의 내부에 정의되는 클로저클로저..
- Total
- Today
- Yesterday
- useEffect
- javascript 필수 문법
- ajax (asynchronous javascript and xml)
- styled-components
- chrome extension 자동 배포
- jackson 라이브러리
- Jest
- react router
- 소프트웨어 버전 관리
- stdlib.h
- named export vs default export
- structuredclone()
- counter
- 중첩 함수(nested function)
- public vs assets
- 실행 중인 프로세스 확인
- react
- pwa(progressive web app)
- 원시값(primitive)
- json.parse(json.stringify())
- core web vitals
- 쉽게 풀어쓴 C언어 Express
- defaultdict
- semver)
- Collections
- math.h
- 프로세스 강제 종료
- 시맨틱 버전(semantic versioning
- x.y.z (메이저.마이너.패치)
- inp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |