반응형 분류 전체보기861 Python 3 정적 타이핑 소개 및 소감(?) 파이썬은 동적 타이핑 언어입니다. 쉽게 말해서, 하나의 변수가 타입에 구애받지 않는 데이터를 가리킬 수 있습니다. 그래서 동적 타이핑은 쉽고 간결한 코드를 만들 수 있기도 합니다. 하지만 이런 장점과 함께 단점도 존재합니다.a = 100a = "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 DeveloperWe’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 So.. 2020. 2. 10. Tmux에서 트루컬러 이맥스 사용하기 앞서 쓴 터미널에서 트루컬러 이맥스 사용하기에 대한 글의 연장선의 내용입니다. 터미널에서 24비트 트루컬러를 지원하더라도 Tmux 안에서 이맥스를 실행시킬 경우 색상이 이상하게 표시되는 경우도 있습니다. 이 경우는 아마도 tmux 가 사용하는 screen-256이라는 터미널 타입의 문제로 추측됩니다. 이 경우도 앞의 터미널 타입을 만드는 방식과 비슷한 방법으로 해결할 수도 있습니다.우선 tmux 설정에 아래 내용을 추가합니다.set -ga terminal-overrides ",st-256color:Tc"이후 tmux 를 재시작합니다.다음으로 아래 내용을 screen-24bit.terminfo 라는 파일에 저장합니다. 역시 위치도 상관은 없지만 셸에서 접근하기 편한 경로가 좋습니다.# From [[info.. 2020. 2. 8. 터미널에서 트루컬러 이맥스 사용하기 저는 터미널로 iTerm2를 사용합니다. 그리고 iTerm2는 트루컬러(24bit True Color)를 지원하는 터미널입니다. 그런데 이상하게도 이맥스(Emacs)를 터미널 모드로 띄워보면 GUI 모드와 색상이 다른 경우를 종종 볼 수 있습니다. 이는 사용하는 터미널 타입이 트루 컬러 모드가 아니기 때문에 나타나는 어쩔 수 없는 증상입니다.터미널에서 트루컬러를 제대로 지원하기 위해서 약간의 트윅(tweak)이 필요합니다. 참고로 이 트윅은 개인적으로 macOS에서 iTerm2로만 확인했기 때문에 다른 OS나 터미널 앱에서는 어떻게 되는지는 잘 모른다는 것에 주의 부탁드립니다.우선 xterm-24bit.terminfo 라는 파일을 만들고 아래 내용을 붙여 넣습니다.xterm-24bit|xterm with.. 2020. 2. 7. iCloud Drive를 드롭박스처럼 사용하기 드롭박스(Dropbox)는 개인적으로 정말 오래 써 온 클라우드 동기화 스토리지 서비스였습니다. 하지만 얼마 전부터 무료 계정의 동기화 제한 기기 대수가 3대로 제한되기 시작했습니다. 저는 이미 5대의 장비를 사용하고 있었고 여기에 추가로 맥북프로를 하나 더 장만하게 되었는데 덕분에 드롭박스를 더 이상 쓸 수 없는 몸(?)이 되어 버리더군요.그래서 여러 대안을 찾아보다 일단 아이클라우드 드라이브(iCloud Drive)를 공유 스토리지로 써보기로 했습니다.당연하게도 파인더를 통한 사용은 어렵지 않습니다. 이미 iCloud라는 항목에 좌측 리스트에 나타나고 있기 때문이지요. 특이하게도 실제로는 존재하지 않는 다양한 링크들이 나타나고 있다는 점이 나타나고 있긴 합니다...🤔그런데 불행히도 아이클라우드 드라.. 2020. 2. 5. 맥 리모컨을 찾다가 발견한 신박한 앱 오랜만에 신박한(?) 앱을 찾았기에 리뷰글을 써 봅니다. 맥을 원격으로 컨트롤하는 아이폰용 앱입니다.저는 밤에 맥으로 유튜브를 틀어놓고 잠이 듭니다. 아 잠이 든다는 것이 중요한 것은 아니고, 일단 유튜브를 본다는 것에 중점을 둡시다. 프리미엄 유저가 아니기 때문에 광고 스킵을 자주 해야 하고, 여러 영상을 나중에 볼 플레이리스트에 담아놓고 어떤 걸 즉석에서 마구 선택해서 보기도 합니다.하지만 누워있는 상태에서 2미터가량 떨어져 있는 모니터에 연결되어 있는 맥을 컨트롤하기는 쉬운 일이 아니지요. 약간의 타협으로 블루투스 마우스 하나를 사용해 원격 컨트롤을 하기도 했습니다만, 거리나 바닥에 따라 동작하지 않고, 맥 화면이 꺼지면 더 이상 뭘 할 수가 없는 상태가 되어버리니 불편한 상황은 꽤 많은 편이었습니.. 2020. 2. 4. 흥미로운 링크들 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 DataAn Avast antivirus subsidiary sells 'Every search. Every click. Every buy. On every site.' Its clients have included Home Depot, Google, Microsoft,.. 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을 기준으로 작성하였습니다.StateState는 이름처럼 상태 그 자체를 나타냅니다. 영어로는 Source of Truth라고도.. 2020. 1. 28. 흥미로운 링크들 1월 4주차 새해 복 많이 받으세요. 이번 글은 개인 정보를 무지막지하게 빨아들이고 있는 무시무시한 최종 보스, 구글의 광고 타게팅과 관련된 내용부터 시작합니다.https://adssettings.google.com/authenticated?hl=ko 로그인 - Google 계정하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인accounts.google.com구글은 겉으로 티를 내고 있지 않을 뿐이지 페이스북 처럼 여러분의 행동을 이용해 여러분이 어떤 사람인지 파악하고 있습니다. 특히 이를 개인 광고 최적화를 위해서 주로 사용하고 있지요. 이 링크에서 구글이 여러분을 어떻게 인식하고 있는지 알 수 있습니다. 그리고 저는 미식축구를 좋아하지 않아요. 구글 바보.https://tldr.sh TLDR.. 2020. 1. 27. 약간은 더 현실적인 Combine 예제들 컴바인에 대한 여러 개념적인 이야기들을 써오긴 했는데 역시 개념 설명 글은 와 닿는 것이 없는 것 같습니다. 아무래도 현실적으로 현업에서 쓸 만한 예제는 아니니깐요. 그래서 이번에는 조금은 더 실용성이 있어 보이는 컴바인 예제 투성이라는 주제로 글을 써봅니다.기본 자료구조의 퍼블리셔스위프트(Swift)는 다채로운 자료구조를 제공합니다. 예를 들어 기본 타입도 있겠지만 배열(array)이나 사전형(dictionary) 같은 복잡한 자료구조도 있지요.대표적으로 Sequence.publisher를 살펴보겠습니다. 이 타입은 보통 배열(array) 혹은 리스트(list)라고도 불리며 굉장히 자주 쓰이는 타입이지요?let publisher = [1, 2, 3, 4, 5].publisherpublisher ... 2020. 1. 27. Combine 이벤트 체인이 왜 필요할까? 앞서 작성한 글에서 Combine Framework의 기본 개념인 퍼블리셔(Publisher)와 서브스크라이버(Subscriber), 그리고 서브젝트(Subject)에 대해 간략히 살펴봤습니다. 이번 글에서는 왜 이런 것을 이용해 프로그래밍을 하는지에 대한 이유를 정리해보고자 합니다. 사실 잘 설명할 수 있을지는 의문이긴 합니다만, 개인적으로도 글로 정리하는 것이 큰 공부가 되기에 억지로(?) 글을 써 봅니다.전통적인 예제그냥 다짜고짜 예제부터 시작해 봅시다.var value = 1if 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 등 윈도에서 사용하는 한글 인코딩)로 바꾸려면 아래와 같은 식으로 이용할 수 있습니다.i.. 2020. 1. 21. 흥미로운 링크들 1월 3주차 이번엔 개발 관련 소식들이 좀 있네요.https://github.com/swift-embedded/swift-embedded swift-embedded/swift-embeddedSwift for Embedded Systems ✨. Contribute to swift-embedded/swift-embedded development by creating an account on GitHub.github.comSwift는 바이너리 코드로 컴파일하는 언어입니다. 그렇다면 임베디드 분야에서 못 쓸 이유가 없지요. 네~ 임베디드 스위프트입니다.https://sungdoo.dev/programming/start-ios-development-with-offical-docs/ 공식문서 만으로 iOS 개발 배우기 - De.. 2020. 1. 20. Combine Framework는 어떤 녀석일까요? Combine Framework는 SwiftUI가 소개되면서 함께 소개된 정체 불며의 이벤트 기반 데이터 흐름 처리 프레임워크입니다. 근데 이 설명은 사실 멋대로 붙인 거고, 실제론 Rx의 애플판이라는 말이 더 맞다고는 하는데 저는 Rx도 몰라요. 그렇다면 바닥부터 공부해야겠네요... 아아...Combine FrameworkCombine 은 이벤트 처리 오퍼레이터를 조합하여 만든 비동기 이벤트 처리 프레임워크입니다. 네 뭔 소리인지 모르겠습니다. 어쨌든 앞서 이야기 했다시피 보통은 Rx라는 것이 사용하던 반응형(Reactive) 프로그래밍 라이브러리라고 설명합니다.뭐 이렇게 이야기 해 봤자 의미 없으니 막무가내로 예제 코드부터 시작합시다.import Combine네. Combine 은 프레임워크입니다. .. 2020. 1. 15. Org Mode 문서에 외부 이미지 넣기 Org Mode 문서에 이미지를 넣기 위해서는 단순히 이미지 파일을 준비해놓고 아래처럼 링크 문법으로 이미지 파일의 경로를 적어주면 됩니다.[[./foo/bar/image.png]]하지만 외부 이미지, 즉 다른 사이트에 있는 이미지를 문서에 첨부하려는 경우는 좀 다릅니다. 예를 들어 아래의 경우를 봅시다.[[https://foo.bar/img/image.png]]위 링크는 과연 이미지가 나올까요? 아니면 링크가 걸릴까요? 물론 평범하게 URL 링크가 걸리게 됩니다. 따라서 당연하게도 익스포트 한 결과물에는 이미지가 나오지 않지요.자 그러면 이 문제를 어떻게 해결하면 좋을까요?커스텀 링크Org Mode에는 친절하게도 org-add-link-type 함수를 이용해 커스텀 링크를 추가하는 방법을 제공합니다. .. 2020. 1. 14. 이전 1 ··· 42 43 44 45 46 47 48 다음 728x90 반응형