본문 바로가기
반응형

MacOS92

사심가득 애플소식 - 4월 셋째 주 watchOS 9 뭔가 새로운 OS 소식이 흥미로워야 할 텐데 유독 watchOS나 iPadOS 같은 것은 이상하게 흥미가 가지 않는다. 근데 이유는 명확하다. 내가 애플 워치랑 아이패드를 가지고 있지 않기 때문이다. 난 참 단순한 인간이다. 어쨌든 watchOS 9 소식이 궁금하신 분들을 위해 링크를 남겨둔다. 어차피 WWDC22에서 확실하게 공개될 테니 그걸 기다리는 게 더 좋을지도 모르겠다. watchOS 9: Here's what we know so far about new features, supported devices, and more watchOS 9 is set to be announced in just a few weeks. Here's what we know so far about n.. 2022. 4. 24.
Xcode Playground에서 Swift Package 이용하기 요즘처럼 외부 패키지를 쓸 일이 많은 상황에서 Xcode Playground는 큰 제약 사항이 있다. 외부 패키지를 import 해서 바로 쓸 수 없다는 문제다. 물론 그렇다고 아예 방법이 없는 것은 아니다. 아예 별도의 프로젝트를 하나 생성해서 여기에 Playground 및 패키지를 추가해서 쓰는 방법이 있다. 이미 답은 적었지만 아래에 조금 더 자세히 절차를 나열한다. 별도의 프로젝트 생성 원하는 플랫폼의 원하는 방식으로 프로젝트를 생성한다. 아래 스크린샷은 macOS App 프로젝트를 생성하는 화면이다. Playground 추가 이제 생성한 프로젝트에 플레이그라운드를 추가해주자. 위치는 아무 곳이나 상관없고 New File 메뉴를 이용해 생성하면 된다. 타입이 워낙 많아서 위처럼 검색해서 추가하는 .. 2022. 4. 17.
어느 날 Docker에서 Mongo를 띄우다 WiredTiger 오류를 겪었다 개인적으로 개발환경을 Docker 및 Docker Compose로 구축해서 개발 중인 프로젝트가 있었다. 스토리지 많이 차지하고 램도 많이 먹고 느리고 뭐 하여간 맥에서 사용하기엔 여전히 부담스러운 환경이지만 실제와 유사한 테스트를 하기에 이보다 좋은 환경은 없는 것 같다. 이 개발 환경은 잘 쓰고 있었다. 그런데 바로 전 날에도 잘 돌아가던 이 환경에서 어느 날 갑자기 오류가 발생하기 시작했다. Failed to start up WiredTiger under any compatibility version. This may be due to an unsupported upgrade or downgrade 아마도 -v 옵션으로 로컬에 MongoDB 데이터를 저장하고 이를 연결해서 쓰고 있어서 WiredTi.. 2022. 4. 9.
macOS 12.3.1 그리고 iOS 15.4.1 업데이트 오늘 또 새로운 애플 플랫폼 업데이트들이 올라왔다. macOS Monterey 12.3.1 USB-C 또는 Thunderbolt 외부 디스플레이가 Mac mini(2018년)에 두 번째 디스플레이로 연결되었을 때 켜지지 않는 문제 일부 Beats 헤드폰으로 오디오를 재생한 후 게임 컨트롤러와 같은 Bluetooth 기기가 Mac에서 연결 해제될 수 있는 문제 디스플레이와 블루투스 관련 버그가 수정되었다는 수준의 간단한 마이너 픽스 업데이트다. 아무래도 버그 픽스이니 업데이트하는 편을 권장하겠지만, 아무리 그래도 1기가가 넘는 용량이라는 점은 약간 심한 느낌이다. 그 외에 별다른 보안 패치는 언급되어 있지 않은 것 같다. iOS 15.4.1 iOS 15.4로 업데이트한 후에 배터리가 예기치 않게 빨리 소모.. 2022. 4. 1.
사심가득 애플소식 - 3월 넷째 주 3월 넷째 주 한 주간의 애플 소식을 개인적인 취향으로 사심을 듬뿍 담아 정리해보자. IAP 인기(?) 한국의 IAP(In app purchases, 앱 내 결제) 금지법은 콘텐츠 제공사에겐 당연히 의무가 아니기 때문에 당연하게 결제 방법을 고를 권한이 있다. 불행히도 애플의 IAP만큼 편한 결제 수단을 제공할 방법은 없을 것이기 때문에 웬만해선 IAP를 쓰는 게 맞는 것 같다. 심지어 중소 개발사에겐 수수료도 절반으로 깎아주니 말이다. 강제금지법에도 상위 게임 모두 '인앱결제'채택...'외부결제의무화 우려'시각도 인앱결제 강제금지법(개정 전기통신사업법)이 15일부터 시행됐지만 앱 마켓에서 매출 규모가 가장 큰 게임부문 매출 50개 게임 중 외부결제를 사용하는 게임은 하나도 없는 것으로 확인됐다. 외 w.. 2022. 3. 27.
iOS 15.4, macOS 12.3 업데이트 오늘 iOS 15.4, macOS 12.3 업데이트가 공개되었다. 항상 정리해 둔다는 게 자꾸 깜빡하데 이번에는 발견하자마자 신속하고 간단하게 정리해본다. iOS 15.4 지난번에 공개되어서 화제가 된 "마스크 쓴 채로 Face ID" 기능이 공식적으로 추가되었다. 즉 마스크 쓴 채로 얼굴 인식을 할 수 있다는 말이다. 어떤 나라에서는 이제 마스크 의무화도 해제한다는데 너무 늦은 거 아니냐는 생각도 없지는 않지만, 그래도 미래에 공기로 전염되는 전염병이 또 창궐하지 말란 법은 없기 때문에 반가운 업데이트이면서도 동시에 보안성에 영향이 있는 거 아닌가 하는 걱정도 된다. 다만 이 기능은 아이폰 12 이상 등 최신의 아이폰 장비에서만 동작한다. 물론 그 외에도 여러 업데이트가 있다. 대략 정리하자면 이렇다... 2022. 3. 15.
mdfind로 터미널에서 파일 검색하기 mdfind는 macOS에서 파일을 검색할 때 사용하는 커맨드라인 유틸리티다. 이 명령은 마치 리눅스의 locate 명령과 비슷하게 파일시스템의 모든 파일을 대상으로 검색할 수 있다. 다만 Spotlight 유틸리티이기 때문에 인덱싱 제한 설정을 따라갈 것으로 추측된다. 어쨌든 이 mdfind의 사용법 몇 가지를 살펴보자. 사실 macOS에서도 locate 명령은 지원된다. 단지 별도의 활성화 과정을 거치지 않으면 사용할 수 없을 뿐이다. mdfind로 특정 이름이 들어간 파일 검색하기 아래 명령은 파일 절대 경로에 foo라는 이름이 들어간 모든 파일을 검색한다. mdfind foo mdfind로 특정 이름의 파일을 검색하기 아래 명령은 파일 이름이 foo.bar인 모든 파일을 검색한다. mdfind -.. 2022. 3. 1.
mdutil로 터미널에서 Spotlight 제어하기 mdutil은 macOS의 검색 엔진인 Spotlight를 제어하기 위한 커맨드라인 도구다. 이 글은 mdutil 사용법 중 개인적으로 유용하다고 생각하는 두 가지 기능을 정리한다. 상세한 것은 man 페이지를 참고하자. Spotlight 인덱싱 재시작하기 특정 사유로 Spotlight를 중지 시키려면 아래 커맨드를 사용한다. sudo mdutil -i -a off 이후 Spotlight를 다시 시작하려면 아래 커맨드를 사용한다. sudo mdutil -i -a on 잠깐 Spotlight를 끄고 중간에 뭔가 하려는 스크립트를 작성할 때 유용하다. 특정 디렉터리를 인덱싱에서 제외하기 인덱싱 예외는 설정(Preferences)에서 쉽게 할 수 있지만 간혹 터미널에서 할 필요도 있을 때도 있다. 예를 들자면.. 2022. 2. 20.
macOS Monterey 12.1 업데이트 macOS 12 Monterey가 릴리즈 된 이후 첫 메이즈 업데이트인 12.1 버전이 정식으로 공개되었다. 시스템 환경설정의 소프트웨어 업데이트를 통해 업데이트할 수 있다. 아래는 소프트웨어 업데이트에서 확인할 수 있는 업데이트 내역이다. macOS Monterey 12.1 macOS Monterey 12.1에는 FaceTime을 통해 가족 및 친구와 즐거운 시간을 공유할 수 있는 완전히 새로운 방식의 SharePlay 기능이 추가되었습니다. 또한, 이 업데이트에는 사진 앱의 새롭게 디자인된 추억 및 디지털 유산 프로그램, Mac의 기타 기능 및 버그 수정이 포함되어 있습니다. SharePlay 새롭게 선보이는 SharePlay 기능으로 Apple TV 앱, Apple Music 및 기타 지원되는 앱의.. 2021. 12. 14.
SwiftUI에서 경고창(Alert Dialog) 띄우기(iOS 15, macOS Monterey) iOS 15와 macOS Monterey에서 구현할 수 있는 SwiftUI용 경고창(Alert Dialog)을 띄우는 방법이 새로 추가되었다. 새 방법이 아무래도 코드가 더 간결한 것 같아서 정리해본다. 가장 기본적인 경고창 예제 가장 기본적으로 제목과 메시지 그리고 확인 버튼 하나가 있는 경고창을 띄우는 예제 코드는 아래와 같은 식이다. struct ContentView: View { @State private var showingAlert = false var body: some View { Button("Show Alert") { showingAlert = true } .alert("Alert Title", isPresented: $showingAlert) { Button("Ok") {} } mes.. 2021. 10. 8.
재배치된 항목 넌 도대체 뭐냐? 어느 순간부터 macOS를 업데이트할 때마다 데스크탑 폴더에 '재배치된 항목'이라는 링크가 생성되는 일이 반복되고 있다. 지워버려도 딱히 동작에는 문제가 없는데 도대체 이 파일은 무엇일까? 정체 해당 링크를 더블클릭하면 폴더 내용이 뜬다. 대충 아래와 같은 문서와 다른 디렉터리가 포함되어 있는 것을 볼 수 있다. .lpdf 확장자의 문서 파일을 읽어보면 대충 용도를 알 수는 있다. 단순하게 말해서 새 버전으로 업데이트하는 도중 호환되지 않거나 옮길 수 없는 등 여러 사유로 인해서 모호해진 파일을 일단 이 위치로 옮겨두는 것으로 이해가 된다. 필요하다면 내용물을 비교해서 원래대로 살리거나 머지하거나 알아서 하라는 이야기다. 내용물을 확인해보니 UNIX 그룹 설정과 유사한 형태의 텍스트 파일이 들어있었다. .. 2021. 7. 29.
어느 날 맥 캘린더 앱에서 오류가 발생하기 시작했다 어느 날 내 업무용 맥의 캘린더 앱이 혼자서 미친 듯이 점프 뛰기를 시작했다. 그래서 캘린더를 열어보니 아래와 같은 팝업이 떴다. 서버에 오류가 발생했다니 뭐가 뭔지 알 수 없는 오류다. 도대체 무슨 일이 생긴 것일까? 문제 사실 명확한 문제를 정의하는 게 쉽지는 않다. 어쩌다 보니 아래와 같은 오류 팝업도 떴기 때문이다. CalDAVAccountRefreshQueueableOperation 작업에서 403 오류가 발생했다고 이해가 된다. 403은 보통 허용되지 않은 접근을 의미하고 대체로 인증이 되지 않았거나 인증 관련 문제로 볼 수 있다. 삽질 이 문제를 해결하기 위해 정보를 찾아봤지만 명확한 원인과 해답을 찾을 수는 없었다. 그래서 전통적인 방법을 시도해봤다. 사용한 방법은 단순했다. 설정(Pref.. 2021. 2. 19.
Xcode의 부산물(?) 청소 쉽게 하기 Xcode가 가끔 꼬여서 이상 동작을 하는 경우 아래 터미널 커맨드로 Xcode의 똥[...]들을 치우는 경우가 종종 있었습니다. $ rm -rf ~/Library/Developer/Xcode/DerivedData 그런데 Big Sur부터인지 아닌지 확실치는 않지만, 이제는 저장 공간 관리 앱에서 손쉽게 필요 없는 개발자용 파일을 삭제할 수 있게 지원되고 있습니다. 위처럼 프로젝트 아카이브나 Xcode 캐시, 프로젝트 빌드 데이터 및 인덱스를 선택해서 삭제 버튼만 누르면 깔끔하게 청소가 됩니다. (그런데 지금은 무슨 버그가 있는지 프로젝트 빌드 데이터 및 인덱스는 깔끔하게 지워지지는 않기는 합니다) 장점으로는 애플에서 직접 지원하는 앱이기 때문에 터미널 커맨드에 비해 안전하다는 점이겠지만, 단점으로 삭제.. 2020. 11. 16.
SwiftUI macOS 앱에서 타이틀 바와 툴바가 통합된 윈도우 구현하기 이 글의 목표는 SwiftUI를 사용하는 macOS 앱 프로젝트에서 아래와 같은 윈도우를 구현하는 것입니다. 나눠서 설명했더니 글이 좀 길어졌습니다. 결론만 보시려면 글 하단에 정리한 전체 코드를 참고하시면 될 것 같습니다. 기본 프로젝트 사용하는 프로젝트는 macOS App으로 SwiftUI를 사용하도록 설정했습니다. 당연히 이게 조건이니깐요. 기본 프로젝트는 위와 같은 모양으로 실행됩니다. Unified Title and Toolbar 프로젝트 생성 시 보일러플레이트 코드가 생성된 AppDelegate.swift 파일을 열어보면 NSWindow 인스턴스를 생성하는 코드가 있습니다. 여기에서 styleMask를 설정할 수 있습니다. 여기에 아래와 같이 .unifiedTitleAndToolbar 플래그를.. 2020. 11. 12.
macOS에서 SVG 파일을 PNG로 변경하기 요즘은 macOS나 웬만한 브라우저에서는 SVG 벡터 이미지 포맷을 지원하기 때문에 그냥 써도 무방한 경우가 많겠지만, 그래도 때에 따라서 SVG 벡터 이미지 포맷 파일 대신 PNG 등의 픽셀 이미지 포맷 파일이 필요한 경우가 있을 수 있습니다. 이 글은 간단한 터미널 커맨드를 이용해 macOS에서 SVG 파일을 PNG 포맷으로 변경하는 방법을 간략히 정리합니다. 여러 방법이 있을 순 있겠지만 개인적으론 librsvg에 포함된 도구를 이용하는 것이 가장 간단하였기에 즐겨 사용합니다. 다만 기본적으로 설치되어 있지는 않기 때문에 Homebrew 등을 이용해 설치해야 합니다. brew install librsvg 이제 설치가 되었으면 rsvg-convert 유틸리티를 이용해 포맷을 변경할 수 있습니다. 다만.. 2020. 10. 19.
macOS에서 앱 별로 언어 설정하기 개인적인 사유로 macOS의 언어를 영어로 세팅하고 사용하고 있습니다. 아무래도 개발자라 객기 부리고 싶었기... 때문은 아니고 간혹 번역된 메시지가 더 이해하기 어려운 경우가 많다 보니 이렇게 쓸 수밖에 없는 상황이지요. 그런데 시스템 언어를 영어로 세팅해 놓으면 약간의 문제가 있습니다. 사파리(Safari)가 영어 모드로 동작하기 때문에 다국어를 지원하는 사이트를 접속해도 영어로 웹페이지가 표시된다는 문제를 예로 들 수 있습니다. 만약 유튜브에서 구독 목록을 보는데 한국어 제작자가 올린 영상들 제목이 영어이면 많이 이상하고 불편하겠지요? 😢 iOS는 시스템 언어와 별개로 앱 별 언어 설정이 가능한데 macOS는 왜 없나 생각만 하고 있었습니다. 그런데 눈을 크게 뜨니 macOS에서도 앱 별로 언어를 .. 2020. 4. 11.
728x90
반응형