원문: https://www.hackingwithswift.com/swift/5.9/convenience-asyncthrowingstream-makestream Swift 5.9의 새로운 기능: AsyncStream과 AsyncThrowingStream의 makeStream 메소드 Swift 5.9에서는 SE-0388이라는 제안을 도입하여, AsyncStream과 AsyncThrowingStream에 makeStream() 메소드를 추가했다. 이 메소드는 스트림과 그 연속성을 동시에 반환하는 기능을 가지고 있다. 여기서 단어의 의미를 한번 짚고 넘어가자면, '스트림'이란 데이터를 순차적으로 처리하는 흐름 같은 걸 의미한다. 그리고 이 데이터들이 어떻게 생성되고 끝나는지를 관리하는 걸 '연속성'이라고 부른..
원문: https://www.hackingwithswift.com/swift/5.9/consume-operator Swift에서 Consume 연산자를 이해하고 사용하기 Swift의 새로운 기능인 consume 연산자는 값의 Lifetime을 명시적으로 끝내는데 사용되며, 이를 통해 개발자가 데이터가 전달될 때 발생하는 불필요한 retain/release 호출을 줄일 수 있다. 기본 사용법 struct User { var name: String } func createUser() { let newUser = User(name: "Anonymous") let userCopy = consume newUser // [✨] print(userCopy.name) } createUser() `// [✨]` 이 주석..
원문 : https://www.hackingwithswift.com/swift/5.9/noncopyable-structs-and-enums SE-0390에서는 복사할 수 없는 구조체와 열거형 개념을 도입하여 구조체나 열거형의 단일 인스턴스를 여러 곳에서 공유할 수 있게 되었으며, 궁극적으로 소유자는 여전히 한 명이지만 이제 코드의 여러 부분에서 액세스할 수 있게 되었다. 중요: 이 변경 사항에는 여러 가지 미묘한 점이 있으므로 아래에서 명확히 설명하려고 노력했지만, 몇 가지 사항을 몇 번 읽어야 한다고 해도 놀라지 말자. 첫째, 이 변경 사항에는 요구 사항을 억제하는 새로운 구문인 ~Copyable이 도입되었다. 이는 "이 유형은 복사할 수 없습니다"라는 의미이며, 이 억제 구문은 현재 다른 곳에서는 사..
원문 : https://www.hackingwithswift.com/swift/5.9/macros SE-0382, SE-0389, SE-0397이 결합되어 컴파일 시 구문을 변환하는 코드를 생성할 수 있는 '매크로' 기능 C++에서 매크로는 코드를 전처리하는 방법으로, 메인 컴파일러가 코드를 보기 전에 코드의 텍스트 교체를 효과적으로 수행하여 손으로 작성하고 싶지 않은 코드를 생성할 수 있다. Swift의 매크로는 이와 비슷하지만 훨씬 더 강력하며, 따라서 훨씬 더 복잡하다. 또한 매크로를 사용하면 프로젝트의 Swift 코드가 컴파일되기 전에 동적으로 조작할 수 있으므로 컴파일 시점에 추가 기능을 삽입할 수 있다. 핵심 사항: 매크로는 단순한 문자열 대체가 아닌 유형 안전성이 있으므로 매크로가 작동할 데..
원문 : https://www.hackingwithswift.com/swift/5.9/if-switch-expressions 기능 매개변수 팩으로 다양한 타입을 묶어 사용하기 struct FrontEndDev { var name: String } struct BackEndDev { var name: String } struct FullStackDev { var name: String } 위와 같은 구조체 3개가 있다고 가정해보자. let johnny = FrontEndDev(name: "Johnny Appleseed") let jess = FrontEndDev(name: "Jessica Appleseed") let kate = BackEndDev(name: "Kate Bell") let kevin = B..
원문 : https://www.hackingwithswift.com/swift/5.9/if-switch-expressions 기능 if 와 switch를 표현식으로 사용할 수 있게 되었다. // if 문 예시 let score = 800 let simpleResult = if score > 500 { "Pass" } else { "Fail" } print(simpleResult) // switch 문 예시 let complexResult = switch score { case 0...300: "Fail" case 301...500: "Pass" case 501...800: "Merit" default: "Distinction" } print(complexResult) 이를 함수에 응용하면 아래와 같이 쓸..
Swift의 `@unknown` 키워드를 많이 쓰시나요? 최근 기초를 다지면서 '이런 키워드도 있었지..!' 하고 글을 작성해봅니다. 먼저 회사에서 제가 아래와 같이 코드를 짰다고 가정해볼게요. enum Menu { case chicken case pizza } let dinner: Menu = .chicken switch dinner { case .chicken: print("치킨") case .pizza: print("피자") case _: // `case default`와 같은 표현! print("메뉴가 뭔가요?") } Menu 라는 열거형은 값이 정해져 있기 때문에 사실 현재 작성된 case 를 모두 정의해주기만 하면 switch 문에서는 컴파일 오류가 발생하지는 않습니다. 그래도 코드는 언제든 ..
집합은 같은 타입의 서로 다른 값을 중복 없이 저장할 때 사용하는 집단 자료형이다. 배열과 매우 유사하지만 다른 점은 순서가 없다는 것과 중복 값이 없다는 것! 집합에 저장할 데이터 타입은 해시 연산을 할 수 있는 타입이어야 한다. 왜냐하면 내부적으로 해시(Hash) 연산의 결과값을 이용하여 데이터를 저장하기 때문이다. 해시 연산(Hash Algorithm)? 임의의 입력 값을 고정 길이의 데이터 크기로 변환해주는 알고리즘이다. 너무 길거나 너무 짧은 값이라도 고정 길이의 데이터로 저장이 가능하다! 주로 복호화가 필요 없는 암호화에 많이 사용된다고 한다. 많이 알려진 해시 알고리즘에는 MD5, SHA1, SHA256 등이 있다. Swift에서 집합을 정의하는 방법 2가지 1. 초기값을 사용하여 바로 정의..
- Total
- Today
- Yesterday
- 싱글톤
- CellStyle
- swift5.9
- SWIFT
- ios
- Swift Conference
- it seminar
- 자바
- 의존성
- 핵심내용
- AsyncSwift Korea Seminar
- 이코테
- UITableViewCell
- 꼼꼼한 재은 씨의 스위프트 문법편
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |