
bgl gwyng
@bgl@hackers.pub · 87 following · 107 followers
슈티를 함께 만들 팀을 만들고 있습니다. 관심 있으신 분, 또는 잘 모르겠지만 이야기를 나눠보고 싶은 분도 bgl@gwyng.com으로 편하게 연락주세요.
GitHub
- @bglgwyng
shootee
- www.shootee.io
오늘 발견한 흥미로운 링크들: Matt 타입스크립트 선생님은 종종 Effect 에 대해 트윗하는데 주로 이펙트를 찍먹해보시고 이걸 강의로 만들까말까 만들까말까 하신다. Michael EffectTS 의 BDFL 은 종종 맷 선생의 트윗에 답글을 달아 이펙트 얘기를 풍부하게 가꿔주신다.
오늘은 이펙트의 굿파츠에 대한 얘기로 스레드가 열렸다. https://x.com/mattpocockuk/status/1936083553483157714
나도 EffectTS 도입을 하고 싶지만 여러모로 기존 바닐라JS 스펙과 다른 모양의 코드가 나와서 여러모로 망설이고 있다. (내 기준 이펙트는 실행 코드를 작성하기 보다 실행 계획을 작성하는 개념으로 접근하고 있다) 프로덕션 코드를 새로 만든다면 EffectTS 도입을 고려하고 있지만 학습 난의도가 있어 이를 위해 함께 스터디하고 코드 마이그레이션 계획도 세워야하는데, 그럴 여유는 보통 없는게 현실.
아직은 neverthrow 부터 사용해보는 정도가 지금의 최선이라고 생각한다. 나는 throw 기반의 조건 제어 코드가 불편하다. try catch 안에서 if 절로 throw 하는 코드를 볼 때마다 불만이다. 복구할 수 있는 에러는 throw 하지 않는게 옳다고 생각한다. 물론 언어의 문제도 있지만... 그렇게 스레드를 읽던 중 effectively 라는 애매한 이름의 Alegbraic effects 를 구현한 라이브러리가 공개되어 있다는 것을 발견했다. 작성자 본인도 뻔뻔하게 홍보한다고 어필하고 있다. ;) effectively
EffectTS 라는 이름도 애매하지만 Effectively 는 더 애매하다. 인기가 많아지기 전에 그럴듯 한 이름으로 브랜딩되면 좋겠다. 아, 그렇게 생각하는 이유는 TS 씬에 이런 라이브러리/프레임워크가 자주 거론되면 좋겠다는 생각 때문이다.
얘기하고 싶은 것은, 아이러니하게 이 effectively 의 readme 가 매우 간결하고 읽기 쉽게 EffectTS 에 대해 소개하고 있기 때문이다. effect.website 의 문서는 뭔가 개선이 필요하다. 없는게 없이 다 있지만 실제 읽다보면 어려운 부분이 많고 더 많은 설명이나 예제가 필요한 경우가 생긴다. 미카엘 본인도 문서 개선 필요는 공감하는 것 같다. (해당 스레드 발언 추정) 그리고 또 다른 유저가 포스트를 안내해주셨는데, Effect-like code without Effect 짧게 읽기 좋다. 게다가 이 포스트가 담긴 사이트의 프로덕트도 유용해 보인다.
시작부터 Result 나 Optional 을 제공하는 언어가 많은 소프트웨어 엔지니어들에게 높은 선호도를 가지는 이유가 있다고 본다.
Nginx의 njs에 QuickJS 엔진 추가되니 기능이나 문법 제약도 거의 없어서 출근해서 해볼 성능 테스트만 제대로 되면 좀 복잡한 로직 필요한 리버스 프록시는 이걸로만 짤거같음. JS모듈들 대충 번들로 만들고 import해서 다 쓸수 있어서...
Claude Code한테 거의 전적으로 맡겨서 LogTape 웹사이트 첫 페이지를 갈아 엎었다. 디자인 측면에서는 바뀐 게 별로 없지만, 내용을 거의 다시 썼다.
@xiniha Pothos is 최고의 GraphQL 서버? 다른걸 안써봐서 모릅니다.
여보세요, 지금 전화 중이에요?
LogTape 다음 버전부터는 널리 쓰이는 로깅 라이브러리인 Pino와 winston에 대한 어댑터를 함께 제공할 예정입니다.
- 기내에 프론트엔드 개발자 계십니까?
- 네 무슨 일이죠?
- 버그 터졌으니 돌아오라고 연락 왔습니다. 내리세요.
두달내내 발표자료를 깎지 않을까.. 싶네요.. 파이콘(세션 발표, 커뮤니티 소개 발표) / 우부콘(세션 2개) / 모각작모임 라이트닝 토크. 요렇게 5개를 준비하게 생겼습니다.
전반적으로 내용은 얼추 완성이 되긴 했는데, 피그마로 만들었던 자료를 구글 슬라이드 기반의 템플릿으로 하나하나 다 옮겨야 함...
그리고 Claude Code로 실험을 좀 많이 하게 될 것 같아요
4년만에 하는 웹개발... 난 그저 간단한 퀴즈 푸는 사이트를 만들려고 했던것 뿐인데... 살면서 boilerplate만 한 10번쯤 만드는것 같음. 만들어두면 또 한동안 웹개발 할 일 없어서 방치되고, 그 사이에 온갖 라이브러리가 사라지면서 못쓰는 코드가 되어버림. 프레임워크들도 엄청나게 많이 바뀌어있고.
이번에 작업한거: 4년전에 만들어둔 boilerplate인데 좀 최신화를 했습니다. Django + Vue 조합. 기능이라고는 겨우 로그인해서 'Home' 문구 하나 볼 수 있는 웹페이지인데 어쩌다가 이렇게까지 복잡해졌을까요...
해커스펍.... 모임.... 아마 가능할 수도 있을 것 같습니다.... 이제 장소와 시간만 구하면 된다.....
🚀MoonBit Beta is here!
After 2 years of fast iteration, MoonBit enters its stable phase with regard to language syntax!
✨Built-in async
🛠 Fast tooling and IDE-aware error handling
어라라라라라라 이게 왜 된거야
제텔카스텐이니 세컨드브레인이니 하지만, 정작 우리나라에서 만든 창의적 방법론에는 무관심한 듯.
우리나라에서 제텔카스텐 기법을 극대화하신 분은 다산 정약용 선생 아닐까? 여유당 전서, 흠흠신서, 목민심서, 경세유표 등등 엄청난 저술 활동을 해낸 분. 여유당 전서는 500권이 넘는다. 제텔카스텐을 창안(?)한 루만도 고작(?!!!) 300편의 논문만 썼다.
예전 다산 선생을 다룬 책에서 제텔카스텐 기법을 본 적이 있는데...
와 이 도메인을 진짜 왜 아직 아무도 안 샀지??
https://github.com/krafton-ai/Orak
Orak (오락) is a foundational benchmark for evaluating Large Language Model (LLM) agents in diverse popular video games.
today at work:
"GNU/Linux is just a small part of the systemd operating system"
bzip2 crate switches from C to 100% rust https://lobste.rs/s/g3wtej #rust
https://trifectatech.org/blog/bzip2-crate-switches-from-c-to-rust/
오버엔지니어링을 자제해야 하지만 이게 또 일하면서 보람을 느낄 수 있는 방법 중 하나라 타협점을 찾아야겠음
이뿐만이 아니다. 예스24는 낙후된 시스템을 운용하는 것으로 전해진다. 단적인 예로 사이트 개발에 '닷넷 프레임워크'를 사용하고 있다. 닷넷 프레임워크는 현재는 잘 사용하지 않는 개발 언어로 윈도 서버에서만 운영 가능하기 때문에 개발자의 외면을 받고 있다.
닷넷 프레임워크는
- 현재는 잘 사용하지 않는 -> 아님¹
- 개발 언어로 -> 아님²
- 윈도 서버에서만 운영 가능하기 때문에 -> 아님³
- 개발자의 외면을 받고 있다 -> 일단 점유율은 아님¹
예를 확인 없이 내세운 기사네요 🙃
- [1]: StackOverflow 2024 서베이 웹 부문 중 16% 가량을 차지함. (https://survey.stackoverflow.co/2024/technology#1-web-frameworks-and-technologies)
- [2]: .NET은 개발 언어가 아니고 어플리케이션 프레임워크. C#이 언어. (https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)
- [3]: 리눅스 환경에서도 운영 가능. 선호하지 않을 순 있어도. (https://learn.microsoft.com/ko-kr/dotnet/core/install/linux)
@nyeongAn Nyeong (安寧) .NET이랑 .NET Framework가 서로 다른 물건이예요. .NET은 .NET Core가 리브랜딩된 거고, 10년 전에 .NET Framework를 대체했습니다. .NET Framework는 Windows에서만 돌아가는 것도 사실이고요. .NET Core, 즉 현재의 .NET은 .NET Framework와 브랜드 측면에서는 연속성이 있지만, 기술적으로는 아예 새로 만들어진 구현입니다. 오픈 소스라는 점도 다르고요. 전반적으로 .NET Framework는 레거시 기술이 맞아요.
Biome v2—codename: Biotype is here! The first type-aware linter that doesn't require tsc
🔐 Type-aware lint rules
🧑🚒 Plugins
📚 Monorepo support
📝 Revamped, configurable import sorting
🧐 Linter domains
🙅♀️ Bulk suppressions
👩✈️ Analyzer assist
웹핑거 사이트에 하스켈 클라이언트 링크를 추가하는 PR을 제출했다. PR은 바로 머지(merge) 되었는데 배포에 이슈가 있어서 아직 사이트에 반영되지는 않았다.
그리고 하스켈 클라이언트 예제 코드에 해커즈 퍼브 주소를 은근히 적어 넣었다!(깨알 광고)
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Default
import Web.Finger.Client
query :: Query
query = def { qryTarget = resource }
where
resource = ResAccount (Account "curry" "hackers.pub")
main :: IO ()
main = do
manager <- newManager
result <- webfinger manager query
print result
웹핑거 사이트에 하스켈 클라이언트 링크를 추가하는 PR을 제출했다. PR은 바로 머지(merge) 되었는데 배포에 이슈가 있어서 아직 사이트에 반영되지는 않았다.
어제부터 Jujutsu라는 버전 관리 시스템을 써보고 있습니다. git의 branch는 연속적인 단일 작업을 표현하는 느낌이 강하게 드는데 사실 그저 어느 commit을 가리키는 포인터일 뿐이라는 걸 느끼게 해주네요. Jujutsu에서는 같은 커밋에서 다음 커밋을 여러 개 만들면 그게 브랜치이고, 여러 커밋을 parent로 하는 커밋을 하나 만들면 그게 머지이고, 수정이 다 끝나면 그냥 원하는 브랜치 이름의 포인터를 적절히 옮기면 됩니다. 부분 변경을 커밋 간에 자유롭게 옮길 수 있는 것까지 합치면 재미있는 사용 방법이 많이 있을 것 같습니다. 특히 megamerge workflow를 쓰면 git 쓰다가 생겼던 "지금 하는 작업을 끝내야 다음 변경사항을 작업"하는 강박이 해소될 것 같아 기대가 많이 됩니다.
bgl gwyng shared the below article:
LogTape 0.12.0 Release Notes

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
LogTape, a zero-dependency logging library for JavaScript and TypeScript, has released version 0.12.0 with several enhancements. The update introduces a new `trace` log level for more granular debugging and improves file sink performance through configurable buffering. A significant addition is the `@logtape/syslog` package, enabling log message transmission to syslog servers using RFC 5424. The update also includes `Logger.warning()` as an alias for `Logger.warn()` for consistency. Furthermore, all LogTape packages now share unified versioning for better compatibility. The build infrastructure has been migrated from `dnt` to `tsdown`, enhancing compatibility with modern JavaScript toolchains and improving build times. This release optimizes logging capabilities and ensures smoother integration with various JavaScript runtimes.
Read more →작곡을 JavaScript로 하는 도구가 있었네
AI 아니고 직접 자바스크립트 코딩으로 전체 작곡을 다함.
사실상 JS 코드가 악보 역할을 하는듯
C# NotNull
같은 기능을 TypeScript에서는 asserts <arg> is Exclude<T, null>
같이 쓸 수 있고 vitest에서는 assert.isNotNull
처럼 쓰면 되더라 📝
2개월 전에 애자일 이야기 글을 편하게 읽고 싶었던 것과 검색 기능의 필요를 느껴 삼아 작성했던 프로젝트[1]를 아카이브 했습니다. 글도 다 읽었고 읽으면서 수정하다 보니 내가 쓸만큼의 무언가는 되어서 특별히 더 동기가 남아있지 않았기 때문입니다. 불필요하게 SSR로 돌려서 서버 비용이 나가는 것이 걱정거리로 남아있었는데 그것도 어제 오늘 작업해서 이제는 GitHub Pages로 배포하기 때문에 아카이브할 수 있게 되었습니다. 그냥 놔둬도 괜찮지만 괜히 신경 쓰여서 아카이브로 돌려놓습니다.
코드 퀄리티는 좋지 않을텐데... 혹여나 수정이 필요하신 분은 AGPL-3.0 라이센스이니 편하게 포크해서 사용하시면 될 듯합니다.
https://github.com/moreal/agilestory.blog/
https://agilestory.blog
bgl gwyng shared the below article:
스마트홈 세팅

제이미 @theeluwin@hackers.pub
신혼집에 스마트홈을 구축한 경험을 공유하는 이 글은 LG 가전제품과 헤이홈, 미니빅 기기를 활용한 자동화 루틴을 소개합니다. 아침 기상 시 전동 커튼이 열리고, 로봇청소기가 작동하는 등 시간대별로 설정된 자동화 시스템을 통해 일상생활의 편리함을 더했습니다. 특히, 화장실 환풍기를 헤이홈 푸쉬봇으로 제어하여 반신욕 시 온도 유지를 돕는 등 개인적인 필요에 맞춘 스마트홈 환경을 구축했습니다. 이 글은 독자들에게 스마트홈 구축에 대한 아이디어를 제공하고, 자동화를 통해 삶의 질을 향상시킬 수 있는 가능성을 보여줍니다.
Read more →The Case for Software Craftsmanship in the Era of Vibes
Link: https://zed.dev/blog/software-craftsmanship-in-the-era-of-vibes
Discussion: https://news.ycombinator.com/item?id=44264376
지난번 read papers with me에 이어서... 이번에도 어차피 논문 읽을겸, 세미나 발표 준비하듯 피피티도 만들고, 영상도 촬영해봤는데요,
결국 촬영 + 편집에 오버헤드가 너무 많이 걸려서 이것도 그다지 좋은 방법이 아니었네요. 혹시라도 비슷한 생각 하신 분들은 참고하시길(...)
예전에는 주로 Windows랑 Mac을 왔다 갔다 하면서 작업했는데, 요즘은 Mac mini랑 MacBook Air를 나눠서 쓰는 일이 많아지다 보니까, 슬슬 dotfiles
백업이나 공유가 필요하겠다~ 싶어졌다.
우선은 셸 히스토리를 백업하고 공유할 수 있도록 https://atuin.sh/ 를 설치해봤다. (@daidaisuke 님 블로그에서 우연히 본 건데, 감사합니다!)
루비온레일즈에서는 CoC라는 게 있습니다.
Convention over Configuration.
그러니까 설정보다 컨벤션을 더 중시하게 본다는 겁니다.
설정 파일에다가 이것저것 적는 것이 아니라 그저 관행대로 하면 알아서 동작하는 거.
예를 들어서 라우트에 articles
란 이름의 경로를 만들면, 이 경로는 articles_controller.rb
와 자동으로 매핑이 됩니다.
그리고 articles_controller
의 index
액션은 views/articles/index.html.erb
을 자동으로 찾아서 렌더링 합니다.
이를 위한 어떤 설정도 필요 없습니다. 그저 관행일 뿐입니다.
DB 의 테이블 이름과 모델 클래스의 이름이 항상 동일하다는 것도 CoC의 한 예입니다.
처음엔 이런 관행이 짜증 나기도 했습니다.
왜 모든 테이블 이름이 복수형이어야만 하지?
Person 모델이 있으면 당연히 테이블 이름도 person이어야 직관적이지 않나? 왜 people이라는 복수형을 강제하는 거지?
이런 생각으로 반항하며 대들 때마다 레일즈는 고통을 돌려주었습니다.
초반에는 Rails와 많이 다투면서 이런 고집스러운 녀석과는 같이 못 살겠다 생각을 했었습니다만...
그 장점을 받아들이고 나서 드디어 친하게 지낼 수 있게 되었습니다.
오히려 제약하고 강제하면서 코딩이 만사 편해질 수 있구나 하는 걸 배웠습니다.
그런데 이게 꼭 코딩 시에만 적용되는 것은 아니었습니다.
사내 문화에 이런 걸 적용한 회사도 있었습니다.
카카오에 처음 들어갔을 때 영어 닉네임을 정해야만 했습니다.
그 영어 닉네임은 사람들에게 불리는 내 호칭이기도 했지만, 내 이메일 주소가 되기도 했습니다. 사내 github 주소가 되었고 사내 게시판의 닉네임이 되었습니다.
동료의 메일 주소를 물어볼 필요가 없었습니다. 부르는 이름이 메일 주소니까.
저는 Windows 컴퓨터를 사용해왔지만 얄짤없었습니다. 모든 사람들에게 맥북이 지급되었습니다.
사람들의 자유를 너무 제약하고 강제하는 것 아닌가?
돌아보니 이런 문화들이 마치 레일즈의 CoC처럼 느껴집니다.
회사 문화를 처음 만든 사람들이 레일즈를 워낙 좋아해서 영향을 받은 거 아닌가 하는 의심마저 들었습니다.(웃음)
엄격하게 강제하지만 구성원들이 잘 따르기만 하면 모두가 편해지는 관례.
이런 것이 좋을 때도 있다는 사실을 이제는 받아들입니다.
- 이곳이 마음에 들어요. 만들어주셔서 감사합니다.
- 마크다운이 된다니 만세입니다. 마스토돈에선 안되거든요.
- 글 수정 기능 + 수정 내역 보기 가 있으면 좋겠다고 생각하고 있다는 점을 수줍게 염치없게 말씀드려봅니다. 저는 제가 써놓은 것에 오타가 있거나 주술호응이 틀렸다거나 하면 스트레스를 심하게 받거든요. 그런데 마스토돈에서 수정 기능을 써 보니까, 이게 많이 좋았어요.
빨간 공이 n개, 초록 공이 100-n개 들어있는 불투명한 통이 있습니다. n은 0에서 100까지의 정수 중 균등하게 무작위로 선택됩니다. 통에서 첫 번째 공을 뽑았더니 빨간 공이 나왔습니다. 첫 번째 공을 꺼내두고 통에서 두 번째 공을 뽑을 때, 빨간 공과 초록 공 중 어느 공이 나올 확률이 더 높을까요 (혹은 두 확률이 같을까요)?
깃헙에 10억번째 레포가 생성되었다 해서 성지순례 하고 옴 https://github.com/AasishPokhrel/shit/issues/1
📌
여행과 고양이를 좋아하는 오타쿠 프로그래머입니다. 다른 곳에서는 주로 @hellodhlyn 아이디로 활동하고 있습니다.
- Ruby, Golang으로 만들고 싶은 프로그램을 만듭니다.
- 언어(자연어와 프로그래밍 언어를 모두 포함함)에 관심이 많습니다.
- 프라이버시와 개인 데이터 주권에 대해 고민합니다.
🔗 트위터 : https://twitter.com/hellodhlyn 🔗 깃허브 : https://github.com/hellodhlyn 🔗 블로그 : https://lynlab.co.kr/blog
- 중국어를 전공했습니다.
- 전역하자마자(금요일 전역, 월요일 출근) 강원도에서 제약 영업을 1년 4개월 정도 했습니다.
- 컴퓨터 학원을 1년 정도 다니면서 정보보안 스터디를 했습니다.
- 이때 Python, C, Java순으로 프로그래밍을 처음 접했습니다.
- 정보보안 관제 회사에서 고객사에 파견 나가 악성코드 대응 업무를 4년 정도 했습니다.
- 이때 개발자가 되고 싶어서 C++ 코리아 스터디에 몇 번 참석했는데 여기서 운명의 ‘모나드’라는 단어를 처음 접하고 하스켈 공부를 시작했습니다.
- 기업에서 정보보안 담당자 7년 차로 일하고 있습니다.
- 코딩은 취미로 하거나 혼자만 하는 소소한 업무 자동화에 활용하고 있습니다.
- 풀타임 개발자와 오픈소스 메인테이너의 삶을 동경하고 있습니다.
- 주로 Windows에서 Putty로(80x24, Consolas) 리눅스 서버에 붙어서 Vim을 사용합니다. Visual Studio Code를 잠깐 써봤는데 다시 Putty로 돌아왔습니다.
- 집에서는 몇 년 전 중고로 산 MacBook Air M1을 사용하고 있습니다.
- 회사에서는 몇 년 전 중고로 산 HHKB를 씁니다.
- 30대 후반, 기혼, 자녀는 셋(둘째와 셋째는 쌍둥이) 있습니다. 경기도에 살고 있습니다.
I was doing it all wrong. I should have started by studying topology and homotopy. Only then can you fully appreciate category theory and HoTT.
bgl gwyng shared the below article:
自己紹介/자기소개/Self-Introduce
daisuke @dai@hackers.pub
この記事では、著者のdaiさんが自己紹介を通じて、自身の背景や価値観、そして技術コミュニティへの関わりについて語っています。出版社での仕事を通じて技術を追いかける傍ら、政治や思想に偏らずニュートラルな視点を大切にしている点が強調されています。また、様々な文化や考え方との交流から刺激を受け、自身の視野を広げることを楽しんでいる様子が伝わってきます。読者に対しては、親愛なる友人たちとの交流を重視し、共に成長できる関係を築きたいという思いが込められています。
Read more →알라딘 화들짝 놀라서 채용공고 띄운 게 웃프다.
회사에서 C++ 애플리케이션을 만들고 고치는 개발자입니다. 개발하는 프로그램이 성능이 워낙 중요한지라 low-level 지식과 intrinsic도 살짝은 알고 있습니다. C++의 골때리는 세부사항도 많이 알게 됐습니다. 최근에는 학부에서 제대로 알려주지 못한 운영체제 지식을 학습하고자 OSTEP 을 읽고 있습니다. 주 편집기는 nvim이며, lazy에서 kickstart로 넘어가야지 생각만 하고 계속 미루고 있습니다.
학부 때는 알고리즘 문제풀이에 푹 빠져있었습니다. 동아리 운영도 2년간 했고, ICPC WF에도 출전했지만 벌써 몇 년은 된 옛 이야기가 되었습니다. 지금도 간간이 UCPC 및 ICPC 출제에 참여하고 있지만 흥미는 학부때만은 못합니다. 요즘은 제가 잘 알지 못하는 다른 주제에 대한 관심이 훨씬 더 커서, 고루고루 흡수하고 있습니다. 기술적인 관점뿐만 아니라, 사회에 선순환을 이끌어낼 수 있는 방법도 주요 관심사입니다.
코딩 외의 다른 취미로는 보드게임과 독서, 그리고 운동이 있습니다. 최근에는 친구들과 아컴호러 카드게임 헴록 베일의 축일 을 밤새 몰입하며 즐겼습니다. 기력과 여유가 더 생기면 집에 신디사이저와 오인페를 들여 다시 작곡을 해보고 싶습니다. 생각해보니, 이제 몇 년간 방치한 기술 블로그를 이 김에 되살릴 때도 되지 않았나 싶습니다.
프로필 사진은 본가에서 기르는 고양이 망고(8)입니다. 이제는 저도 몇 달에 한 번 정도밖에 못 보지만, 고양이는 귀여우니만큼 종종 타임라인에 올리도록 하겠습니다.
모두 잘 부탁드립니다. 감사합니다.