본문 바로가기
반응형

전체 글861

Swift 5.2 업데이트 내역 살펴보기 이 글은 스위프트 공식 블로그의 Swift 5.2 Released! 글에서 언급한 두 가지 업데이트된 기능을 살펴보는 글입니다. 이 외에도 사실 여러 업데이트가 있겠지만 아무래도 이게 핵심이니까 언급한 것이겠죠? 키 경로 표현식을 함수처럼 사용하기 SE-0249 Key Path Expressions as Functions 제안을 통해 Swift 5.2에 구현된 기능입니다. 이 기능은 함수나 클로져를 넘겨서 처리하는 다양한 기능에서 함수나 클로져 대신 키 경로(Key Path)를 넘기는 것으로 구현을 간단하게 할 수 있도록 해줍니다. 간단하게 위의 제안 내용의 예제를 인용해 보겠습니다. 우선 아래의 구조체 User를 선언했습니다. struct User { let email: String let isAdmi.. 2020. 3. 25.
iOS 13.4로 이제 재난 경보 스트레스를 덜 받을 수 있습니다 요즘 코로나19로 재난 경보 문자가 시도 때도 없이 날아듭니다. 특히 아이폰 사용자는 그 특유의 괴로운 경고 소리 때문에 스트레스가 이만저만이 아니었지요. 사실 이 알림에는 재난 비상경보뿐만 아니라 공공 안전 경보도 포함되어 있는데 이 둘을 구분하지 못하고 둘 다 재난 비상경보처럼 소리가 울리는 거였지요.오늘 업데이트가 뜬 iOS 13.4부터는 이 재난 문자에서 공공 안전 경보가 따로 분리가 되었으며 알림 사운드 또한 일반 알림으로 바뀌었습니다. 그리고 이를 받을 건지 말 건지를 설정할 수 있습니다.당연하지만 이 기능을 사용하려면 일단 iOS 13.4로 업그레이드부터 하셔야 합니다.업그레이드가 완료된 후 만약 공공 안전 경보를 끄고싶다면 아래와 같은 순차로 찾을 수 있습니다.우선 설정으로 들어갑니다.설정.. 2020. 3. 25.
리스트 다루기 (Emacs Lisp) 리스트 생성그냥 생성하기(list 1 2 3 4);; => (1 2 3 4)위의 경우가 가장 가독성은 좋은 코드이겠지만 보통은 아래처럼 백틱을 이용한 quote 구문을 많이 사용합니다.'(1 2 3 4);; => (1 2 3 4)순차적인 리스트 만들기(number-sequence 2 5);; => (2 3 4 5)굳이 정수가 아니라도 사용 가능하니 매뉴얼을 읽어봅시다.리스트에 추가하기제일 앞에 추가하기(cons 1 '(2 3 4));; => (1 2 3 4)리스트끼리 연결하기(append '(1 2 3) '(4 5 6));; => (1 2 3 4 5 6)리스트끼리 연결하기(2)(let ((some-list '(1 2 3))) (nconc some-list '(4)) some-list);; => (1 .. 2020. 3. 24.
Emacs 이 블로그의 Emacs Note 카테고리 글 일부를 별도로 링크로 정리하는 글입니다. 카테고리로 보기가 불편할 때 참고하기 위한 지극히 개인적인 용도입니다.Emacs Lisp리스트 다루기파일/디렉토리 경로와 관련된 Emacs Lisp 함수들문자열 처리 함수들Filter와 MapLet과 Let*Property ListEmacs Lisp Snippets파일 읽어서 내용 수정하고 저장하기Org Mode TipsOrg Mode 문서에 외부 이미지 넣기Org Mode 테이블 스프레드시트Org Publish로 익스포트 자동화하기 2020. 3. 24.
파일/디렉토리 경로와 관련된 Emacs Lisp 함수들 파일 경로나 디렉터리 경로를 다루는 Emacs Lisp 함수 몇 가지를 정리합니다.완벽한(?) 경로 구하기(expand-file-name "~/.emacs.d");; => "/Users/seorenn/.emacs.d"UNIX에서 홈 디렉터리($HOME)를 축약해서 표시하는 문자인 ~(Tilde, 물결 혹은 지렁이 무늬)를 원래 경로로 치환하는 데 주로 사용합니다.와일드카드를 이용해 특정 경로의 파일 목록 구하기(file-expand-wildcards "~/.emacs.d/*.el");; => ("~/.emacs.d/early-init.el" "~/.emacs.d/init.el" "~/.emacs.d/init.example.el")배치 작업을 위해 파일 목록을 구할 때 편하게 사용할.. 2020. 3. 23.
파일 읽어서 내용 수정하고 저장하기 (Emacs Lisp) Emacs Lisp을 이용해 특정 파일 내용을 읽어서 여기에 몇 가지 내용을 추가한 후 다른 파일로 저장하는 코드입니다.(with-temp-buffer (insert-file-contents "/foo/bar/file.md") (goto-char (point-min)) (insert "# New Header") (search-forward "Status: ") (insert "TODO") (goto-char (point-max)) (insert "# Footer") (write-file "/foo/bar/file-updated.md"))추가로 아래와 같은 함수를 참고할 수 있습니다.(erase-buffer) :: 버퍼 내용을 몽땅 삭제(delete-char N) :: N 개수만큼 글자를 삭.. 2020. 3. 23.
흥미로운 링크들 3월 3주차 코로나19의 확산세가 꺾이지 않는 요즘이지만, 이 틈을 틈타 조용하게 등장한 애플의 신제품 소식으로 시작합니다.https://www.apple.com/kr/ipad-pro/ iPad ProiPad Pro는 Liquid Retina 디스플레이, A12Z Bionic 칩, 프로급 카메라, 새로운 LiDAR 스캐너를 탑재하고 있으며, Apple Pencil과 새로운 Magic Keyboard도 지원합니다.www.apple.com애플이 조용히 아이패드 신제품과 키보드 겸 커버를 선보였습니다. 아이패드가 마우스 지원을 강화하고 있다는 소문대로 트랙패드를 장착한 키보드 커버가 나왔네요. 아이패드를 키보드에서 붕 띄우는 참 애플 다운 특이한(?) 설계입니다. 그리고 애플 다운 미친 가격까지...😫글보다는 영상이 더.. 2020. 3. 23.
흥미로운 링크들 3월 2주차 여전히 코로나19의 기세가 대단합니다. 바뀐 게 있다면 전 세계적이라는 점이 차이가 있었겠네요. 어쨌든 코로나19를 언급하는 날이 더 이상 없기를 빌며, 지난주 링크 모음도 코로나19와 관련된 소식으로 시작합니다.https://www.washingtonpost.com/graphics/2020/world/corona-simulator/코로나19 대책에 사회적 거리두기(Social Distancing)가 왜 중요한지 시뮬레이션으로 보여주는 워싱턴포스트의 글입니다. 시뮬레이션 자료가 제법 설득력이 있어서 IT에 관한 글이 아님에도 제법 재미있게 읽었습니다. 글을 읽기가 귀찮으시면 위의 이미지만으로도 내용을 파악 가능합니다만, 시뮬레이션이 애니메이션으로 구성되어 있어서 굳이 영문으로 작성된 글을 읽지 않고 이것.. 2020. 3. 15.
흥미로운 링크들 3월 1주차 지난 주도 재미있었던 소식이 제법 있었네요.https://rambo.codes/posts/2020-03-01-writing-command-line-interfaces-for-ios-apps Writing command line interfaces for iOS apps | Rambo CodesGui Rambo writes about his coding and reverse engineering adventures.rambo.codesCLI 즉 셸 명령어를 이용해 iOS 앱을 제어할 수 있도록 구현하는 방법에 대해 설명하는 글입니다. 어떤 원리인지는 확실히는 잘 모르겠지만 해당 기술은 여러 가지 용도로 사용할 수 있을 것 같습니다.https://techit.kr/view/?no=20200305160302 .. 2020. 3. 9.
Swift와 ObjC에서 Deprecated 처리하기 Swift와 Objective-C에서 클래스나 메서드, 프로퍼티 등을 Deprecated로 만드는 방법을 정리하는 글입니다.Deprecated는 단순히 말해서 '곧 사라질 기능'을 표기할 때 사용합니다. 오래된 프레임워크를 버전업 하거나 했을 때 노란 딱지로 빌드 경고가 뜰 때 이런 Deprecated 경고를 종종 볼 수 있습니다. 기능이 이름의 변경 혹은 리팩터링 등으로 바뀌게 될 부분을 미리 알려주는 용도로도 자주 사용되지요.Swift의 경우Swift에서는 @available을 통해 deprecated 표기를 할 수 있습니다.@available(*, deprecated)class SomeClass { ... }함수나 메서드도 동일하게 사용합니다.@available(*, deprecated)func s.. 2020. 3. 3.
흥미로운 링크들 2월 4주차 지난주엔 별로 쓸 내용이 없어서 무시했지만 이번 주엔 재미있는 글들이 좀 있네요. 일단 시국이 시국인 만큼 코로나19와 관련된 링크로 시작합니다.https://graphics.reuters.com/CHINA-HEALTH-SOUTHKOREA-CLUSTERS/0100B5G33SB/index.html 2019 coronavirus: The Korean clustersHow coronavirus cases exploded in South Korean churches and hospitalsgraphics.reuters.com신천지 발 코로나19 집단 감염 사태에 대응하는 대한민국에 관해 정리한 글입니다. IT 관련 이슈가 아닐 수도 있겠지만, 인포그래픽 등이 굉장히 잘 만들어져 있고 내용도 쉬운 편이라 현 사태.. 2020. 3. 2.
트위터 맥 앱, 이제는 쓸 만 한가 트위터 맥 앱이 공식적으로 재 출현한 지 벌써 버전이 8.9가 되었습니다. 최소한 9번의 패치가 있었다는 말이네요. 과연 공식 트위터 맥 앱은 쓸 만해 졌을까요? 한 개인의 입장으로 정리해 봤습니다.참고로 이 글은 버그나 불편한 점 위주로 정리합니다.사소하지만 눈길이 가는 아이콘 크기 버그가끔 앱의 핵심 아이콘인 새 모양 아이콘이 작아지는 버그가 있습니다. 레티나 모니터와 비 레티나 모니터 사이에 앱을 이동하다 보면 발생하는 것으로 주정됩니다.이 문제는 사소하지만 처음부터 지금까지 전혀 고쳐지지 않고 있네요. 물론 이미 버그 리포팅은 한 상태입니다만 과연 읽어 보기나 했을지 모르겠네요. 그나마 사용에 불편함을 느끼지는 않아서 다행이지만요.어... 그러니까.... 가끔 귀여워요. (???) 이상한 에디터에.. 2020. 2. 25.
프로그래머스 개발자 설문조사 2020을 본 감상 프로그래머스 개발자 설문조사 2020이라는 재미있는 설문 조사 결과가 있어서 그냥 넘길 수가 없었습니다. 이 조사 내용을 읽고 머릿속에 떠오른 생각을 정리해 보는 글입니다.따라서 당연하게도 매우 주관적인 글이라는 점을 밝힙니다.시작하기 전에구글 크롬에만 최적화하지 마세요. 크롬이 또 다른 IE 독점 악몽의 사례가 될 수도 있습니다.차라리 구글 크롬이 아니라 크로미움에 최적화시켰다고 표현하시던가요. 크로미움은 적어도 완벽한 오픈소스이고 크롬뿐만 아니라 엣지 등 몇몇 브라우저에서 채용하고 있는 엔진입니다. 크롬은 이 크로미움을 수정해서 사용하기 때문에 크롬과 크로미움은 다릅니다.크롬에만 최적화 하면 다른 브라우저에서 안 보일 수도 있습니다. 최신 HTML5의 기능을 쓰지 말고 안정화되고 풍부하게 지원하는 기.. 2020. 2. 24.
macOS Safari에서 타이핑이 심각하게 느려지는 문제 어느 날부터 맥(macOS)의 사파리(Safari) 웹 브라우저에서 글자를 타이핑하면 버벅거리는 일명 렉(lag) 현상이 나타났습니다. 사파리는 크롬을 견제하려고 일부러 자주 사용하는 브라우저인데 이 문제 때문에 상당히 곤란해서 크롬을 쓸 정도였습니다. 이 글은 이 문제를 해결하는 삽질기를 정리하고 있습니다.문제정확한 증상은 사파리 내부 웹킷에 표시되는 웹 페이지의 텍스트 필드에서만 발생합니다. 여기에 한글이든 영문이든 관계없이 텍스트를 입력하면 1~2글자 정도까진 괜찮다가 더 치기 시작하면 버벅거리며 멈추고 잠시 후 렉이 풀립니다. 그리고 입력을 시작하면 또 렉이 발생합니다. 거기다 타이핑이 길어질수록 렉이 더욱 심해집니다.하지만 사파리의 주소표시줄에서 글자를 입력할 때는 이런 현상이 없습니다. 그냥 .. 2020. 2. 22.
삼성의 안드로이드 커널 수정과 보안, 그리고... 현재 삼성의 스마트폰은 안드로이드라는 오픈소스 운영체제(OS) 체제에서 동작합니다. 삼성은 성능과 차별점을 만들어내기 위해서 당연히 이 안드로이드를 수정해서 사용할 것입니다. 그리고 수정 대상에는 운영체제의 핵심인 커널(Kernel)도 해당되리라고 생각됩니다. 그런데 최근 구글이 삼성의 커널 수정을 비판하는 글을 게시했습니다.우선 이 사안은 국내 언론에도 아래와 같은 기사로도 알려졌습니다.구글 "삼성, 안드로이드 소스코드 함부로 수정 마라" (ZDNet)이 기사는 아래와 같은 인용으로 시작됩니다.구글 보안 전문가 조직 '프로젝트 제로'가 스마트폰 제조사들이 안드로이드 운영체제(OS)에서 리눅스 코드를 임의로 수정하는 관행 때문에 보안 위협이 발생한다고 경고했다.기사 내용은 PROCA 즉 Process A.. 2020. 2. 19.
2020년 4월부터 소셜 로그인 지원 시 애플 인증 강제 애플은 'Sign in with Apple'로 알려진 'Apple로 로그인' 기능 지원에 대해 아래와 같은 가이드라인을 발표했습니다.오늘부터 App Store에 제출하는 신규 앱은 해당 가이드라인을 따라야 하며, 기존의 앱과 앱 업데이트는 2020년 4월 전까지 해당 가이드라인을 따라야 합니다. - Apple로 로그인에 대한 신규 가이드라인이미 이 인증 기능이 발표될 때부터 상황에 따라 강제될 것이라는 소식이 전해져 왔고 많은 앱들이 이미 지원하기 시작한 기능이라 그다지 새로운 것은 아닙니다만, 기존 앱들에 대한 제약이 이번에 확정되었기 때문에 업데이를 하지 않았다면 준비를 급하게 해야 할 시점인 것 같습니다.애플 자체 인증 기능을 반드시 구현해야 할 필요는 없습니다. 하지만 App Store 심사 지침.. 2020. 2. 18.
Flutter 사용 시 발생하는 미확인 개발자 문제 macOS Catalina에서 Flutter CLI 도구를 이용해 개발 시 겪을 수 있는 문제 중 하나로 미확인 개발자 문제가 있습니다. 이 문제를 해결하는 방법을 간략히 정리하는 글입니다.문제flutter 커맨드를 사용할 때, 예를 들어 flutter doctor나 flutter build, 혹은 flutter run 시에 아래와 비슷한 오류가 날 때가 있습니다."idevice_id" cannot be opened because the developer cannot be verifed.위 오류에서 idevice_id 대신 ideviceinfo, iproxy 등 여러 이름이 올 수 있습니다. 즉 하나의 명령이 아니라 여러 명령 바이너리가 개발자 사인이 빠진 채로 빌드되어 있어서 macOS에서 경고를 표시.. 2020. 2. 18.
흥미로운 링크들 2월 2주차 이번 주에 개인적으로 가장 관심 가는 소식은 Xcode 11.4의 베타 테스트 시작과 함께 소개된 신기능인 것 같습니다. 그래서 Xcode와 관련된 소식부터 전합니다.https://jusung.github.io/apns-test/ [Xcode] 시뮬레이터에서 Remote Push 시뮬레이션하기Xcode 11.4부터 시뮬레이터에서 Remote Push Notification의 시뮬레이션을 지원합니다. 😄jusung.github.ioXcode 11.4부터 시뮬레이터로 푸시 알림을 테스트할 수 있는 기능이 추가되었습니다. 이것을 사용하는 원초적인(?) 방법이 상세히 설명된 글입니다.https://github.com/AvdLee/Poes AvdLee/PoesA Swift command-line tool to .. 2020. 2. 17.
728x90
반응형