본문 바로가기
반응형

전체 글861

애플도 카카오처럼 (정말) 검열을 시도할까? 최근 카카오톡의 검열이 화제다. 명확하게 이야기해서 카카오톡뿐만 아니라 공공에 공개된 모든 커뮤니티에 올라오는 영상물은 업로드 직후 검사를 받아야 하며 만약 국가에서 운영하는 데이터베이스에 등록된 내용과 일치할 경우에는 게시가 제한된다. 물론 시스템적이기 때문에 검열이 아니라고 주장하기도 하지만 개인적으론 "게시를 위해선 승인이 필요"하기 때문에 사전 검열에 해당한다고 생각한다.이게 한국에만 국한된 이야기는 아니다. 중국은 당연히 하고 있을 것 같지만 우리의 천조국 미국에도 있다. 바로 전 세계 시가총액 1위 기업인 애플이 추진하는 CSAM 검열 정책이다.애플은 이미 지난 행사에서 iCloud나 iMessage 등에 올라오는 자료들 중에서 아동 성범죄와 관련된 이미지를 골라내겠다고 한 적이 있었다. 이름.. 2021. 12. 17.
iOS 15.2 업데이트 iOS 15의 두 번째 메이저 업데이트인 15.2 버전이 공식으로 공개되었다. 애플의 공식 업데이트 로그를 살짝 살펴보고 사견을 덧붙여보자.iOS 15.2OS 15.2에는 앱 개인 정보 보호 리포트 및 디지털 유산 프로그램, iPhone의 기타 기능 및 버그 수정이 포함되어 있습니다.개인 정보 보호설정의 앱 개인 정보 보호 리포트에서 네트워크 활동뿐만 아니라 지난 7일 동안 앱이 사용자의 위치, 사진, 카메라, 마이크, 연락처에 접근한 빈도를 확인할 수 있음뭐 나쁠 건 없는 기능이다. 역시나 애플 플랫폼에서는 응용 소프트웨어 차원에서 숨어서 뭔가 헛짓거리 한다는 것을 포기해야 할 것 같다.Apple ID디지털 유산을 사용하면 사망 시 iCloud 계정 및 개인 정보에 접근이 가능한 유산 관리자를 지정할 .. 2021. 12. 14.
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.
Org Mode 기반 정적 사이트 운영 느낌 정리 이 블로그에도 기록을 종종 남기곤 하는데, Emacs에서 Org Mode를 이용해 글을 쓰고 Org Publish를 이용해 정적 사이트를 생성하는 방식으로 운영하는 개인용 GitHub Pages가 있다. 구글이 사이트맵을 잘 안 읽어가서 - 1년에 두 번 읽으려나 - 운영의 의욕이 종종 떨어지기도 하는 등 불평불만을 하기도 했는데, 지금까지 운영해오며 느낀 장단점 썰을 풀어볼까 한다.장점들Emacs: 이맥스에서 글을 쓸 수 있다는 것 자체가 축복이다. 편하고 손에 익은 에디터라는 것만으로 그 어떤 웹 기반 블로그나 에디터와는 비교가 불가능한 장점이 있다. 거기에 Emacs Lisp의 스크립팅을 이용한 자동화와 Org Mode 자체의 풍부한 기능도 이용할 수도 있다.구성의 자유: 레이아웃이든 색상이든 광고.. 2021. 12. 12.
애플 VS 에픽 2차전 - 누군가의 완승이 되나 애플과 에픽 세기의 싸움 2차전 즉 항소법원에서 뭔가 결론이 나왔나 보다. 1차전의 경우 앱스토어는 독점은 아니지만 애플의 IAP(In-app Purchases, 앱 내 결제) 강요는 위법하다는 것이었다. 그런데 항소 법원에서는 IAP 강요 위법이 다시 뒤집혔다. 아래 관련링크에 해당 기사를 링크해 놨지만 IAP가 반경쟁적 조치가 아니다는 애플의 주장에 손을 들어줬다. 사실 이미 1심에서 앱스토어의 지위를 인정 받았다는 점 만으로도 애플에게 나쁠 것은 없는 판결이었는데 2심에선 완전히 애플의 완승이 되어가는 느낌이다. 다만 아직까지는 구체적인 내용을 알 수가 없어서 이 정도로만 정리할 수 있을 것 같다. 그렇다면 한국에서는? 사실 미묘한 점은 위 판결은 캘리포니아 불공정경쟁법과 관련이 있다. 미국은 국가.. 2021. 12. 10.
새로운 애플실리콘과 맥북 프로가 등장한 애플 이벤트 오늘 새벽 애플의 또 다른 이벤트가 열렸나 보다. 하지만 육아로 지쳐 처자느라 볼 수는 없었다. 그래서 이번에도 애플 뉴스룸 및 여러 기사를 보며 대충 정리해본다.M1 Pro 그리고 M1 Max결론: 존내 빠름위 한 줄이면 될 것 같다. 아무리 스펙 이야기해도 별 의미가 없을 것 같다. 저전력 고성능이라는 애플실리콘 모토를 제대로 지키면서도 성능을 제대로 증폭시켰다.이름은 M1X나 M2가 될 거라는 예상을 깨고 Pro및 Max가 뒤에 붙어서 나왔다. 대충 정리하자면 일반 보급형인 M1, 전문적인 일을 해야 하는 사람을 위한 M1 Pro, 기존 렌더링용 워크스테이션을 일부 대체하는 급으로 예상되는 M1 Max다. 좀 더 직설적으로 M1은 일반 사무용, M1 Pro는 개발용 혹은 작곡용, M1 Max는 영상.. 2021. 10. 19.
UserDefaults 기초 정리 UserDefaults는 iOS나 macOS 등 애플 플랫폼 용 앱에서 간단한 정보나 설정을 저장하고 읽어 들이기 위해 사용하는 클래스다. 데이터를 키-값(Key-Value) 스타일로 읽거나 쓸 수 있게 구성되어 있다. 해당 데이터는 각 앱의 전용 공간에 plist 형태로 저장되며 따라서 앱이 종료되어도 기록이 남아서 앱이 실행되었을 때 다시 읽을 수 있다. Swift에서는 UserDefaults라는 이름으로 사용되고 있지만 원래 이름은 NSUserDefaults이고 Objective-C 코드에서는 아직도 이 이름이 사용되고 있다. 참고로 이 글은 Swift 기준이다. 이 클래스의 레퍼런스 매뉴얼을 살펴보면 굉장히 다양한 기능을 제공하고 있지만, 보통은 .standard라는 싱글톤 객체를 이용해 저장하거.. 2021. 10. 17.
SwiftUI로 액션시트 띄우기 (iOS 15, macOS Monterey) 앞서 작성한 경고창을 띄우는 방법이 최신 SDK에서 변경된 점이 있었던 것과 비슷하게 액션시트(ActionSheet)도 최신 SDK에서 조금 바뀌었다. 그래서 바뀐 내용으로 사용법을 간략히 작성해본다. 당연하게도 Xcode 13 이상의 버전에서 개발해야 하며 iOS 15 혹은 macOS Monterey 등에서만 동작하는 내용이다.기본 예제iOS 14까지만 해도 .actionSheet(...) 식의 코드가 있었다. 그런데 이게 최신 SDK에서는 낡음(deprecated) 처리가 되었고 대신 .confirmationDialog(...)를 사용할 수 있게 된다.아래는 바뀐 코드 예제다.struct ContentView: View { @State private var showingActionSheet = .. 2021. 10. 12.
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: $sh.. 2021. 10. 8.
SwiftUI에서 각 플랫폼의 배경색 사용하기 SwiftUI에서 색상을 지정하기 위해서는 Color라는 구조체를 사용한다. 여기에는 당연히 RGB 값을 넣어서 마음대로 색상을 만들 수 있지만 특별히 정해진 색상을 별도의 이름으로 정의해 두기도 했다. 예를 들자면 accentColor나 primary 혹은 secondary와 같은 일반적인 용도의 플랫폼 별 색상을 쉽게 사용할 수 있다.그런데 모든 색상이 제공되는 것은 아니다. 예를 들어 윈도우의 배경색 종류가 몇 가지 있는데 이를 SwiftUI에서는 제공해 주지 않는다. 이를 위해서는 해당 플랫폼용, 즉 iOS의 경우 UIKIT 그리고 macOS의 경우 AppKit을 이용해 해당 색상을 가져오도록 코드를 작성할 수 있다. 아래와 같은 식으로 말이다.public extension Color {#if o.. 2021. 10. 5.
2021년 9월 14일 애플 이벤트 대충 정리 2021년 9월 14일, 한국 시간으로 15일 새벽에 드디어 애플의 신제품 발표 이벤트가 열렸다. 물론 난 자느라 못 봤지만 [...] 키노트가 아닌 애플의 공식 뉴스 블로그를 참고해서 간단히 정리해볼까 한다.우선 한국 언론의 평가를 보면 여전하다. 혁신이 없다, 결정적 한 방이 없다 이런 식이다. 음... 일단 언론부터 혁신이 필요할 것 같다.아이폰 13모두의 예상대로 아이폰 13 라인업이 발표되었다. 이전과 동일하게 13, 13프로, 13 프로 맥스와 함께 판매 저조로 인해 이제는 안 내놓지 않을까 예상되던 13 미니까지 포함되었다.전반적으로 AP가 전작보다 개선된 A15 Bionic이 탑재되었다. 당연하게도 M1이 들어가지는 않았다. 개인적으로도 스마트폰에서 쓰기에 M1는 너무 고성능이라 ... 에.. 2021. 9. 15.
애플 VS 에픽 1차전은 애플의 패배? 이번 소송전을 간단히 설명하자면 에픽 게임즈가 자사 게임에 외부 결제를 안내하는 것을 애플이 금지하고 대신 애플의 IAP(In app purchases 앱 내 결제)를 강요했다는 점과 이 사유로 애플이 에픽의 앱들을 앱스토어에서 퇴출시키자 아이폰 등에서 앱스토어에서만 앱을 설치할 수 있는 것은 독점이다라는 두 가지 주제(?)로 소송전이 벌어졌다는 내용이다. 물론 단순하게 설명한 것이라 틀린 것이 있을 순 있지만 핵심은 애플의 IAP 강요 그리고 사이드로딩 금지 정도인 것 같다. 그리고 드디어 이 세기의 소송전의 1심 결과가 나왔다. 결론은 IAP 강요는 위법하다는 것이다. 하지만 앱스토어 퇴출이나 사이드로딩 불허는 앱스토어 독점과는 관계가 없다 정도로 정리되는 것 같다. IAP 강요는 위법하다 어쨌거나 .. 2021. 9. 11.
블로그 카테고리를 개편하다 한동안 태그 기반 분류를 이용해 블로그를 운영해 봤습니다. 뭐 기능상 나쁠 건 없었지요. 하지만 태그는 카테고리에 비해 약간의 문제가 있습니다. 로딩이 느리다는 점이지요. 로딩 속도는 태그 분류 시스템에선 느릴 수밖에 없습니다. 카테고리는 글 당 하나의 필드로 데이터베이스에서 관리가 가능하지만 태그는 하나의 글에 여러 개가 붙을 수 있어서 검색 쿼리 자체가 느려질 수밖에 없습니다. 뭐 잘 만드면 빠를지도 모르겠지만, 당연한 이야기 투성이네요. 그래서 결론은 뭐냐면 카테고리 체재로 다시 돌아왔다는 점입니다. 티스토리 카테고리가 이렇게 트리 구조로 만들 수 있는지는 이번에 처음 알게 되었습니다. 그래서 기존의 2개 카테고리를 좀 더 세분화하고 트리구조로 개편해서 태그를 쓰는 것 이상의 분류가 가능했습니다. .. 2021. 9. 10.
오늘도 Xcode에게 졌다 Xcode에서 Flutter 프로젝트를 디버깅할 일이 있어서 이런저런 삽질을 하다가 아래와 같은 오류를 만났다.invalid reuse after initialization failure'초기화 실패 후 잘못된 재사용'이라는 말의 의미는 도대체 무엇일까?원인알 수 없다. 만약 원인을 알았다면 이번 글의 제목에 '졌다'라는 단어가 안 들어갔을 것이다.해결단순하게도 Command + Shift + K 키를 눌러서 프로젝트 폴더를 청소하고 나서 다시 빌드하니 문제가 해결되었다.이 글을 왜 쓰나왜긴 열 받아서 쓰지. 😤솔직히 이런 말도 안 되는 오류가 최근 자주 보이는 것에서 애플에 불만이 좀 많다. 그냥 Xcode를 포기하고 터미널 기반의 개발 환경을 구축할 수 있게 해주는 편이 더 낫지 않겠나? 2021. 9. 3.
내 맥을 망가뜨리는 망할 플러그인들 언제부터인가 맥북의 키보드가 이상해졌다. 특정 키 조합을 누르면 반응이 한참 걸렸다. 키를 누르면 랙이 걸린다는 표현이 딱 적절한 것 같다. 그것도 시간이 지나면 지날수록 더더욱 심해졌다. 지금은 문제의 키 조합을 누르면 1~2초가량 후에나 입력이 될 때도 있다. 이건 너무 큰 문제다. 랙이 걸린 상황에서 누르는 키는 이상하게 동작하기도 했기 때문이다. "아 드디어 인텔 맥이 맛이 가기 시작하나" 하는 생각만으로 그냥 넘기고 살고 있었던 시절도 있었다. 하지만 언제부턴가 이 느려짐이 점점 심해지고 있다는 것과 함께 동시에 이상한 공통점을 발견하게 된다. 개인적으로 자주 사용하는 Emacs 커서 이동 키맵이 바로 그것이다. 예를 들어 Ctrl+A 라거나 Ctrl+E 같이 말이다. 언제 어디서든 터미널에서든.. 2021. 8. 4.
iTerm에서 한글 자소가 분리되어 보이는 현상 개인적으로 터미널과 셸을 좋아해서 iTerm 또한 종종 사용하는데 파일명에 한글을 거의 쓰질 않아서 거의 문제를 못 겪었었다. 그런데 macOS의 언어를 한국어로 바꾼 이후로 터미널에서 한글이 깨지는 현상 - 정확히 말해서 자소가 분리되어 보이는 현상 - 을 종종 겪게 되었다.참고로 사용하는 iTerm의 버전은 3.x다. 보통 iTerm3로 표기한다. 어쨌든 이 문제를 수정해보자.문제 해결하기해결 방법은 단순하다. 설정(Preferences)을 열어서 Profiles 항목의 Text 탭을 열어보자. 중앙의 Unicode 항목 근처에서 Unicode Normalization Form을 찾을 수 있는데 기본 값은 None으로 되어있다. 이 설정을 클릭해서 NFC로 바꿔주자.이후 바로 결과가 적용되기 때문에 .. 2021. 7. 30.
재배치된 항목 넌 도대체 뭐냐? 어느 순간부터 macOS를 업데이트할 때마다 데스크탑 폴더에 '재배치된 항목'이라는 링크가 생성되는 일이 반복되고 있다.지워버려도 딱히 동작에는 문제가 없는데 도대체 이 파일은 무엇일까?정체해당 링크를 더블클릭하면 폴더 내용이 뜬다. 대충 아래와 같은 문서와 다른 디렉터리가 포함되어 있는 것을 볼 수 있다..lpdf 확장자의 문서 파일을 읽어보면 대충 용도를 알 수는 있다.단순하게 말해서 새 버전으로 업데이트하는 도중 호환되지 않거나 옮길 수 없는 등 여러 사유로 인해서 모호해진 파일을 일단 이 위치로 옮겨두는 것으로 이해가 된다. 필요하다면 내용물을 비교해서 원래대로 살리거나 머지하거나 알아서 하라는 이야기다.내용물을 확인해보니 UNIX 그룹 설정과 유사한 형태의 텍스트 파일이 들어있었다. 물론 이건 .. 2021. 7. 29.
Swift 5.5의 Continuation Swift 5.5의 동시성(Concurrency) 기능의 강화로 드디어 async와 await를 사용할 수 있게 되었다. 하지만 우리가 사용하게 될 기존의 프레임워크들은 여전히 이런 연속성 구현이 빠진 형태도 많을 것이고 레거시도 종종 사용하게 될 수도 있다.다행히도 Swift 5.5에서 이런 동시성 인터페이스를 제공하기 힘든 코드를 동시성 코드에 어울리게 쓸 수 있는 방법이 제공된다. 이름하야 연속성(Continuation)이라 불리는 방법이다. 개발자가 약간 고생해서 감싸는(wrapping) 코드를 작성해야 되겠지만 말이다.문제가 될 만한 예제예를 들어 아래와 같은 인터페이스의 함수를 사용해야 한다고 생각해보자.func fetchResults(name: String, completion: ([Stri.. 2021. 7. 16.
728x90
반응형