iOS

    AVFAudio - AVAudioSession<img src=">

    AVFAudio - AVAudioSession

    AVFAudio AVFAudio는 재생, 녹음, 오디오 처리와 같이 앱에서 시스템 오디오 동작을 구성할 때 사용하는 프레임워크 입니다.아래와 같이 다양한 클래스들이 존재하는데, 오늘은 AVAudioSeesion에 대해 학습해보려고 합니다. AVAudioSessionAn audio session acts as an intermediary between your app and the operating system — and, in turn, the underlying audio hardware. You use an audio session to communicate to the operating system the general nature of your app’s audio without detailing..

    MVC, MVVM, Clean Architecture 정리

    MVC, MVVM, Clean Architecture 정리

    iOS에서 자주 사용되는 아키텍쳐 패턴들에 대해 어렴풋이 알고 있던 지식들을 정리하고, 부족한 부분들을 학습하기 위해 작성한 글로 개인적인 생각이 많이 포함되어 있습니다.틀린 내용이나 지적할만한 부분은 댓글로 남겨주시면 감사하겠습니다! 아키텍쳐 패턴이 필요한 이유 혼자서 개발할 땐 코드를 어떻게 짜든 크게 문제되지 않는다.하지만 회사를 비롯해 여러 사람들과 함께 대규모 어플리케이션을 개발하다보면 비효율이 발생하고 이는 생산성 저하로 이어질 것이다.팀원마다 코드 작성 방식이 다르다면 일관성 없는 코드 구조가 될 가능성이 높고, UI와 비즈니스 로직이 강하게 결합된 코드가 작성될 우려도 있다. 일관성 없는 코드 구조는 어떤 문제가 발생할까?남이 작성한 코드를 수정하기 위해서 어디를 고쳐야할 지 찾기 위해 많..

    nohup 명령어를 사용해도 서버가 꺼지는 문제

    nohup 명령어를 사용해도 서버가 꺼지는 문제

    리눅스 환경에서 서버를 백그라운드에서 실행시켜놓기 위해 nohup 명령어를 사용했다.하지만 자꾸 서버가 꺼지는 문제가 발생했고, 그럴 때마다 수동으로 다시 실행시켜주었다.하지만 이대로면 불침번을 서가며 서버를 켜야할 것 같아 문제 해결에 나섰다.Vapor 가 문제?가장 먼저 의심했던건 애석하게도 Vapor 프레임워크였다.분명 Node.js 서버를 nohup node main.js & 명령어를 통해 백그라운드에서 실행해두었을 땐 멀쩡했는데, Vapor 서버로 바꾸고 나서부터 이런 일이 발생했다고 생각해 Vapor를 의심했다.하지만 구글링도 해보고 vapor run 명령어에 관련 옵션이 있는지 문서도 찾아보았지만 별다른게 없었다.터미널 강제종료그 다음 의심한건 나의 터미널이다.다시 서버를 구동시키기 위해 터..

    Tuist 없이 모듈 만들기 with DemoApp

    Tuist 없이 모듈 만들기 with DemoApp

    모듈화는 Tuist가 있어야만 할 수 있을까요? 그렇지 않습니다. Tuist나 XCodeGen 과 같은 모듈화를 도와주는 도구들도 코드나 yml을 아래에서 설명할 형태로 바꿔주는 것이에요ㅎㅎ 그렇기 때문에 도구 없이도 모듈화를 할 수 있어야합니다. Tuist없이 모듈을 하나 만들어보겠습니다. 현재 모듈 구조는 아래와 같습니다. 여기서 TestFeature 라는 모듈을 하나 만들어 볼거에요.File - New - Project 를 눌러줍니다.그리고 Framework(Dynamic Framework)를 골라줍니다.모듈명을 설정하고Add to, Group을 xcworkspace 를 지정해 워크스페이스에 들어가도록 설정하고 create를 눌러 모듈을 생성합니다.짜잔 모듈이 생겼어요.이 헤더 파일을 objc와 브..

    네이버 클라우드 VPC 서버에 연결이 되지 않는 문제

    네이버 클라우드 VPC 서버에 연결이 되지 않는 문제

    WebRTC 시그널링 서버를 배포하기 위해 네이버 클라우드 서비스를 사용해보았다.하지만 서버의 public IP로 핑도 안나가고, 클라이언트에서 연결도 안되는 문제가 발생했는데, 해결한 과정을 간단하게나마 기록해보려고 한다. 우선 아래처럼 서버로 핑을 날려보아도 응답이 오지 않았고, ip를 잘못 입력했나싶어 이것저것 바꾸어보았지만 전부 실패했다. 천천히 생각해보기그리고 처음으로 돌아가보기로 생각했고, 서버에 핑은 나가지만 타임아웃이라는건데 왜 응답을 주지 않지? 방화벽에 막히는게 아닐까? 라는 생각이 들었다.그래서 네이버 클라우드 문서를 찾아보며 구조를 이해해보았다.그리고 아래 그림과 같이서브넷의 접근을 관리하는 NACL과 서브넷 내에 있는 서버에 접근을 관리하는 ACG가 존재한다는 걸 알게 되었다.네이..

    Swift Concurrency - Sendable

    Swift Concurrency - Sendable

    Swift6부터 Sendable 관련 경고나 에러가 너무 많이 뜨더라구요.Concurrency도 모르고 Sendable도 모르는데..!그래서 Sendable 애플 공식문서와 swift docs를 읽고 감을 익혀보려고 합니다.먼저 애플 공식문서부터 읽어볼게요! 애플 공식문서 링크: https://developer.apple.com/documentation/swift/sendableSwift docs 링크: https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/#Sendable-TypesSendable 이란?protocol Sendable 데이터 레이스 위험(a risk of data races) 없..