반응형 전체 글861 Electron 앱의 창 위치 및 크기 기억하기 Electron 앱 구현 튜토리얼의 잘 알려진 예제들은 창의 크기나 위치를 복원시키는 코드를 대부분 알려주지 않는다. 필요하다면 알아서 구현해야 한다는 말인가? 다행히도 찾아보니 electron-window-state라는 패키지를 사용하는 방법이 가장 간단할 것 같아서 이용해봤다. 패키지 설치하기 여타 Node.js 패키지들처럼 NPM이나 Yarn을 이용해 설치할 수 있다. yarn add electron-window-state # or npm install --save electron-window-state 런타임에 사용되는 패키지이기 때문에 개발 의존성(--save-dev 등)으로 설치하면 안 된다는 점에 주의하자. 패키지를 설치한 후 이제 몇몇 코드를 구현해야 한다. 코드 구현하기 공식 깃헙 저장소.. 2022. 4. 2. macOS 12.3.1 그리고 iOS 15.4.1 업데이트 오늘 또 새로운 애플 플랫폼 업데이트들이 올라왔다.macOS Monterey 12.3.1USB-C 또는 Thunderbolt 외부 디스플레이가 Mac mini(2018년)에 두 번째 디스플레이로 연결되었을 때 켜지지 않는 문제일부 Beats 헤드폰으로 오디오를 재생한 후 게임 컨트롤러와 같은 Bluetooth 기기가 Mac에서 연결 해제될 수 있는 문제디스플레이와 블루투스 관련 버그가 수정되었다는 수준의 간단한 마이너 픽스 업데이트다. 아무래도 버그 픽스이니 업데이트하는 편을 권장하겠지만, 아무리 그래도 1기가가 넘는 용량이라는 점은 약간 심한 느낌이다. 그 외에 별다른 보안 패치는 언급되어 있지 않은 것 같다.iOS 15.4.1iOS 15.4로 업데이트한 후에 배터리가 예기치 않게 빨리 소모될 수 있는.. 2022. 4. 1. 사심가득 애플소식 - 3월 넷째 주 3월 넷째 주 한 주간의 애플 소식을 개인적인 취향으로 사심을 듬뿍 담아 정리해보자. IAP 인기(?)한국의 IAP(In app purchases, 앱 내 결제) 금지법은 콘텐츠 제공사에겐 당연히 의무가 아니기 때문에 당연하게 결제 방법을 고를 권한이 있다. 불행히도 애플의 IAP만큼 편한 결제 수단을 제공할 방법은 없을 것이기 때문에 웬만해선 IAP를 쓰는 게 맞는 것 같다. 심지어 중소 개발사에겐 수수료도 절반으로 깎아주니 말이다. 강제금지법에도 상위 게임 모두 '인앱결제'채택...'외부결제의무화 우려'시각도인앱결제 강제금지법(개정 전기통신사업법)이 15일부터 시행됐지만 앱 마켓에서 매출 규모가 가장 큰 게임부문 매출 50개 게임 중 외부결제를 사용하는 게임은 하나도 없는 것으로 확인됐다. 외www.. 2022. 3. 27. Scratchpads - 긴급(?) 메모 작성용 vscode 플러그인 개인적으로 Emacs에서 좋아하는 기능 딱 하나를 꼽으라면 어이없게도 스크래치 버퍼(Scratch Buffer)를 고른다. 뭐냐 하면 그냥 아무거나 막 쓸 수 있는 임시 메모장 같은 거다. 이맥스의 기본 버퍼 중 하나일 뿐이지만 개인적으론 굉장히 자주 사용하는 기능이다. 설정에 따라 메모 내용이 저장되기도 하지만 기본적으론 저장이 되지 않는 정말 임시 용도로만 쓰는 메모 공간이다.최근에는 Emacs 대신 vscode를 메인 에디터로 바꾸면서 난감함을 겪게 되었다. 바로 이 스크래치 버퍼가 없다는 문제 말이다.물론 해결 방법이 없는 것은 아니다. 그냥 새 파일 하나를 열어서 막 쓰면 된다.근데 이런 수작업이 귀찮았다. 파일 저장하지 않으면 뭐라 하고, 또 코드를 작성하려면 특정 파일 확장자를 강요받기도 하.. 2022. 3. 27. 개인정보 넘기지 않기라는 사기(?) 여기 한 기사가 있다. [단독] 개인정보 엿보는 맞춤광고의 종말구글, 안드로이드 앱에서 제3자에 정보제공 막기로 애플 이어 정보보호 강화 年700조원 디지털광고 시장 기존 전략 전면수정 불가피www.mk.co.kr제목 하여 대단하다. 구글의 "프라이버시 샌드박스"라 불리는 기술로 앱에서 개인 정보를 무단으로 가져갈 수 없게 하는 장치라고 한다.근데 어디서 많이 본 것 같다. 작년에 나온 iOS의 "앱 추적 투명성(App Tracking Transparency)" 정책과 비슷하다. 이 정책도 앱에서 개인 정보를 가져가기 위해선 반드시 사용자의 동의를 얻어야 하는 장치다. 이것과 비슷한 정책을 구글도 곧 추진한다는 이야기다.이 정책으로 피해를 본 유명한 미국 대기업이 하나 있다. 페이스북이다. 지금은 메타(.. 2022. 3. 20. iOS 15.4, macOS 12.3 업데이트 오늘 iOS 15.4, macOS 12.3 업데이트가 공개되었다. 항상 정리해 둔다는 게 자꾸 깜빡하데 이번에는 발견하자마자 신속하고 간단하게 정리해본다.iOS 15.4지난번에 공개되어서 화제가 된 "마스크 쓴 채로 Face ID" 기능이 공식적으로 추가되었다. 즉 마스크 쓴 채로 얼굴 인식을 할 수 있다는 말이다. 어떤 나라에서는 이제 마스크 의무화도 해제한다는데 너무 늦은 거 아니냐는 생각도 없지는 않지만, 그래도 미래에 공기로 전염되는 전염병이 또 창궐하지 말란 법은 없기 때문에 반가운 업데이트이면서도 동시에 보안성에 영향이 있는 거 아닌가 하는 걱정도 된다. 다만 이 기능은 아이폰 12 이상 등 최신의 아이폰 장비에서만 동작한다.물론 그 외에도 여러 업데이트가 있다. 대략 정리하자면 이렇다.Fac.. 2022. 3. 15. vscode에서 파일을 새 탭으로만 열리게 하기 vscode에서 파일 탐색기나 검색 등에서 파일을 열고 나서 다른 파일을 볼 일이 있어서 다른 파일을 클릭하면 이전에 열었던 탭에 그 파일이 열리는 경우가 있다. 이 경우 이전에 보던 파일이 탭에서 사라져 버려서 매우 난감한 경우가 많았다. 물론 메뉴에서 "이동 - 뒤로"를 선택하면 다시 돌아갈 순 있지만 매번 그러는 것도 상당히 귀찮은 일이다. 어쨌든 보던 파일의 탭이 다른 파일로 바뀌는 것은 개인적으로 상당히 황당하게 느껴졌다. 이걸 바꿀 순 없을까 찾아보니 다행히도 해결 방법이 있었다. Preview(미리보기) 기능 vscode에서는 파일을 열 때 특수한 기능이 있다. 이름하여 대충 미리보기(preview) 모드다. 아마도 코드를 읽기만 할 목적으로 만들어 둔 모드 같다. 기본 설정 상태에서 파일 .. 2022. 3. 13. Peek Performance 애플 이벤트 주관적인 정리 예보(?)대로 새벽에 애플에서 또 뭔가 대단한 짓을 벌였나 보다. 역시나 육아에 지쳐 쓰러진 나에게 생방송을 보는 것은 무리였다. 그래서 대충 여기저기서 찾아본 정보들을 모아서 굉장히 주관적인 느낌을 간단히 정리해 보고자 한다. 물론 순서나 양은 개인적인 선호 순이다.M1 Ultra 등장사실 이번 발표에서 기대했던 것은 미친 전성비의 프로세서인 M1의 후속작 M2였다. 더 미친 전성비를 보여주지 않을까 하는 기대에서였다.하지만 M2는 없었다.대신 M1 최고사양이었던 M1 Max 두 개를 붙여서 만든 모양의 M1 Ultra가 발표되었다. 맥 프로에 탑재될 프로세서의 발표가 아직 남았을 거라는 예상이 있긴 했지만 그게 이번일 줄은 몰랐다. 어쨌든 미친 프로세서가 또 하나가 세상에 나타났다.다만 진정한 맥 프.. 2022. 3. 9. Swift에 어울리는 Objective-C 코드 작성하기 이 글은 Swift 호환성이 좋은 Objective-C 코드를 작성하는 방법에 관한 내용이다. Swift라는 언어가 워낙 쓰기 편하게 나와서 이제는 과연 얼마나 Objective-C 코드가 쓰일까 알 수 없는 요즘이다. 그래도 개인적으로는 쓸 수밖에 없는 상황이기도 하고 아직 쓰이는 곳이 분명 있으리라는 믿음으로 이런 글을 쓰게 되었다.참고로 이 글의 핵심 키워드는 아마도 NS_SWIFT_NAME인 것 같다.C 함수 별명Objective-C 코드로 작성한 C 함수의 인터페이스는 Swift 측에서 보면 좀 답답할 수도 있다. 예를 들어 아래 함수가 있다고 치자.int SuperGoodAdditionFeature(int a, int b){ return a + b;}이 함수를 Swift에서 접근하려면 아.. 2022. 3. 6. 애플 이벤트 소식: 2022년 3월 9일 새벽 3시 미국 시간 태평양 표준시 기준 3월 8일 오전 10시, 한국 시간으로 3월 9일 새벽 3시 즉 하필이면 대선 당일날 새벽에 애플에서 뭔가의 이벤트를 연다는 메일이 날아왔다. 성능 엿보기(Peek performance)라는 제목과 함께 속이 끝까지 보이지 않는 애플 로고 이미지를 선보이면서 말이다. 일단 메일 내용 자체에서는 더이상 알 수 있는 정보는 없는 것 같다. 여전히 애플스러운 애플이었다. 어쨌든 여기까지만 적으면 너무 심한 포스팅이 되어버릴 것 같으니 루머라도 좀 정리해보자. 발표 가능성이 높은 신제품들 아마도 작년 이 시기에 애플 실리콘의 첫 상용화 모델인 M1이 발표되고 이어 이를 탑재한 맥북에어가 발표되었었다. 이걸 관례(?) 삼아 예측하자면 역시 M1의 후속작 M2가 발표되고 역시 이를 탑.. 2022. 3. 3. mdfind로 터미널에서 파일 검색하기 mdfind는 macOS에서 파일을 검색할 때 사용하는 커맨드라인 유틸리티다. 이 명령은 마치 리눅스의 locate 명령과 비슷하게 파일시스템의 모든 파일을 대상으로 검색할 수 있다. 다만 Spotlight 유틸리티이기 때문에 인덱싱 제한 설정을 따라갈 것으로 추측된다. 어쨌든 이 mdfind의 사용법 몇 가지를 살펴보자.사실 macOS에서도 locate 명령은 지원된다. 단지 별도의 활성화 과정을 거치지 않으면 사용할 수 없을 뿐이다.mdfind로 특정 이름이 들어간 파일 검색하기아래 명령은 파일 절대 경로에 foo라는 이름이 들어간 모든 파일을 검색한다.mdfind foomdfind로 특정 이름의 파일을 검색하기아래 명령은 파일 이름이 foo.bar인 모든 파일을 검색한다.mdfind -name fo.. 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. edamagit, vscode용 Magit vscode가 대중화되고 있는 시대다. 과거 IE와 비슷하게 독점 수준의 에디터가 되어가고 있다고 평가될 정도다.하지만 그럼에도 불구하고 개인적으로 Emacs를 주력으로 써오고 있었다. 그런데 에디터로써의 이유는 별로 없고 사실상 Magit이 Emacs를 쓰게 만드는 주요한 이유 중 한나였다. 그만큼 Magit이 편리하고 빠른 git 작업이 가능해서였다. vscode를 쓸 때조차 Emacs를 띄우는 이유도 역시 Magit이 필요했기 때문이다.참고로 Magit은 Emacs용 Git 클라이언트 확장으로 편리하고 직관적인 UI를 제공하며 키보드로 Git의 모든 작업을 할 수 있도록 구성되어 있다.덕분에 Emacs는 추세에 맞지도 않게 내 메인 에디터(겸 각종 유틸리티 지원 환경)의 지위에 있었다.edamagi.. 2022. 2. 13. Electron에서 타이틀 바 숨기기 및 창 이동 문제 최근의 macOS 앱들은 전통적인 타이틀 바 대신 타이틀 바 영역까지 툴바나 콘텐츠로 꽉꽉 채우는 것이 유행인 것 같다. 개인적으로도 이런 디자인이 유려하고 쓸모가 많은 것 같아 선호하기도 한다. 물론 이런 형태를 Electron에서도 구현할 수 있다. macOS에 어울리는 타이틀바 숨기기 아주 간단하다. 아래와 같이 BrowserWindow 생성 시 titleBarStyle을 hiddenInset으로 설정하면 타이틀 컨트롤만 남고 타이틀바 자체는 사라진다. window = new BrowserWindow({ ... titleBarStyle: 'hiddenInset', ... }); 타이틀 바에 있던 닫기나 풀스크린 버튼 등의 컨트롤과 기능은 그대로 남기 때문에 타이틀바 영역을 원하는 대로 꾸밀 수 있다.. 2022. 2. 6. Electron의 app 정보를 얻기 위한 삽질기 개인적으로 Electron으로 공부 겸 사이드 프로젝트를 시작하고 있었다. 그 과정에서 앱의 데이터를 데이터베이스에 저장하기 위해 몇 가지 정보를 찾아보다 데이터베이스 파일을 저장할 위치에 대해서 정해야 할 시기가 왔다. 즉 앱 데이터 저장 디렉터리를 알아내기 위함이 이번 여정(?) 목적이다. 참고로 사용한 Electron은 현시점에서 가장 최신 버전인 16.x 버전이다. 목표는 userData 방법은 구글링 과정으로 쉽게 알아내었다. Electron에서 제공하는 app 인스턴스의 getPath 메서드를 통해 여러 디렉터리 정보를 얻을 수 있고 이 중에 userData가 내 목적에 딱 맞는다는 것이었다. 참고로 appData도 있지만 이건 앱 전용 디렉터리가 아니라 이 앱 정보 디렉터리를 모아두는 디렉터.. 2022. 1. 30. Electron에서 iframe 사용하기(?) Electron에서 iframe 태그를 사용할...수 없다.이 무슨 시작부터 글 제목이랑 반대되는 이야기를 하는 건가 싶을 텐데, 사실 Electron이 보안상의 문제로 iframe을 이용한 외부 사이트 접근을 기본적으로 차단하고 있다고 보면 된다. 외부 사이트에서 내 로컬에서 돌아가는 Electron 앱의 node.js 환경을 그대로 사용할 수 있게 되기 때문이다.물론 대안은 있다iframe 대신 사용할 수 있는 대안으로 Electron은 webview 태그를 지원한다. 별도의 크로미움 프로세스로 동작하는 웹 뷰를 앱 내부에 넣을 수 있게 해주는 마법이다.그런데 이 webview는 기본적으론 비활성화 상태이기 때문에 우선 설정에서 열어줘야 한다. Electron 앱의 시작 스크립트에서 BrowserWi.. 2022. 1. 23. Electron + Svelte로 데스크톱 앱 개발 시작해보기 개인 프로젝트를 여러 방식으로 해보다 Electron을 이용해볼까 하는 약간의 욕심이 생겼다. 그래서 공부를 하던 중 웹 UI 프레임워크를 알아두면 좋을 것 같아서 찾아보다 Svlete의 평이 좋을 것을 보고 이것을 이용해 앱 개발을 시작해 보려고 했다. 이 글은 개발 환경을 셋업 하면서 검색했던 자료들과 함께 개인적으로 겪은 약간의 삽질의 결과가 섞여있다.Svelte 프로젝트 생성하기Electron은 웹 페이지를 로컬 크로미움을 통해 보여주는 용도이기 때문에 프로젝트의 시작점에는 맞지 않는다. 여기서는 Svelte 프레임워크를 이용해 웹 페이지를 구현할 것이기 때문에 Svelte 프로젝트로 시작한다.Svelte 프로젝트 템플릿은 npx로 간단하게 가져올 수 있었다.npx degit sveltejs/te.. 2022. 1. 16. org-publish에서 탈출하기 그냥 개인적인 욕심이긴 했지만 그동안 수많은 고난(?) 속에서도 억지로 개인 노트를 Emacs에서 org 문서로 작성해서 org-publish로 출력해서 Github Pages에 정적 사이트로 올리는 짓(?)을 했다. 구글 크롤러가 안 도와주고 애드센스도 붙이는데 우여곡절이 있었다. 그래도 대부분 원하는 바를 성공시키긴 했었다. 여전히 구글이 사이트맵은 잘 안 긁어가지만 말이다.하지만 이제는 다른 이유로 블로그 단일 체제로 바꾸기로 결심했다. Emacs 때문이다. 개인적으로 정말 선호하는 에디터이자 환경인 이 소프트웨어 때문이다.사실 명확하게 말하자면 Doom Emacs의 문제다. 업데이트를 할 때마다 높은 확률로 뭔가 문제를 겪었다. 특히 유독 org-publish를 개인적으로 심하게 커스텀한 코드 실.. 2022. 1. 10. 이전 1 ··· 34 35 36 37 38 39 40 ··· 48 다음 728x90 반응형