원문 : 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
- sliver
- swiftmigration
- analysis_options
- flutter 3.7
- slivers
- jsonserializable
- flutter3.7
- 플러터업데이트
- flutter
- ios
- flutter_lints
- 플러터네이티브
- jsonkey
- tojson()
- 오블완
- 플러터
- flutter updates
- 플러터ios애니메이션
- fromjson()
- 개발신입
- 다트문법
- 낙관적 업데이트 패턴
- 티스토리챌린지
- sliverlist
- 렌더링최적화
- 오블완챌린지
- lints
- SWIFT
- 플러터 업데이트
- llm 설치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |