반응형 전체 글861 Doom Emacs에서 Python 개발 환경 설정하기 Doom Emacs는 상당히 설정이 잘 되어 있는 설정 팩이지만 여기에 Python 모듈만 집어넣는다고 파이썬 개발 환경이 원하는 대로 완벽하게 잡히지는 않습니다. 이 글은 Doom Emacs에서 Python 개발 환경을 설정하기 위한 주관적인 기초 설정을 하는 법을 정리합니다.참고로 이 글을 쓰는 사람은 macOS가 돌아가는 맥을 사용 중입니다. 따라서 윈도 환경에서는 좀 차이가 날 수 있습니다.init.elDoom Emacs 설정의 가장 기본은 바로 이 init.el에서 시작되지요. SPC f p 키를 눌러서 init.el 파일을 쉽게 열 수 있습니다. 이 파일에는 각 모듈을 카테고리별로 정리해놓고 주석만 풀어주면 바로 사용할 수 있게 준비되어 있습니다.개인적으로는 syntax 모듈과 python 모.. 2020. 10. 21. macOS에서 SVG 파일을 PNG로 변경하기 요즘은 macOS나 웬만한 브라우저에서는 SVG 벡터 이미지 포맷을 지원하기 때문에 그냥 써도 무방한 경우가 많겠지만, 그래도 때에 따라서 SVG 벡터 이미지 포맷 파일 대신 PNG 등의 픽셀 이미지 포맷 파일이 필요한 경우가 있을 수 있습니다. 이 글은 간단한 터미널 커맨드를 이용해 macOS에서 SVG 파일을 PNG 포맷으로 변경하는 방법을 간략히 정리합니다.여러 방법이 있을 순 있겠지만 개인적으론 librsvg에 포함된 도구를 이용하는 것이 가장 간단하였기에 즐겨 사용합니다. 다만 기본적으로 설치되어 있지는 않기 때문에 Homebrew 등을 이용해 설치해야 합니다.brew install librsvg이제 설치가 되었으면 rsvg-convert 유틸리티를 이용해 포맷을 변경할 수 있습니다. 다만, S.. 2020. 10. 19. Org Mode에서 노션(Notion)으로 갈아타기 제법 오랜 기간 동안 개인적인 용도의 노트들을 Org Mode를 이용해 작성하고 관리했었습니다. 하지만 최근에는 노션(Notion)이 무료 플랜의 제한을 많이 풀게 되면서 노션으로 노트 플랫폼을 이주했습니다. 이번 글은 왜 노트 플랫폼을 옮겼나 간단히 매우 주관적으로 정리해보는 글입니다.Org ModeOrg Mode는 이맥스(Emacs)의 킬러 소프트웨어라 불릴 정도로 유명한 빌트인 확장입니다. 이 확장에는 문서나 어젠다와 관련된 다양한 기능이 모여 있습니다. Org Mode 자체에도 플러그인 확장을 추가하여 Org 문서 기반의 데이터베이스를 구축하는 등 Org Mode는 사실상 Org 문서 기반의 플랫폼으로 볼 수 있습니다.앞서 이미 갈아탔다고는 표현했지만 개인적인 용도의 노트를 정리하기 위한 용도로만.. 2020. 10. 16. Flutter에서 애플 앱스토어 업로드 시 최소 버전 표기 문제 Flutter를 업그레이드한 이후인지, 아니면 Xcode 12로 업그레이드 이후인지는 명확하지 않지만, 어느 날 fastlane 연동으로 앱스토어 업로드를 진행하는 도중에 아래와 같은 오류 메시지를 만났습니다.ERROR ITMS-90208: "Invalid Bundle. The bundle Runner.app/Frameworks/App.framework does not support the minimum OS Version specified in the Info.plist."이 문제를 해결해봅시다.약간 삽질을 하긴 했지만 이 문제의 해결은 생각보다 간단했습니다. 프로젝트와 타겟 그리고 앱 프레임워크의 최소 요구 버전(MinimumOSVersion)을 동일하게 맞춰주니 해결되었습니다.우선 Xcode로 io.. 2020. 10. 13. Python Exceptions 간략 정리 이 글은 파이썬(Python)의 예외 처리(Exception Handling)를 간단히 정리합니다. 개인적인 용도로 메모했던 내용을 글로 작성하는 거라 원하시는 내용이 없을 수도 있다는 점 양해 부탁드립니다. 문법은 3.x 기준이며 2.x에서는 약간의 수정이 필요할 수 있습니다만 웬만하면 3.x 쓰세요.예외(Exceptions)가 뭐냐고요? 뭐 그냥 에러 혹은 오류라고 치죠. 성공이 아닌 나머지 모든 명확한 경우를 예외사항으로 취급할 수 있습니다.예외 처리하기파이썬의 예외 처리 방식은 try 블록 내에서만 가능합니다. 여기 안에 예외가 발생할지도 모를 코드를 실행시키고 여기서 예외가 발생하면 여기에 연결된 except 블록에서 해당 예외를 처리할 수 있습니다.try: do_what()except: .. 2020. 10. 9. 10월 13일 애플 이벤트 소식 애플의 신제품 발표 행사로 추측되는 이벤트 뉴스 레터가 발송되었습니다. 이번 이벤트는 'Hi, Speed'라는 제목으로 미국 시간 10월 13일 오전 10시, 한국 시간으로 10월 14일 새벽 2시 열립니다. 장소는 애플 파크라고 되어있지만 이번에도 사전에 제작한 영상을 방영하는 것으로 대체하지 않을까 싶네요.지난 행사에서 제 예상을 대판 깨 먹고 아이폰 신제품 발표가 없었는데 이번에는 아마도 거의 확실하게 새 아이폰이 발표되지 않을까 생각됩니다.그런데 제목에서 속도(Speed)를 강조한 것은 뭔가 다른 의미가 있지 않을까 생각됩니다. 대표적으로 새 아이폰에 5G 탑재를 생각할 수 있겠네요. 4G LTE에 비해 5G는 당연히 빠르니깐요. 그 외에 혹시 애플 실리콘이 탑재된 새로운 맥 제품이 발표되는 것일.. 2020. 10. 7. Python 3.9 변경사항 간단 정리 파이썬(Python) 3.9 버전이 공식 릴리즈 되었기에 이에 관해 간단히 살펴보는 글입니다. 다만 이 글은 문법적으로 변경되는 사항만 정리합니다. 파서가 바뀌는 등의 변화는 저 같은 사람에겐 체감이 잘 안 되기도 하니깐요.사전형 합치기 및 수정 연산자 추가사전형(dict)끼리 합치기를 지원하는 | 오퍼레이터가 추가되었습니다.>>> {'a': 1, 'b': 2} | {'c': 3, 'd': 4}{'a': 1, 'b': 2, 'c': 3, 'd': 4}합쳐질 때 중복되는 키는 업데이트 되는 형태 같습니다. 따라서 아래와 같이 |= 오퍼레이터를 이용해 사전형의 값을 업데이트 할 수도 있습니다.>>> d = {'a': 111, 'b': 2}>>> d |= {'a': 1, 'c': 3}>>> d{'a': 1, .. 2020. 10. 6. 러스트의 열거형(Enums) 살펴보기 열거형은 일반적으로 상태(state)를 정의하기 위한 타입입니다. 하나의 타입에 여러 선택 가능한 값을 정의해두고 이 값들 중 하나를 선택할 수 있게 하기 위한 특수한 타입이지요. 러스트(Rust)도 열거형 타입을 지원하며 그 목적도 비슷합니다. 다만 각 값에 별도로 가질 수 있는 독립된 추가 값을 정의할 수 있다는 점이 독특한데 스위프트(Swift)의 열거형과도 비슷한 느낌을 받았습니다. 열거형(Enums) 러스트의 열거형은 아래와 같은 형식으로 정의할 수 있습니다. enum Gender { Male, Female, Other, } 위 코드는 세 가지 값 즉 Male, Female, Other라는 세 가지 값 중 하나를 가질 수 있는 Gender라는 타입을 정의하는 예제입니다. 다른 언어에 비해 약간 .. 2020. 10. 4. 오늘도 온다 사기메일 다음에 접속해보니 오랜만에 메일이 하나 있다는 표식이 떠있었다. 뭐 스팸메일이겠지 하면서 열어봤다. 그런데 무작정 스팸메일로 넘기기에는 약간은 신경을 써야 할 메일이 와있었다. 바로 아래와 같은 내용이다. 애플에서 온 영수증이라면 신경을 써야 한다. 난 앱등이니까. 하지만 내가 결제한 적이 없고, 결제 문자도 와있지도 않았고, 금액도 그냥 넘기기엔 좀 미묘한 50달러라는 점, 정체를 알 수 없는 코인이라는 점에서 사기 냄새가 솔솔 나기 시작했다. 하단의 Manage or Cancel Order 링크의 주소를 살펴본다. 애플 주소가 아니다. 이 정도면 99% 가짜 주소다. 간단하게 내용물을 살펴보자. 어딘가의 주소로 리다이렉트 시킨다. 됐다. 이 정도면 더 이상 확인할 필요가 없다. 공식 사이트가 주소를 .. 2020. 9. 30. Swift 5.3에서는 뭐가 바뀌었을까? Xcode 12.0이 정식 릴리즈 되면서 이제 Swift 5.3도 현역이 되었습니다. 이미 많은 업데이트 내역을 정리한 글들이 있지만, 개인적으로 공부 삼아서 이번에도 늦었지만 정리해 보고자 합니다. 다만 개인적으로 내부 구현이 바뀌는 것은 딱히 관심이 없고 공부라는 의미도 있는 만큼 이 글은 문법적으로 변경되는 사항만을 정리합니다. 제안의 내용만으론 이해가 안 되는 내용도 있어서 여기저기 찾아보면서 정리했기 때문에 일부 틀린 내용이 있을 수도 있습니다. 여러 예외를 처리할 수 있는 catch 절 SE-0276 Multi-Pattern Catch Clauses 제안으로 구현된 기능입니다. 기존에는 예외 처리를 위한 do - catch 구문에서 catch는 하나의 예외만 잡을 수 있었습니다. 5.3부터는 .. 2020. 9. 28. Swift System 오픈소스화 소식 애플에서 저수준 시스템 콜 라이브러리인 Swift System을 오픈소스화 했다는 소식이 공식 블로그를 통해서 전해졌습니다. Swift System is Now Open Source In June, Apple introduced Swift System, a new library for Apple platforms that provides idiomatic interfaces to system calls and low-level currency types. Today, I’m excited to announce that we’re open-sourcing System and adding Linux support! Our visi swift.org Swift System은 멀티 플랫폼 라이브러리로 시스템 콜.. 2020. 9. 27. iOS 시뮬레이터에서 애플 인증이 실패하는 문제 언제부터였는지 모르겠지만 Xcode 12가 등장하기 약간 이전부터 iOS 시뮬레이터에서 애플 인증이 실패하는 문제를 겪었습니다. 물론 이전에는 잘 되던 프로젝트였습니다. 에러도 특별히 알려주는 에러 없이 그냥 실패했습니다.이 문제는 시뮬레이터 보안이 강화되면서 나타난 현상으로 쉽게 말해 시뮬레이터에서 이중 인증을 진행하면 해결됩니다.시뮬레이터에서 AppleID로 로그인된 상태에서 설정(Preferences)으로 들어가서 제일 상단의 이름이 표시되는 곳을 누른 뒤 암호 및 보안(Password & Security)을 들어갑니다.그러면 여기에 Apple ID를 사용하는 앱(Apps Using Apple ID) 항목이 보입니다. 여길 누르면 이중 인증을 요청하게 됩니다. 이후에는 사용자가 설정한 기기로 오는 .. 2020. 9. 20. flutter: 당신의 Xcode는 너무 구버전이예요! 이 글은 팁이라기보다는 그저 로그에 가깝습니다.어느 날 flutter run 커맨드로 개발 중인 프로젝트를 실행시켜 보다 아래와 같은 메시지를 보게 되었습니다.Your Xcode version may be too old for your iOS version.네. 바로 제목의 그 내용이지요.스크린샷으로 보면 빨갛게 아주 기분 나쁜(?) 뭔가 해결해야 할 문제로 보입니다.그런데 문제는 이 메시지의 내용이었습니다. 왜냐하면 제가 당시 사용하던 Xcode는 12 버전으로 정식 릴리즈 된 지 하루 정도 지난, 당시 가장 최신 버전이었기 때문이었죠.구글은 검색엔진 빼고는 뭔가 나사가 빠진 것 같다는 느낌을 종종 받는데 flutter도 비슷한 느낌을 자주 받습니다.물론 사람이 만드는 거니 실수는 없을 수가 없겠지요... 2020. 9. 18. 2020년 9월 애플의 발표 행사 소식 이미 많은 사이트의 뉴스로도 올라왔지만 공식적으로 애플이 이메일로 행사의 알림을 보내고 있습니다. 미국 (태평양 표준시) 시간 기준 2020년 9월 15일 오전 10시, 한국 시간 기준으로 2020년 9월 16일 새벽 2시입니다. 어김없이 이번에도 새벽 2시이기에 밤잠을 설치시는 분들이 좀 계실지도 모르겠네요. 9월 행사가 늘 그래 왔듯이 아마도 이번 키노트는 아이폰 신제품의 발표에 많은 분량이 할당될 것으로 보입니다. 물론 애플 워치나 아이패드 등의 다른 신제품들도 소개될 수 있겠지만 아이폰이 항상 메인이었지요. 다만 아이폰의 OS인 iOS와 관련된 발표는 주로 6월쯤 개최하는 WWDC에서 하므로 이번에는 아마도 없겠지요. 역시 전례대로라면 이날 발표에는 맥 신제품은 아마도 나오지 않을 것 같습니다. .. 2020. 9. 9. 러스트의 가변성(Mutability) 이야기 가변성(Mutability)과 불변성(Immutability)은 현대적인 언어에서는 제법 잘 다뤄지는 주제일지도 모릅니다. 그도 그럴게 코드의 구조나 성능이나 메모리 효율성이나 관리 등 다양한 면에서 영향을 끼치기 때문이니깐요. 러스트(Rust)도 비슷한 이야기를 할 거리가 있네요. 사실 이 이야기는 초반에 변수나 타입과 관련된 이야기와 함께 등장했었어야 하는 게 아닐까 할 정도로 기초적인 내용일지도 모릅니다. 불변 변수(Immutable Variables)와 가변 변수(Mutable Variables) 불변 변수는 생성될 때 받은 초기값을 변경할 수 없는 변수를 의미합니다. 이미 앞선 글들에서도 언급했지만 러스트의 변수는 기본적으로 불변성을 가집니다. let age = 16; age = 17; // E.. 2020. 9. 4. 애플 앱 심사 지침 업데이트 애플이 공식 블로그를 통해서 앱스토어 앱 심사 지침 업데이트를 알려왔습니다. 간단히 정리하자면 아래와 같은 내용입니다.이미 심사를 통과하여 등록된 앱의 경우 법적인 문제를 제외하고 앱의 업데이트를 지연시키지 않습니다.개발사에서 심사 가이드라인에 대한 컴플레인 및 의견 제시가 가능해집니다.개인적으로 여기서 첫 번째 변동사항은 저도 불평불만이 많았던 부분입니다. 예를 들어 처음 앱이 심사를 통과하여 앱을 다운로드할 수 있는 시점에서 겉보기에는 아무것도 바뀌지 않은 버그 수정 업데이트를 올렸는데 갑자기 앱의 스크린샷을 문제 삼았던 경우나, 혹은 애플 로그인 버튼이 가이드라인에서 추천하는 내용과 다르다는 등등 다양한 명목으로 심사가 리젝되는 사유를 몇 번 겪었기 때문입니다.결과적으로, 이제부터 첫 등록을 제외하.. 2020. 9. 1. 러스트의 미래는 어떻게 될까? 최근 모질라(Mozilla) 재단과 관련된 암울한 소식이 나오고 있지요. 정확하게 재단이 아닌 회사(Mozilla Corporation)의 이야기지만 수익 문제로 운영이 힘들어지고 있어서 모질라의 많은 인력이 해고되고 있습니다. 모질라 파이어폭스의 핵심인 Servo 엔진 개발팀 또한 마찬가지로 운명이 암울합니다.러스트(Rust)도 2010년 모질라의 연구 프로젝트로 시작한 언어인 만큼 모질라 재단의 상황에 영향을 받을 수밖에 없습니다. 그래서 러스트를 사랑하는 많은 사람들의 걱정 또한 끊이질 않고 있습니다.그래서 러스트는 어떻게 될까요?러스트는 이제 모질라에서 벗어나 별도의 재단으로 독립할 예정입니다.https://blog.rust-lang.org/2020/08/18/laying-the-foundatio.. 2020. 8. 19. 러스트의 구조체 살펴보기 러스트(Rust)는 다양한 타입을 제공합니다. 원시 타입의 종류도 많지요. 그리고 튜플과 같이 다양한 타입을 묶을 수 있는 그룹형 타입도 있습니다. 그렇다면 러스트의 복잡한 자료구조는 튜플만 쓰면 되는 것일까요? 물론 아니니까 이런 글을 쓰고 있는 것이겠지요. C의 구조체(Structs)와 비슷하게 러스트도 구조체라 불리는 특수한 복합 타입을 정의하는 기능을 가지고 있습니다. 현대적인 OOP 언어의 클래스(class)와도 비슷하다고도 볼 수 있겠지만 물론 다른 겁니다. 러스트에서 구조체는 세 가지 의미가 있습니다. 하나는 C의 구조체와 비슷한 것, 다른 하나는 튜플 구조체, 다른 하나는 단위로만 쓰는 구조체의 세 가지입니다. 여기서 아무래도 제일 중요한 것은 처음의 C의 구조체와 비슷한 것이겠지요. 일반.. 2020. 8. 19. 이전 1 ··· 38 39 40 41 42 43 44 ··· 48 다음 728x90 반응형