[AVFoundation]테스트 가능한 오디오 관리 객체 설계하기
문제 소리가 정상적으로 입, 출력되는지 테스트하기 위해선 오디오 인터페이스부터 기타까지 실제로 연결해야만 테스트 할 수 있는 환경이었고, 그 결과 비효율적인 작업이 반복되었습니다. 원인 분석 AudioManager가 너무 많은 역할을 하다보니 필연적으로 코드가 길어지게 되었습니다. mark 주석으로 역할을 구분해두었지만 함수 내에서 다른 함수를 ...
문제 소리가 정상적으로 입, 출력되는지 테스트하기 위해선 오디오 인터페이스부터 기타까지 실제로 연결해야만 테스트 할 수 있는 환경이었고, 그 결과 비효율적인 작업이 반복되었습니다. 원인 분석 AudioManager가 너무 많은 역할을 하다보니 필연적으로 코드가 길어지게 되었습니다. mark 주석으로 역할을 구분해두었지만 함수 내에서 다른 함수를 ...
오디오 실시간 처리를 위해 AVAudioEngine에 대해 학습하려고 했더니 꼬리에 꼬리를 무는 배경 지식이 필요했다. AVAudioEngine -> AVAudioNode -> AVAudioPCMBuffer -> Frame -> Sample -> … 위와 같은 순서로 배경 지식에 대한 의존성이 발생했다. 이렇게 꼬리를 물...
AVFAudio AVFAudio는 재생, 녹음, 오디오 처리와 같이 앱에서 시스템 오디오 동작을 구성할 때 사용하는 프레임워크 입니다. 아래와 같이 다양한 클래스들이 존재하는데, 오늘은 AVAudioSeesion에 대해 학습해보려고 합니다. AVAudioSession An audio session acts as an in...
iOS에서 자주 사용되는 아키텍쳐 패턴들에 대해 어렴풋이 알고 있던 지식들을 정리하고, 부족한 부분들을 학습하기 위해 작성한 글로 개인적인 생각이 많이 포함되어 있습니다. 틀린 내용이나 지적할만한 부분은 댓글로 남겨주시면 감사하겠습니다! 아키텍쳐 패턴이 필요한 이유 혼자서 개발할 땐 코드를 어떻게 짜든 크게 문제되지 않는다. 하지만 회사를 비롯해 ...
리눅스 환경에서 서버를 백그라운드에서 실행시켜놓기 위해 nohup 명령어를 사용했다. 하지만 자꾸 서버가 꺼지는 문제가 발생했고, 그럴 때마다 수동으로 다시 실행시켜주었다. 하지만 이대로면 불침번을 서가며 서버를 켜야할 것 같아 문제 해결에 나섰다. Vapor 가 문제? 가장 먼저 의심했던건 애석하게도 Vapor 프레임워크였다. 분명 Node.js ...
모듈화는 Tuist가 있어야만 할 수 있을까요? 그렇지 않습니다. Tuist나 XCodeGen 과 같은 모듈화를 도와주는 도구들도 코드나 yml을 아래에서 설명할 형태로 바꿔주는 것이에요ㅎㅎ 그렇기 때문에 도구 없이도 모듈화를 할 수 있어야합니다. Tuist없이 모듈을 하나 만들어보겠습니다. 현재 모듈 구조는 아래와 같습니다. 여기서 Test...
서버에 연결이 안되던 문제 WebRTC 시그널링 서버를 배포하기 위해 네이버 클라우드 서비스를 사용해보았다. 하지만 서버의 public IP로 핑도 안나가고, 클라이언트에서 연결도 안되는 문제가 발생했는데, 해결한 과정을 간단하게나마 적어보려고 한다. 아래처럼 핑을 날려보아도 응답이 오지 않았고, ip를 잘못 입력했나싶어 이것저것 바꾸어보았지만 전...
VPC vs Classic 서버 인스턴스를 만드려면 서버를 띄울 VPC가 먼저 있어야 한다. VPC란? Virtual Private Cloud의 약자로, 클라우드 컴퓨팅 환경에서 사용자가 정의하고 관리할 수 있는 격리된 네트워크 영역을 뜻한다. 자세한 설명은 네이버 클라우드 VPC 링크 참고 VPC 생성 VPC와 Classic 두가지 모드가 존...
Swift6부터 Sendable 관련 경고나 에러가 너무 많이 뜨더라구요. Concurrency도 모르고 Sendable도 모르는데..! 그래서 Sendable 애플 공식문서와 swift docs를 읽고 감을 익혀보려고 합니다. 먼저 애플 공식문서부터 읽어볼게요! 애플 공식문서 링크: https://developer.apple.com/document...
Swift6가 나오면서 컴파일 단계에서 동시성 문제를 강하게 잡더라구요. 그래서 더 이상 Swift Concurrency 공부를 미룰 수 없겠다 싶어 차근차근 학습해보려고 합니다. 오늘은 Task에 대해서 공식문서와 함께 알아볼거에요. Task 공식 문서: https://developer.apple.com/documentation/swift/tas...