오늘은 Static Dispatch & Dynamic Dispatch의 대해 개념적으로 이해를 하고 넘어가보자 이번 면접을 통해 해당 개념을 질문 받았는데 명칭이 생소하다고 느껴서인지 어느정도 개념은 알고 있었지만 제대로 정리가 되어있지 않아 아예 대답을 하지 못했다 ㅠㅠ 끝나고 나와서 찾아보니 아~ 맞다 이런 느낌.. 그래도 이제라도 정리하고 제대로 정리하는 기회를 가져보자! 먼저 Static Dispatch & Dynamic Dispatch에 들어가기 전에 Dispatch에 대해서 먼저 짚고 넘어가자면 메소드나 함수 호출 시점에서 어떤 구현이 실행될지를 결정하는 어떠한 메커니즘이다 정도로 알고 넘어가면 될 것 같다. 내가 호출한 함수를 컴파일 타임에 결정하냐, 런타임에 결정하냐에 따라 방식이 정해지는..
https://developer.apple.com/documentation/swift/sendable/ Sendable | Apple Developer DocumentationA thread-safe type whose values can be shared across arbitrary concurrent contexts without introducing a risk of data races.developer.apple.com SendableSendable은 Swift Concurrency 환경에서 여러 스레드나 액터 간에 안전하게 값을 전달할 수 있음을 보장하기 위한 프로토콜이다. 이는 데이터 경합(data race)과 관련된 문제를 방지하고, 동시성 안전성을 확보하는데 중요한 역할을 한다. Send..
2024.08.19 - [◽️ Programming/T I L] - Swift의 async/await에 대해서 알아보자 Swift의 async/await에 대해서 알아보자Swift 5.5부터 도입된 async/await는 기존의 비동기 처리방식인 DispatchQueue나 completionHandler를 사용해 처리했지만 더욱 직관적이고 관리하기 쉽게 만들어 주는 기능이다. 기존의 비동기 처리 방식과 비dongdida.tistory.com 이전에 async/await 에 대해서 알아보는 시간을 가졌지만 이번엔 Task는 어떤 역할을 담당하고 있는지 한번 살펴보자 TaskTask는 Swift Concurrency에서 비동기 작업을 나타내며, async/await 문법과 결합하여 동기 코드처럼 읽히면서도 ..
이번에 OpenSMILE이라는 C언어 기반의 라이브러리를 연동해 기능을 구현해야하는 상황이 생겨 Objective-C 코드를 Swift에서 연결해 사용하는 방법에 대해 설명하려고 한다 🙂먼저 Swift에서는 C 또는 Objective-C 코드를 직접 “import”해서 사용할 수 없다 대신 Bridging Header라는 특별한 헤더 파일을 만들고 그 안에 연결하고 싶은 오브젝티브씨 파일을 입포트해 구문을 작성하면 Swift 컴파일러가 해당 언어들을 인식하여 Swift 코드에서 사용할 수 있게 된다. Bridging Header는 Objective-C에서 정의된 클래스, 함수, 상수들을 Swift에서 쓸 수 있게 해주는 다리역할을 한다고 생각하면 된다 🙂먼저 파일을 생성해주기 위해 Command+N ..
요즘 Swift Concurrency에 대해서 공부를 하고 있는 중인데 그 중 MainActor의 역할이 아주 중요하게 작용하는 것 같아 한번 정리하고 넘어가고자 한다!!https://developer.apple.com/documentation/swift/mainactor/ MainActor | Apple Developer DocumentationA singleton actor whose executor is equivalent to the main dispatch queue.developer.apple.com 기본적으로 MainActor는 메인 스레드에서 실행되어야 하는 코드가 백그라운드 스레드에서 실행되지 않도록 보장하는 역할을 담당한다.이 역할과 동작방식에 대해서 한번 자세히 알아보도록 하자 Mai..
오늘은 현재 구현하고 있는 Chatbot 프로젝트에서 이미지를 올려 말하는 것 처럼 할 수 있고 이미지의 텍스트를 인식해 보여줄 수 있는 OCR 기능에 대해 찾아보던 중 Vision 프레임 워크가 있다는 것을 알게돼 한번 알아보려고 한다 🙂먼저 Vision 프레임워크는 머신 러닝 기술과 Swift의 동시성 기능을 결합해 앱에서 컴퓨터 비전 작업을 수행할 수 있다. 인간 혹은 동물의 신체 자세 또는 물체의 궤적을 추적한다거나, 텍스트를 인식 하거나, 눈 코 입 등 얼굴의 랜드마크를 감지하는 등 다양한 기능을 제공한다. 먼저 Vision 작업은 요청과 핸들러를 통해 실행되게 되는데 주요 핵심 클래스는 다음과 같다.VNImageRequestHandler : 정적 이미지 요청을 처리하는 클래스VNSequenc..