@DynamicProperty
·
Programing Langauge/swift
어디서 봤을까? @State, @Environment, @ObservedObject 같은 property wrapper에서 발견된다. 이들의 공통점은 뭘까?? 🧩 역할An interface for a stored variable that updates an external property of a view. 뷰를 업데이트 하는 외부 저장 변수에 대한 인터페이스조금말이 어렵다. 간단히 얘기하면, 뷰 상태에 영향을 주는 객체는 채택해야한다는 것! SwiftUI가 이 프로퍼티의 변화를 자동으로 추적해야 한다”는 것을 컴파일러와 런타임에게 알려주는 역할DynamicProperty를 채택한 프로퍼티는 SwiftUI의 view 업데이트 사이클과 연동되어 자동으로 갱신 🧱 구조public protocol Dyn..
@resultBuilder
·
Programing Langauge/swift
👋 들어가기 전 오픈소스를 보고 있다가, 신기한 attribute가 있어서 학습해보려고한다. 그 주인공은 바로 @resultBuilder라는 attribute다.🏁 학습할 내용DSL이란@resultBuilder🧩 DSL이란뜬겂없긴한데, 생각보다 요즘 공부하다보면 생각보다 자주 나오는 단어다.DSL은, Domain Specific Language로, 특정한 목적(도메인)에 특화된 언어다. 즉, 일반적인 프로그래밍 언어가 아니라, 특정 문제를 해결하기위한 언어다. 개발자면 사실, 많이 마주쳐봤다. 대표적으로 뭐가 있을까??HTMLSQL무슨 느낌인지 감이온다. HTML -> 웹페이지라는 특정 도메인에 특화된 언어SQL -> 데이터베이스라는 특정 도메인에 특화된 언어, 그렇다면 Swift는 DSL일까??,..
@autoclosure
·
Programing Langauge/swift
🤖 @autoclosure 🏋️ 역할 함수 인자로 전달되는 표현식을 자동으로 클로저로 감싸주는 속성(attribute)지연 평가 (lazy evaluation)를 가능하게 해주는 문법적 편의 장치 🧬 탄생 계기 swift함수는 모든 인자를 미리 평가(eager evaluation) 한다.그래서 다음과 같은 코드를 실행하면, heavyComputation의 결과가 false여도, 이미 실행이됨 func debugLog(_ message: String) { if isDebug { print(message) }}debugLog("결과: \(heavyComputation())") 일시적인 해결방법으로는 아래와 같이 클로저로 감싸야했다.이렇게 되면, 호출하기 전까지는 실행되지 않음fu..
rethrows
·
Programing Langauge/swift
🥊 rethrows 🎯 목표아래 상황과 같이, 클로저에서 에러를 던질 때(throw)할 때, 어떻게 던질 수 있을까?enum CustomError: Error { case divideByZero}func divide(number: Int, divisor: Int) throws -> Int { if divisor == .zero { throw CustomError.divideByZero } return number / divisor}func calculate(function: (Int, Int) throws -> Int) { throw function(10, 0) // ⚠️ Thrown expression type 'Int' does not conform ..
[구현 연습] 컴파일러 이론을 이용한, JsonDecoder
·
Programing Langauge/Kotlin
👋 들어가기 전뜬금 없지만, 구현력 문제를 코틀린으로 조금씩 정리해볼 생각이다. 약간 혼자만의 부트캠프 같은 느낌?? 역시 언어 문법 늘리는데는 구현만한게 없다..🏁 학습할 내용File readenum classseald classStack컴파일러 이론 Tokenizer, Lexer, ParserReflection🗒️문제주어진 json 데이터를 이용해, Playlist 코틀린 객체로 파싱해라{ "playlistName": "드라이브할 때 듣기 좋은 노래", "createdAt": "2025-08-25", "songs": [ { "title": "Dynamite", "artist": "BTS", "album": "BE", "duration": 199 ..
pip install 명령어 에러
·
Programing Langauge/python
😭 에러 상황 📋 본문 대충 해석하면 이렇다.homebrew로 설치된 python은 외부 관리 환경이라서, pip install을 직접 하면 충돌 가느성이 존재시스템 보호를 위해 pip가 설치를 막음대신, venv(가상환경)에 설치하는 것을 권장 🔧 해결 🖥️ 가상환경 만들기 현재 폴더에 venv/라는 디렉토리안에 독립된 파이썬 환경 생성python3 -m venv venv 🏃 가상환경 활성화 // Linux / macOSsource venv/bin/activate// Windows (PowerShell).\venv\Scripts\Activate.ps1 활성화 되면, 터미널에 (venv)가 붙게 됨 📦 패키지 설치 pip inatll requets 🛑 가상환경 비활성화deactivate ?..