본문 바로가기
반응형

기술적인 이야기301

Combine Framework는 어떤 녀석일까요? Combine Framework는 SwiftUI가 소개되면서 함께 소개된 정체 불며의 이벤트 기반 데이터 흐름 처리 프레임워크입니다. 근데 이 설명은 사실 멋대로 붙인 거고, 실제론 Rx의 애플판이라는 말이 더 맞다고는 하는데 저는 Rx도 몰라요. 그렇다면 바닥부터 공부해야겠네요... 아아... Combine Framework Combine 은 이벤트 처리 오퍼레이터를 조합하여 만든 비동기 이벤트 처리 프레임워크입니다. 네 뭔 소리인지 모르겠습니다. 어쨌든 앞서 이야기 했다시피 보통은 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월 2주차 링크 모음 글은 매주 월요일 발행을 목표로 쓰고 있는데, 지난 글은 1월 2일을 월요일로 착각하는 바람에 너무 빨리 올려버렸습니다. 좀 부끄럽지만 😏 다시 내리거나 하지는 않고 그냥 그대로 이어가기로 했습니다. 그래서 이번 글은 좀 양이 많아질 수도 있겠네요. 어쨌든 시작합니다. https://pythonclock.org Python 2.7 Countdown Python 2.7 will retire in 2020. Learn more and see the countdown here. pythonclock.org 사실 이 링크는 별 의미가 없을지도 모릅니다. 왜냐하면 이미 소임을 다하고 가사상태(?)에 돌입했기 때문이지요. Python 2.7의 남은 퇴출 시간을 표시하던 이 사이트의 카운터가 2020년이 .. 2020. 1. 13.
Org Publish가 이맥스를 자꾸 얼리고 있어요 앞서 Org Publish에 관한 글을 썼습니다. 매우 편하게 Org Mode 글들을 자동으로 익스포트 해주는 고맙고 편한 도구이지요. 그런데 글들을 익스포트 하기 위해 org-publish-all 등의 함수를 사용하면 간혹 이맥스가 꽁꽁 얼어버립니다. 반응도 없이 마치 죽은 것처럼 말이죠. 이 글은 이 문제를 해결하기 위한 사투를 간단하게(?) 정리하는 글입니다. 긴 글을 읽고 싶지 않으시다면 가장 마지막의 '대안' 항목을 읽어보세요. 문제를 찾아보려 했으나 증상을 정확히 정의하자면, 글을 편집하고 나서 org-publish 혹은 org-publisha-all 함수를 사용해 업데이트 한 글을 자동으로 퍼블리시를 시도하는데 이때 특정 확률로 이맥스가 멈춰 버리고 커서가 바람개비 뺑뺑이로 표시되고 CPU .. 2020. 1. 10.
Org Publish로 익스포트 자동화하기 Org Publish는 이맥스(Emacs)에서 Org Mode로 작성된 .org 문서들로 정적 웹사이트를 만들 수 있게 해주는 도구입니다. 쉽게 말해서 특정 디렉터리 안의 .org 파일들을 .html 파일로 익스포트 해서 원하는 디렉터리로 복사해 줍니다. 그리고 각종 css나 스크립트, 이미지 등의 파일도 자동으로 복사하는 등의 기능을 제공합니다. 제 관리가 안 되는 😭 깃헙 페이지도 이 Org Publish를 이용해 만들었습니다. 시작하기 설명을 시작하기에 앞서 아래와 같은 디렉터리에서 글을 쓴다고 가정합니다. ~/org/ static/ style.css img/ someimage.jpg index.org foobar.org ... 이 가정에서는 ~/org 라는 디렉토리에서 .org 파일로 글을 작성합.. 2020. 1. 9.
파이썬의 새로운 의존성 관리자 Poetry Poetry는 파이썬(Python)용 패키징 겸 의존성 관리를 도와주는 도구입니다. pip와 virtualenv를 합쳐놓은 듯한 pyenv와 비슷하게 생각되는 도구네요. 최근에는 1.0으로 버전이 올라가면서 이제 쓸만해진 것 아닌가 하는 생각이 듭니다. 공식 홈페이지: https://python-poetry.org 굳이 pip나 virtualenv와 다른 점이 뭐가 있냐면 좀 더 통일화된 관리 방식을 제공해 준다는 점이 차이가 있으려나요? 실제로 poetry는 완전히 새로운 것이 아니라 기존에 제공되던 pip나 pipx, virtualenv 등을 그대로 사용하는 관리 방식을 제공합니다. 대신 npm이나 Cocoapods처럼 하나의 스펙 파일로 패키지 및 프로젝트 엔트리 포인트 등을 관리할 수 있게 해 준.. 2020. 1. 7.
맥용 잠자기 방지 도구 caffeinate 가끔 맥이 잠자기에 빠지지 않게 해야 할 경우가 있습니다. 예를 들어 개발 서버를 띄워 놓았다거나 등등 말이죠. 이럴 때는 다양한 전용 앱을 활용할 수도 있습니다만, 굳이 별도의 앱을 설치할 필요 없이 터미널에서 간단한 셸 커맨드 만으로 잠자기에 빠지지 않게 할 수도 있습니다. 바로 caffeinate 라는 macOS 전용 CLI 도구입니다. 사용법 잠자기 방지 터미널에서 caffeinate를 그냥 실행하면 맥이 잠자기에 빠지지 않게 됩니다. caffeinate 이 유틸리티는 실행된 상태에서 아무런 변화 없이 가만히 돌아가기만 합니다. 따라서 종료시킬 때는 ^C (Ctrl+C) 키를 눌러서 빠져나오면 됩니다. 모니터가 꺼지지 않게 막기 잠자기와 디스플레이 모니터가 꺼지는 것은 직접적인 관계가 없기 때문에.. 2020. 1. 6.
흥미로운 링크들 12월 5주차 ~ 1월 1주차 연말연시가 껴있다 보니 다들 바쁘신가 봅니다 😅 적지만 흥미 있었던 사이트 링크를 정리해 봅니다. https://www.cockroachlabs.com/blog/go-file-size/ Why are my Go executable files so large? | Cockroach Labs This blog post was originally published on the author's personal blog. Overview I built some tooling to extract details about the contents of a Go executable fi www.cockroachlabs.com 왜 Go로 빌드한 실행파일은 크기가 클까요? 뭐 예상은 되겠지만 당연히 뭔가를 많이 집어넣기 때.. 2020. 1. 2.
흥미로운 링크들 12월 4주차 무의미한 대표 이미지로 시작하는 2019년 링크집(?)의 거의 마지막 글이 되겠네요. 시작합니다. http://jeonghwan-kim.github.io/series/2019/12/10/frontend-dev-env-webpack-basic.html 프론트엔드 개발환경의 이해: 웹팩(기본) 1. 배경 jeonghwan-kim.github.io 웹팩(Webpack)이 자바스크립트를 하나로 뭉쳐주는 요상한(?) 놈이라는 것은 알고 있었는데, 정작 이런 게 왜 필요했었는지를 몰랐었습니다. 그리고 이 글로 왜 이런 '다른 언어에서 보면 매우 이상한 도구'가 나오게 되었는지 파악하게 되었습니다. 그나저나 기본이라는데 내용이 엄청 많네요. https://hacks.mozilla.org/2019/04/pyodide-.. 2019. 12. 30.
Doom Emacs에서 Emojify 사용해보기 이맥스에서 글을 쓰다 보면 종종 이모티콘을 입력하고 싶은데 막막할 때가 있습니다. 맥의 경우 Command+Control+Space 키를 이용해 이모티콘을 쉽게 검색해서 입력할 수 있는데 이맥스는 이 키 입력을 몽땅 먹어버리기 때문이지요. (윈도는 어떤지 모릅니다만...) 그래서 정보를 찾아보니 Emojify라는 확장이 있었습니다. 이맥스에서 이모티콘(에모지)를 표시하거나 입력하는 것을 도와주는 확장이라니 딱 맞네요. 설치, 설정 및 사용하기 우선 설치하기 위해서 packages.el 파일을 열어서 아래 한 줄을 넣습니다. (package! emojify) 이후 터미널에서 아래 커맨드를 입력하여 패키지가 설치될 수 있도록 합니다. ~/.emacs.d/bin/doom refresh 그 다음 아래 설정을 c.. 2019. 12. 29.
흥미로운 링크들 12월 3주차 이번 주엔 그다지 재미있는 소식이 없었네요. 그래서 땜빵(?)을 몇 개 넣었습니다. https://csslayout.io CSS Layout Starting with the most basic part, you can customize easily for each specific need. By composing them, you can have any possible layout that exists in the real life. csslayout.io 레이아웃 CSS 코드의 66가지 예제를 볼 수 있습니다. 사이트나 페이지의 전반적인 레이아웃을 잡을 때 참고하면 좋을 것 같습니다. https://github.com/docker-slim/docker-slim docker-slim/docker-slim.. 2019. 12. 23.
비동기 웹 서버 C 구현체 httpserver.h 어쩌다 접하게 된 httpserver.h라는 이름이 왠지 정겹게 느껴졌습니다. 와 이거 C 헤더 파일 아닌가 하는 느낌으로 말이죠. https://github.com/jeremycw/httpserver.h jeremycw/httpserver.h Single header library for writing non-blocking HTTP servers in C - jeremycw/httpserver.h github.com 네 정말 헤더였습니다. ㅎㄷㄷ htpserver.h는 비동기 웹서버 구현을 C 헤더 파일 하나에 몰아서 해 놓은 변태 같은 프로젝트입니다. 왜 굳이 헤더냐고 할 수도 있는데 이 말은 "엔트리 포인트는 당신네가 구현해라" 이런 소리와 일맥상통하겠지요. 자 그럼 예제를 돌려볼까요? 일단 저장.. 2019. 12. 17.
흥미로운 링크들 12월 2주차 쓸 게 없을 때마다 채워보는 링크 모음집! https://neal.fun/deep-sea/ The Deep Sea Scroll down the deep sea in this interactive page. neal.fun 아래로 스크롤하면 그 깊이의 바다에서 어떤 생물이 살고 있는지를 보여주는 사이트입니다. 얼핏 보면 별거 아닐 수도 있는데, 옛날 같았으면 이런 압박적인 세로 양의 페이지를 어떻게 만들고 어떻게 스크롤이 부드럽게 되는 등 별 생각이 많았을지도 몰랐겠네요. 뭐 하여간 재미있는 사이트 같습니다. https://www.swiftbysundell.com/articles/predicates-in-swift/ Predicates in Swift | Swift by Sundell Predicates .. 2019. 12. 16.
흥미로운 링크들 12월 1주차 개인적으로 재미없는 것들을 걸러내니 양이 얼마 안 되는군요. 🤪 만화로 보는 DNS over HTTPS ★ Mozilla 웹 기술 블로그 사용자의 프라이버시와 보안에 대한 위협이 커지고 있습니다. Mozilla 는 이런 위협들을 면밀히 관찰하고 있습니다. Mozilla 는 Firefox 사용자와 그들의 데이터를 보호하기 위해 할 수 있는 모든 일을 해야 한다는 책임감을 느낍니다. Mozilla 는 은밀하게 사용자의 데이터를 수집하려 하고 판매하려 하는 회사들과 조직들을 알고 있습니다. 바로 추적 금지 기능과 Facebook Container 확장기능을 만든 이유입니다. 이제 곧 당신은 Mo hacks.mozilla.or.kr HTTPS가 인터넷의 보안성을 높여 주었지만 DNS는 여전히 이런 보안의 혜택을.. 2019. 12. 9.
흥미로운 링크들 11월 4주차 오랜만에 다시 적어보기 시작합니다. You can create these elements without JavaScript We've got used to writing JavaScript for common UI element functionality like accordions, tooltips, text truncation, etc. But as HTML and CSS got new features and older browsers were no longer supported, we've been able to use less and less JavaScript for dev.to 스크립트 없이 CSS만으로도 만들 수 있는 인터페이스 예제 6가지를 볼 수 있습니다. 가뜩이나 요즘 사이트들이 무거워지.. 2019. 12. 2.
Doom Emacs 라는 것을 설치해봤다 TL;DR 설치 방법은 공식 문서를 보시거나 혹은 Doom Emacs 설치하기 글을 참고하세요. Doom Emacs라는 것을 설치해봤다 저는 Emacs와 Vim을 10년 이상 써온 늙은(?) Emacer이자 Vimmer입니다. 둘 다 장단점이 있고 유용한 곳이 있는 만큼 둘 다 손을 놓지 않고 있었지요. 그러다가 Spacemacs를 만나게 되고 Emacs와 Vim의 합체가 그다지 나쁘지는 않다는 생각에 Spacemacs를 계속 써 왔습니다. 그런데 뭐 영원한 순간은 잘 없지요. Spacemacs에 뭔가 잘 안 될 때마다 라이벌 관계에 있는 Doom Emacs에 대한 관심이 점점 증폭해 갔습니다. 그러다 누군가의 설치기를 구글링으로 찾게 되었고 그대로 해보기로 결심합니다. Spacemacs와 동일하게 시작.. 2019. 11. 25.
728x90
반응형