나의 10+년 Go 언어 이야기

저는 Go 언어의 첫 퍼블릭 릴리즈부터 10년 넘게 Go 언어를 사용해 왔고, 이력서에 한국 최고 Go 개발자라는 거만한 타이틀을 걸고 있습니다. 멋지죠? 이건 그 이야기입니다. 먼저, 파이썬 이야기 제 첫 업무는 C 언어로 되어있는 피쳐폰의 소스 코드 여기저기에 하드코딩 되어있는 영어-중국어 쌍을 수동으로 복붙해서 엑셀로 정리하는 따분한 일이었습니다. 2달의 데드라인이 있었고, 몇 주 하다가 때려치고… 아니, 파이썬을 사용해 스크립트를 만들어서 데드라인에 맞춰 제출했습니다. 당시 장혜식 님이 운영하던 “파이썬마을"에서 많은 도움을 받았습니다. ...

October 4, 2022 · Homin Lee

나의 20+년 리눅스 이야기

저는 리눅스 세상에서, 국내에서도, 무슨 족적을 남긴 그런 사람은 아닙니다만 20년 넘게 리눅스를 사용해 왔고, 지금까지 그걸 바탕으로 일을 하고 있습니다. 최근에 제 리눅스 이야기를 해 달라고 부탁받았었는데, “어버버버” 했던 게 좀 후회스러워서 제 리눅스 이야기를 정리해보려 합니다. 제가 리눅스를 처음 접한 1997년 당시 이미 리눅스는 힙했습니다. ‘KLDP’, ‘적수네동네’와 같은 사이트는 지금의 ‘DCInside’와 같은, 리눅스에 한정되지 않는, 정보교류의 장이었습니다. 사람이 바글바글했어요. 우리나라 리눅스 1세대들이 한글을 쓰고 볼 수 있는 환경을 잘 만들어주셔서 모 잡지를 샀더니 부록으로 있었던 레드햇 계열의 한글 배포판으로 리눅스 세계에 무혈입성 할 수 있었습니다. :) ...

October 3, 2022 · Homin Lee

Homin.dev, k8s 클러스터 월 비용+수익 전격 공개!

도메인을 와장창 구매하고, GKE에 k8s 클러스터를 꾸리고 개인사이트를 만들기 시작한 지 한 달이 지나가고 있습니다. 단기간에 정말 많이 배웠고 재미있게 운영하고 있습니다. 그동안 한 일들과 현재 상태를 공유합니다. 현재의 구성 현재의 구성은 다음과 같습니다. 6개 정도의 Go로 만든 앱들을 포함에 20여 개의 포드가 돌아가고 있고, 어쩔 수 없는 경우 다른걸 컨테이너로 말아서 띄웠습니다. 작고 많이 띄웠으니까 이러면 MSA인가요? Go라서 가능하겠지만 e2 머신임에도 쾌적하고 운용되고 있습니다. 그동안 한 일 초반에 비해 세 가지 정도의 큰 변화가 있었습니다. (물론 큰 티는 안 납니다 ㅋ): ...

September 29, 2022 · Homin Lee

Diagrams Sandbox - 웹에서 코드로 그리는 인프라 다이어그램

요즘 누가 다이어그램 손으로 그리나요? #그게나야 코드로 인프라 다이어그램을 웹에서 그려볼 수 있게 꾸려봤습니다. 바로 해보러가기 무엇이 문제였나? Diagrams 라는 파이썬으로 작성된 툴이 있습니다. 연산자오버라이딩을 사용해 쉬프트, 빼기 등의 연산자를 그래프의 엣지를 의미하게 만들어 인프라 다이어그램을 그리는 편리하고 유용한 툴 입니다. 문제가 있다면, 저는 이제 파이썬을 잘 안 써서 이걸위해 파이썬 인터프리터를 받기 싫다는 것과, 이걸 웹에서 인터렉티브하게 제공하는 사이트를 못 찾았다는 것 입니다. Diagrams의 저자인 민재님이 몇 년 전에, 몇가지 파이썬으로 된 웹 앱을 보여주셨었는데, 아직도 퍼블릭하게 쓸 수 있는건 없는 것으로 압니다. ...

September 24, 2022 · Homin Lee

QL-800, 주소 라벨 출력 시스템 구축. w/ Go + RPi

라즈베리파이에서 사용할 목적으로 라벨 프린터를 샀습니다. brother QL-800 모델로, 스티커형 라벨 프린터 하니까 제일 먼저 검색되었고, 공식 홈에 가 보니 리눅스용 드라이버도 deb 패키지로 제공해주고 있길래 믿음직했습니다. brother 장사잘해! -> 개봉기와 RPi 시험인쇄 영상 이 포스팅에서는 QL-800 프린터로, 봉투에 붙일, From To 주소를 출력하는 시스템을 만들어 본 내용을 공유합니다. 라즈베리파이 설정 라즈베리 파이에 프린터를 연결하고, 전원켜고 잘 인식되었는지 lsusb를 해 봅니다. Bus 001 Device 007: ID 04f9:209b Brother Industries, Ltd QL-800 Label Printer Editor Lite 버튼에 불이 들어와 있으면 Product ID가 다르고, 리눅스에서 인쇄가 안됩니다. 꼭 끄세요. ...

September 18, 2022 · Homin Lee

Suapapa's blog (2008~2012) 복구! 그 여정의 기록

Suapapa’s blog의 모든 내용(댓글 제외)는 지금 보고 계신 Homin Lee’s blog 에 통합되었습니다. Wordpress 기반의 블로그를 Hugo 기반으로 옮긴 기록을 남깁니다. Hugo는 Go 언어로 작성된 정적사이트 생성 엔진입니다. 마크다운 포멧으로 작성된 컨텐츠를 웹사이트로 변환해 주고, 이제 제법 사용층도 두터워서 테마도 많고… 내가 써봐서 아는데, 좋아요. 배경 2008년~2012년 까지 suapapa라는 필명?으로 활동하던 개인 블로그가 있었습니다. DIY 홈서버에서 WordPress(php)로 운영하던 블로그는, 그 후에 IDC에도 잠깐, 무료로, 입주해있다가 언젠가부터 관리가 힘들어 백업을 남기고 제대로 관리되지 않았습니다. ...

September 16, 2022 · Homin Lee

DokuWiki 복구. 라떼는 말야~ 개인위키를 썼단다~

배경 요즘은 개인용 메모 플렛폼으로 노션을 많이들 쓰고, 개발자들은 최근에 Obsidian 을 노션 대용으로 쓰는 사람들이 늘어나고 있습니다. 저도 최근의 메모는 Obisidian 에 정리하고 있습니다. 마크다운 팬이시라면 Obisidian 쓰세요! 두 번 쓰세요!! 하지만 10여년 전에는 노션이 없어서, 설치형 위키를 개인서버에 설치해서 쓰곤 했었답니다. 개인용 나무위키 같은거죠. 이렇게 잘 쓰다가 홈 서버를 운영할 여력이 안 되면서 접었는데, 이 10년 넘은 위키의 백업본이 잘 모셔져 있더라구요. 제가 백업한 것은 아파지 웹서버의 /var/www/html/wiki 디렉터리 전체를 압축한 것이었고, 위키 엔진으로는 PHP 기반의 DokuWiki를 사용했습니다. ...

September 14, 2022 · Homin Lee

MQTT를 활용한 실시간 방명록 출력 시스템

배경 당근마켓에서 영수증프린터를 사서 고로 사진을 찍어 보고(동영상), 할 일 없이 책상에 자리만 차지하고 있는 프린터를 보다보니, 사람들이 남긴 방명록을 여기로 바로 출력할 수 있겠다는 생각이 들었습니다. HomeAssistant와 함께 ZigbeeToMQTT로 홈-오토메이션을 구성하면서 Mosquitto 라는 MQTT브로커를 사용해 봤기 때문에 그걸 쓰면 된다고 생각했습니다. 방명록 -pub-> MQTT브로커 <-sub- 라즈베리파이(프린터) MQTT브로커는 특정 토픽, 예) homin-dev/guest-book 을 구독하는 모든 클라이언트에게 다른 클라이언트에서 해당 토픽으로 발행한 내용을 전달해주는 역확을 합니다. ...

September 10, 2022 · Homin Lee

Re: 제로부터 구축한 새 홈페이지, homin.dev

배경 제 첫 개인 사이트는, 베란다에 켜 놓은 작은 홈서버에서 돌아가던, APM 기반의 워드프레스 블로그였습니다. APM의 시대가 저물고? 갈 곳을 잃어 잠시 방황하다가, 최근까지는 깃헙에서 제공하는 정적페이지, GH-Pages를 사용해왔습니다. GH-Pages를 간략히 소개하면 github.com/계정명/프로젝트명 의 프로젝트 하나에 하나씩 계정명.github.io/프로젝트명이라는 도메인에 정적 웹 페이지를 제공할 수 있제 지원해 주는 것입니다. 특별히 github.com/계정명/계정명 프로젝트는 계정명.github.io 도메인을 주기도합니다. 이걸 통해서, resume, blog(지금 보시는 블로그), hangulclocks 등의 페이들을 운영했고, https://suapapa.github.io 페이지에 대문 역활을 하는 페이지를 만들어뒀었습니다. ...

September 8, 2022 · Homin Lee

라즈베리파이로 만드는 AirPlay 스피커

동기 이미 사 둔 좋은 스피커(앰프)를 사용해 무선(Wifi)으로 멜론에서 음악을 듣고 싶음. 블루투스는 탈락. 음손실이 있어서 싫음. 못느껴도 싫음. ㅎ 크롬캐스트, AirPlay 등 무선(Wifi) 음악 전송 프로토콜 소개 Google Chromecast는 다음과 같이 동작: 단말에서 스트리밍 서비스의 재생할 노래 선택 크롬캐스트로 재생 정보 (스트리밍 주소 포함) 전달 스트리밍 서비스에서 직접 크롬캐스트로 미디어 스트리밍 크롬캐스트는 어른들의 사정으로 오픈 프로토콜이 아닌듯. SBC로 만들수 없음. Airplay는 다음과 같이 동작: 단말에서 스트리밍 서비스의 재생할 노래 선택 단말로 미디어 스트리밍 단말에서 AirPlay 스피커로 미디어 스트리밍 Airplay가 DLNA등 다른 Wifi 기반 미디어 전송 프로토콜과 다른점은 애플기기에서 기본지원한다는 점. 또한 오픈 프로토콜 누구나? Airplay 스피커를 만들 수 있음 ...

June 15, 2022 · Homin Lee