오늘은 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 문법과 결합하여 동기 코드처럼 읽히면서도 ..
이번엔 실시간 데이터 스트리밍 로직을 한번 공부해보기 위해 WebSocket의 대한 개념과 Starstream에 대한 내용을 한번 알아보고자 한다!먼저 WebSocket은 클라이언트와 서버 간의 전이중 통신을 지원한다. 이 말의 뜻은 양측이 동시에 데이터를 주고 받을 수 있음을 의미하며, 실시간 채팅, 금융 데이터 스트리밍, 온라인 게임 등 빠른 응답이 필요한 앱에서 주로 사용되곤 한다. HTTP는 요청-응답 방식으로, 매번 새로운 연결을 생성하지만, WebSocket은 초기 핸드쉐이크를 통해 한 번 연결이 성립되면 그 연결은 지속적으로 유지되는 특징을 가지고 있다. 이로 인해 반복적인 연결 설정 비용이 줄어들고, 실시간 데이터 전송에 최적화 된다!! 아주 중요한 개념이니 꼭 잊지 말도록 하자. WebS..
이번에 OpenSMILE이라는 C언어 기반의 라이브러리를 연동해 기능을 구현해야하는 상황이 생겨 Objective-C 코드를 Swift에서 연결해 사용하는 방법에 대해 설명하려고 한다 🙂먼저 Swift에서는 C 또는 Objective-C 코드를 직접 “import”해서 사용할 수 없다 대신 Bridging Header라는 특별한 헤더 파일을 만들고 그 안에 연결하고 싶은 오브젝티브씨 파일을 입포트해 구문을 작성하면 Swift 컴파일러가 해당 언어들을 인식하여 Swift 코드에서 사용할 수 있게 된다. Bridging Header는 Objective-C에서 정의된 클래스, 함수, 상수들을 Swift에서 쓸 수 있게 해주는 다리역할을 한다고 생각하면 된다 🙂먼저 파일을 생성해주기 위해 Command+N ..
오늘은 fastlane를 활용해서 배포 자동화를 통해 테스트플라이트 혹은 배포 시 수월하게 할 수 있는 툴을 사용해보고자 한다. 또한 협업하는 과정에서 인증서를 개별적으로 관리하게 되면 번거로울 뿐 만 아니라 많은 문제가 생겨 시간을 잡아먹을 수 있는데 fastlane의 match를 활용해서 하나의 인증서로 팀원들도 배포자동화를 할 수 있는 환경을 한번 세팅해보자! fastlane 설치하기먼저 fastlane를 설치하기 위해 홈브루를 활용해 간편하게 설치한다brew install fastlane터미널에 넣어주면 간편하게 설치가 완료된다. 그 다음 프로젝트 루트로 이동해서 해당 하는 프로젝트에 fastlane를 초기화 해준다현재 fastlane를 적용할 프로젝트로 이동 후 → fastlane 초기화 fas..