본문 바로가기
반응형

기술적인 이야기301

흥미로운 링크들 2월 2주차 이번 주에 개인적으로 가장 관심 가는 소식은 Xcode 11.4의 베타 테스트 시작과 함께 소개된 신기능인 것 같습니다. 그래서 Xcode와 관련된 소식부터 전합니다. https://jusung.github.io/apns-test/ [Xcode] 시뮬레이터에서 Remote Push 시뮬레이션하기 Xcode 11.4부터 시뮬레이터에서 Remote Push Notification의 시뮬레이션을 지원합니다. 😄 jusung.github.io Xcode 11.4부터 시뮬레이터로 푸시 알림을 테스트할 수 있는 기능이 추가되었습니다. 이것을 사용하는 원초적인(?) 방법이 상세히 설명된 글입니다. https://github.com/AvdLee/Poes AvdLee/Poes A Swift command-line too.. 2020. 2. 17.
Python 3 정적 타이핑 소개 및 소감(?) 파이썬은 동적 타이핑 언어입니다. 쉽게 말해서, 하나의 변수가 타입에 구애받지 않는 데이터를 가리킬 수 있습니다. 그래서 동적 타이핑은 쉽고 간결한 코드를 만들 수 있기도 합니다. 하지만 이런 장점과 함께 단점도 존재합니다. a = 100 a = "String" 동적 타이핑은 이렇게 단순한 코드를 만들 수 있지만, 변수에 전달되는 값이 과연 원하는 것으로 전달되는 지를 감시할 수 없다는 큰 단점이 있습니다. 예를 들어 특정 함수를 호출할 때 특정 매개변수(parameter)에는 정수가 전달되고 어떤 매개변수에는 문자열이 전달되어야 하는데 이것이 잘못되었다고 할지라도 실제로 실행시키기 전까진 문제가 있는지 없는지 인터프리터가 파악해 주지 않습니다. def make_double_prev(v): return .. 2020. 2. 13.
Python에 F-string 이라는 게 있었다? 현대적인 언어에서는 대체로 String Interpolation이라 불리우는 기능들이 있습니다. 이 기능은 문자열 내에 특정 문자열을 집어넣거나 치환시키기 위한 특수한 문법이자 기능입니다. 만약 이런 기능이 없다면 문자열 조합에 상당한 난관(?)이 있겠지요. 이번 글은 이런 기능이 파이썬에도 있다는 것을 알게 되어서 공부 겸 작성해 본 글입니다. 기존의 파이썬의 이런 비슷한 기능으로 % 사인을 이용한 printf식 포매팅이나 format()을 활용한 치환법이 있었습니다. fs = '%d + %d = %d' % (1, 2, 3) fmts = '{} + {} = {}'.format(1, 2, 3) 하지만 이 방법의 문제는 명확했죠. 치환될 위치와 실제로 입력될 값을 다른 위치에 입력하다 보니 결국 눈으로 하.. 2020. 2. 11.
흥미로운 링크들 2월 1주차 개인적으로 흥미로웠던 링크를 소개하는 글입니다. 이번 글은 애플의 개발자 프로그램 연회비 면제 소식과 함께 시작합니다. https://developer.apple.com/news/?id=02032020a&1580777221 Membership Fee Waivers Now Available in More Countries - News - Apple Developer We’re pleased to announce that Apple Developer Program membership is now available at no cost for eligible organizations based in Australia, Canada, France, Germany, Israel, Italy, Mexico, and .. 2020. 2. 10.
Tmux에서 트루컬러 이맥스 사용하기 앞서 쓴 터미널에서 트루컬러 이맥스 사용하기에 대한 글의 연장선의 내용입니다. 터미널에서 24비트 트루컬러를 지원하더라도 Tmux 안에서 이맥스를 실행시킬 경우 색상이 이상하게 표시되는 경우도 있습니다. 이 경우는 아마도 tmux 가 사용하는 screen-256이라는 터미널 타입의 문제로 추측됩니다. 이 경우도 앞의 터미널 타입을 만드는 방식과 비슷한 방법으로 해결할 수도 있습니다. 우선 tmux 설정에 아래 내용을 추가합니다. set -ga terminal-overrides ",st-256color:Tc" 이후 tmux 를 재시작합니다. 다음으로 아래 내용을 screen-24bit.terminfo 라는 파일에 저장합니다. 역시 위치도 상관은 없지만 셸에서 접근하기 편한 경로가 좋습니다. # From [.. 2020. 2. 8.
터미널에서 트루컬러 이맥스 사용하기 저는 터미널로 iTerm2를 사용합니다. 그리고 iTerm2는 트루컬러(24bit True Color)를 지원하는 터미널입니다. 그런데 이상하게도 이맥스(Emacs)를 터미널 모드로 띄워보면 GUI 모드와 색상이 다른 경우를 종종 볼 수 있습니다. 이는 사용하는 터미널 타입이 트루 컬러 모드가 아니기 때문에 나타나는 어쩔 수 없는 증상입니다. 터미널에서 트루컬러를 제대로 지원하기 위해서 약간의 트윅(tweak)이 필요합니다. 참고로 이 트윅은 개인적으로 macOS에서 iTerm2로만 확인했기 때문에 다른 OS나 터미널 앱에서는 어떻게 되는지는 잘 모른다는 것에 주의 부탁드립니다. 우선 xterm-24bit.terminfo 라는 파일을 만들고 아래 내용을 붙여 넣습니다. xterm-24bit|xterm w.. 2020. 2. 7.
iCloud Drive를 드롭박스처럼 사용하기 드롭박스(Dropbox)는 개인적으로 정말 오래 써 온 클라우드 동기화 스토리지 서비스였습니다. 하지만 얼마 전부터 무료 계정의 동기화 제한 기기 대수가 3대로 제한되기 시작했습니다. 저는 이미 5대의 장비를 사용하고 있었고 여기에 추가로 맥북프로를 하나 더 장만하게 되었는데 덕분에 드롭박스를 더 이상 쓸 수 없는 몸(?)이 되어 버리더군요. 그래서 여러 대안을 찾아보다 일단 아이클라우드 드라이브(iCloud Drive)를 공유 스토리지로 써보기로 했습니다. 당연하게도 파인더를 통한 사용은 어렵지 않습니다. 이미 iCloud라는 항목에 좌측 리스트에 나타나고 있기 때문이지요. 특이하게도 실제로는 존재하지 않는 다양한 링크들이 나타나고 있다는 점이 나타나고 있긴 합니다...🤔 그런데 불행히도 아이클라우드 .. 2020. 2. 5.
흥미로운 링크들 1월 5주차 한 주 간의 개인적으로 흥미로웠던 소식을 위주로 모아보는 글입니다. 이번 편은 한 유명 안티바이러스 백신 개발사의 개인정보 판매 사건부터 시작합니다. https://www.vice.com/en_us/article/qjdkq7/avast-antivirus-sells-user-browsing-data-investigation Leaked Documents Expose the Secretive Market for Your Web Browsing Data An Avast antivirus subsidiary sells 'Every search. Every click. Every buy. On every site.' Its clients have included Home Depot, Google, Microsof.. 2020. 2. 3.
Org Mode 테이블 스프레드시트 Org Mode 문서의 테이블은 다양한 기능을 제공합니다. 그중 하나가 테이블 셀을 이용해 계산을 하는 것입니다. 마치 엑셀이나 Numbers, 구글 독스에서 제공하는 스프레드시트(Spreadsheet)와 비슷합니다. 이 기능에 대해 간략히 정리해 보는 글입니다. 참고로 이 글에서 언급하는 단축키는 Doom Emacs 기준입니다. 테이블 일단 아래와 같은 테이블을 만들었다고 가정해봅시다. | Kind | Price | Ideal | Earning | |-------+-------+-------+---------| | Book | 100 | 99 | | | Apple | 256 | 30 | | | Coke | 4 | 9 | | |-------+-------+-------+---------| | | | | .. 2020. 1. 31.
파이썬 코드 문법 검사기 flake8 flake8은 파이썬(Python) 코드를 점검해주는 도구이자 파이썬 패키지입니다. 이 도구는 일부 오류가 있을 법한 코드나 불필요한 모듈 임포트(import), 이상한 띄어쓰기나 잘못된 들여쓰기 등등 여러 문제점을 알려줍니다. 약간 딱딱하게 표현해서 PEP8 코딩 컨벤션에 맞지 않는 것들을 알려줍니다. 이런 기능을 하는 도구를 린트(Lint)라고 표현하기도 하지요. 비슷한 도구로 pyflake도 있습니다. 설치법 파이썬 패키지이기 때문에 pip로 그냥 설치하면 됩니다. pip install flake8 시스템에 따라 sudo를 줘서 루트 권한으로만 설치가 가능할 수도 있습니다. 사용법 flake8은 기본적으로 셸 CLI 유틸리티이기 때문에 커맨드 라인에서 간단히 실행시킬 수 있습니다. 그리고 실행 시 .. 2020. 1. 29.
Combine과 SwiftUI 컴바인을 활용해서 실무에 좀 더 유용한 내용을 알아봅시다. Combine을 활용하는 가장 직접적인 예는 아마도 이 글에서 살펴볼 Swift 5.1부터 제공되는 Property Wrapper와 이를 이용해 만들어진 SwiftUI의 몇 가지 기능이 이에 해당할지도 모르겠습니다. 이 글에서 살펴볼 것은 네 가지 키워드입니다. 바로 State, Binding, Observed Object, 그리고 Environment Object입니다. 이 키워드들은 Combine을 이용해 구현한 Property Wrapper를 응용해서 만들어진 것들이지요. 이 글은 Swift 5.1, Xcode 11.3을 기준으로 작성하였습니다. State State는 이름처럼 상태 그 자체를 나타냅니다. 영어로는 Source of Trut.. 2020. 1. 28.
흥미로운 링크들 1월 4주차 새해 복 많이 받으세요. 이번 글은 개인 정보를 무지막지하게 빨아들이고 있는 무시무시한 최종 보스, 구글의 광고 타게팅과 관련된 내용부터 시작합니다. https://adssettings.google.com/authenticated?hl=ko 로그인 - Google 계정 하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인 accounts.google.com 구글은 겉으로 티를 내고 있지 않을 뿐이지 페이스북 처럼 여러분의 행동을 이용해 여러분이 어떤 사람인지 파악하고 있습니다. 특히 이를 개인 광고 최적화를 위해서 주로 사용하고 있지요. 이 링크에서 구글이 여러분을 어떻게 인식하고 있는지 알 수 있습니다. 그리고 저는 미식축구를 좋아하지 않아요. 구글 바보. https://tldr.sh.. 2020. 1. 27.
약간은 더 현실적인 Combine 예제들 컴바인에 대한 여러 개념적인 이야기들을 써오긴 했는데 역시 개념 설명 글은 와 닿는 것이 없는 것 같습니다. 아무래도 현실적으로 현업에서 쓸 만한 예제는 아니니깐요. 그래서 이번에는 조금은 더 실용성이 있어 보이는 컴바인 예제 투성이라는 주제로 글을 써봅니다. 기본 자료구조의 퍼블리셔 스위프트(Swift)는 다채로운 자료구조를 제공합니다. 예를 들어 기본 타입도 있겠지만 배열(array)이나 사전형(dictionary) 같은 복잡한 자료구조도 있지요. 대표적으로 Sequence.publisher를 살펴보겠습니다. 이 타입은 보통 배열(array) 혹은 리스트(list)라고도 불리며 굉장히 자주 쓰이는 타입이지요? let publisher = [1, 2, 3, 4, 5].publisher publisher.. 2020. 1. 27.
Combine 이벤트 체인이 왜 필요할까? 앞서 작성한 글에서 Combine Framework의 기본 개념인 퍼블리셔(Publisher)와 서브스크라이버(Subscriber), 그리고 서브젝트(Subject)에 대해 간략히 살펴봤습니다. 이번 글에서는 왜 이런 것을 이용해 프로그래밍을 하는지에 대한 이유를 정리해보고자 합니다. 사실 잘 설명할 수 있을지는 의문이긴 합니다만, 개인적으로도 글로 정리하는 것이 큰 공부가 되기에 억지로(?) 글을 써 봅니다. 전통적인 예제 그냥 다짜고짜 예제부터 시작해 봅시다. var value = 1 if value % 2 == 0 { print("\(value) is even!") } 이 코드의 의도는 value의 값이 짝수인지 판단하는 것입니다. 짝수이면 해당 값을 콘솔에 찍지요. 실행시키면 당연하게도 1은 짝수.. 2020. 1. 23.
어쩌다 가끔 쓸 일이 생기는 인코딩 변환기 iconv 윈도가 아닌 OS를 쓰다 보면 가끔 한글이 깨지는 문제를 겪을 때가 있습니다. 예를 들어 맥에서 작성한 파일을 윈도에서 열어보면 깨져서 보인다거나 윈도에서 작성한 텍스트를 맥에서 열어보면 깨진다거나 등등 말이지요. 물론 이는 전적으로 아직도 구식 한글셋을 사용하는 윈도의 잘못(?)으로 봐야겠지만 어쨌든 한국에서는 윈도 사용자가 압도적으로 많으니 이에 맞춰야겠지요. 이 경우 사용할 수 있는 리눅스나 macOS 빌트인 도구로 iconv를 사용할 수 있습니다. 별도의 GUI는 없는 CLI 유틸리티입니다. Convert UTF-8 to euc-kr(cp949) UTF-8으로 작성된 특정 텍스트 파일을 euc-kr(혹은 CP949 등 윈도에서 사용하는 한글 인코딩)로 바꾸려면 아래와 같은 식으로 이용할 수 있습니.. 2020. 1. 21.
흥미로운 링크들 1월 3주차 이번엔 개발 관련 소식들이 좀 있네요. https://github.com/swift-embedded/swift-embedded swift-embedded/swift-embedded Swift for Embedded Systems ✨. Contribute to swift-embedded/swift-embedded development by creating an account on GitHub. github.com Swift는 바이너리 코드로 컴파일하는 언어입니다. 그렇다면 임베디드 분야에서 못 쓸 이유가 없지요. 네~ 임베디드 스위프트입니다. https://sungdoo.dev/programming/start-ios-development-with-offical-docs/ 공식문서 만으로 iOS 개발 배우기.. 2020. 1. 20.
728x90
반응형