내일 튜사 나오시는분 있나요?

bgl gwyng
@bgl@hackers.pub · 92 following · 116 followers
GitHub
- @bglgwyng
아직 저만 팔로하신 분들을 위한 끌올!!!!
한창 개발중인 다음 버전의 Hackers' Pub입니다. 프런트엔드를 전면 개편하고 있습니다. 프레임워크도 Fresh에서 SolidStart로 아예 바꿨습니다.
@lionhairdino
@bglbgl gwyng 칭따오인거죠...?? 경북 청도 출신 어리둥절..
@kodingwarriorJaeyeol Lee
@lionhairdino ㅋㅋ칭따오 맞습니다
청도 놀러 가신 분 사진으로 염장 지를 때가 지났는데, 소식이 없네요. @bglbgl gwyng
@lionhairdino 칭따오 5.4 광장 야경입니다. 낼 귀국하는데 아쉽네용.
Hackers' Pub 400명 돌파!
오늘부터 사흘간 중국 칭따오여행합니다
거의 느낌이 더 좋다는 이유만으로 rootless컨테이너를 시도했고, 이후에는 갈아엎기 귀찮다는 이유로 계속 써왔다. uid를 외부랑 일치 시키면 이미지가 권한 관련 문제를 일으키기도 하고, 자동으로 이미지내 파일 소유를 바꿔주는 기능은 첫 실행 시 너무 느리기나 하고... 자동 재시작은 systemd랑 엮어서 쓸 수 있다고 알고 있기는 한데 어쨌든 별도의 시스템이라 아직도 안쓰고 있다. 아마 별 일 없으면 계속 이렇게 쓰겠지...?
@bglbgl gwyng 농담 아니고 그렇게까지 느끼는 수준이면 애드빌같은 NSAID류의 소염진통제를 복용하는 방법이 있습니다. 위장 나빠지니까 습관성이 되는 것은 조심하시구요.
@jhhuhJi-Haeng Huh 오... 혹시모르니 구비해놓는게 좋겠네요
Nix 디버깅은 육체적으로 힘들다. 퇴근할따되면 등이 찌뿌둥함.
SteamOS 의 일종인 Bazzite 설치.
- 내가 하는 대부분의 게임이 잘 된다.
- 리눅스 데스크탑이 윈도보다 반응성 빠르고 편의성도 좋다.
- 안 되는 게임 https://www.protondb.com/app/2507950 안 되는 것들은 멀티 게임들. 안티 치트 등, 드라이버를 통해 치팅 검사하는 프로그램이 들어가는 것들이 안되는 모양.
애초에 윈도 아닌 게임이 의외로 많이 나오고 있고(Crusader Kings 3, Factorio) 직장이 아니면 집에서 윈도 안 쓴지도 몇 년 되었고, Debian, Arch Linux, OS X 만 쓰고 있다.
bazzite 는 Fedora CoreOS 기반인 모양인데 알게 된지 며칠 안 되어서 패키지 관리가 어떻게 되는 것인지 잘 모르겠다. neovim 설치는 일단 brew 로 하면 되는 모양인데, 다른 소프트웨어들은 flatpak 으로 설치하고 있고...
1년 반 만에 글을 썼다. 웹이 복잡해진 과정을 간략히 되돌아보고, 웹을 지탱해온 하이퍼미디어라는 개념이 얼마나 강력한 힘을 가졌는지 짚어보았다. https://parksb.github.io/article/43.html
- 파도처럼 출렁이는 연합우주의 분산 네트워크를 통해
- 이제는 파이콘 한국 2025 행사에서 다 같이 처음 만나
- 콘서트보다 더 뜨거운 분위기를 기대하겠습니다!
@iamuhun김무훈
@hongminhee洪 民憙 (Hong Minhee) 개인적으로 이게 장원급제네요
bgl gwyng shared the below article:
Upyo 0.2.0 Release Notes

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub
Upyo 0.2.0 has been released, introducing new features to this cross-runtime email library that supports Node.js, Deno, Bun, and edge functions. The latest version expands its capabilities with Amazon SES transport support, enabling AWS Signature v4 authentication and session-based authentication. Additionally, comprehensive OpenTelemetry integration has been added, offering distributed tracing, metrics collection, and error classification without altering existing code. The OpenTelemetry transport automatically instruments email operations, tracking delivery rates and latency, and integrates with existing OpenTelemetry infrastructure. Community feedback is encouraged to further improve Upyo, whether through testing the new Amazon SES transport, implementing OpenTelemetry, or contributing to the GitHub repository. This release enhances Upyo's utility by providing more transport options and robust observability features, making it a valuable tool for developers needing reliable email sending across various environments.
Read more →(CLI 툴을 쓰다 느낀건데), UX 이슈 중에 no-op과 관련된 것이 특히 까다로운것 같다. 예를들어 유저가 뭔가를 했는데 에러나서 안되면 에러 메시지로 다른 사람에게 물어볼수 있다. 근데 예상한 동작이나 변경이 안 일어났을 경우엔 그게 불가능하다. 어떤 설정을 하는걸 빼먹어서 그렇게 된 경우엔, 운좋게 다른 사람들도 자주 겪는 문제라서 쉽게 답을 찾는 경우가 아니라면, 결국엔 문서를 읽으며 내가 하려는 동작엔 어떤 설정이 요구된다는 사실을 알아내야하는데, 이러면 문서를 사실상 통독하게 된다.
내가 개발자로써 딱히 내세울 커리어는 없지만, 그래도 일평생 XCode 개발에 전혀 기여하지 않았다는 점에서는 자긍심을 느낀다.
그동안 짬짬히 테스트 기능을 만들고 있었는데 얼추 돌아간다
bgl gwyng shared the below article:
퍼즐: 1번 칸에 말 올려! 2번 칸에서 말 내려!

Bubbler @bubbler@hackers.pub
이 글은 1부터 20까지 번호가 매겨진 게임판에서 특정 규칙에 따라 말을 움직여 모든 칸에 말을 채우는 퍼즐 문제를 소개합니다. 핵심은 $k$번 칸에 말을 올리기 위해 필요한 최소 동작 횟수가 $2^{k-1}$임을 밝히는 것입니다. 이를 통해 20번 칸까지 말을 채우는 데 필요한 총 동작 횟수를 계산하는 방법을 설명합니다. 이 퍼즐은 BOJ 29225 문제에서 아이디어를 얻었으며, 문제 해결 과정에서 발견되는 패턴과 논리적 추론이 흥미로운 인사이트를 제공합니다.
Read more →Ji-Haeng Huh replied to the below article:
하스켈 편지

박준규 @curry@hackers.pub
이메일 교환을 요약하면, 한국의 취미 프로그래머 박준규 님이 Haskell에 대한 관심을 표현하며 NRAO의 다니엘 님에게 연락을 시작합니다. 다니엘 님은 Haskell 경험과 NRAO에서의 Haskell 프로젝트(antioch)를 공유하며, 박준규 님의 Haskell 학습 경험과 프로젝트에 대한 질문을 던집니다. 박준규 님은 자신이 관리하는 Hackage 패키지와 Protohackers 문제 풀이 경험을 공유하고, 다니엘 님은 이에 대한 격려와 함께 Typeclassopedia와 free monad를 추천합니다. 이 대화는 Haskell에 대한 열정과 지식을 공유하며, 서로에게 영감을 주는 긍정적인 교류를 보여줍니다. 다니엘 님은 박준규 님에게 Haskell 관련 질문을 언제든지 환영하며, 이 대화를 자유롭게 공유해도 좋다고 허락합니다.
Read more →@curry박준규 정말 귀한 글 올려주셔서 감사합니다.
저 역시 사람들에게 마지막 답장에 언급된 typeclassopedia를 가장 많이 추천합니다. 많은 분들이 하스켈 입문 후 당장의 코딩 경험을 쌓기보다 "모나드는 부리또다"로 대표되는 하스켈 튜토리얼류에 집착적으로 빠져들며 학습의 발란스를 깨는 경향이 보입니다. 무엇에 기인하는 현상인지 아직 확실히 파악은 못했지만 분명 안타까운 상황인 거 같아요.
물론 typeclassopedia도 튜토리얼 문서의 일종이지만 저자만의 특수한 깨달음 포인트가 아닌 정공법으로 설명해주다 보니, "저자의 창의적인 비유와 설명" -> "이제야 알 것 같은 독자" -> "그렇게 생긴 깨달음이 실제 코딩에 도움이 안됨" -> "새로운 문서를 찾아 헤맴" 의 끝없는 반복을 부숴줄 힘이 있는 것 같습니다.
평소에 이펙트 시스템의 필요성을 때가 비동기 코드 테스트할때 인듯. 특히 setTimeout
등 실제로 현실 시간만큼 기다리는 코드가 섞여있을때 이펙트 시스템이 없으면 테스트에서도 실제로 그만큼의 시간을 기다려야한다. 그러다보니 안 짜게 되고...
@xiniha Bunja에 비슷한 로직이 포함되어 있을거 같아요. 다른걸 만드는데 좀더 작은 라이브러리가 필요해서 따로 만들었어요. 근데 Bunja에서 deferred cleanup이 가능한가요?
@xiniha 근데 공개하고나니 바로 좀더 나은 디자인이 생각나는군요ㅋㅋㅋㅋ 패키지 이름이 구린 이유도 디자인이 구려서였고..
@bglbgl gwyng 뭔가 Bunja 생각이....
@xiniha Bunja에 비슷한 로직이 포함되어 있을거 같아요. 다른걸 만드는데 좀더 작은 라이브러리가 필요해서 따로 만들었어요. 근데 Bunja에서 deferred cleanup이 가능한가요?
https://github.com/bglgwyng/deferred-cleanup-resource-map 이런 라이브러리를 만들었다. ref counting 해서 GC 해주는 map인데, 해제를 임의로 늦출수 있다. LRU 캐시같은걸 일반화한 형태라고 보면 된다.
이름이 참 저질인데, 나도 upyo같은 센스있는 이름을 붙이고 싶었지만, 이게 클로드랑 머리맞대서 나온 최선이다;;
@bglbgl gwyng 그런 부분도 있고, 코드의 수명도 더 짧다는 인식이 있어서 그런 것도 있는 것 같아요.
@hongminhee洪 民憙 (Hong Minhee) 위에 제가 한 얘기를 약간 다르게 말하는 방법이 생각났는데, 우리가 쓰고있는 언어가 라이브러리 만드는 작업까진 좋은 언어지만 앱개발 작업에는 아직 구린 언어일수 있어요
@bglbgl gwyng
@kodingwarriorJaeyeol Lee React Native라는 이름의 게임…
@hongminhee洪 民憙 (Hong Minhee)
@kodingwarriorJaeyeol Lee 그렇게라도 생각하면서 견디겠습니다ㅋㅋ
와.... Windows 환경 지원을 위해서 피시방에서 개발한다는 발상은 생각도 못해봤는데...
피시방도 Windows 지원되는 PaaS 점포다 <<<<<
@kodingwarriorJaeyeol Lee 사실 저한텐 요즘 튜링의 사과가 게임 못하는 피시방 정도로 인식되어가고 있습니다. 혹시 해도 되나?
쌀집 앞에 참새가 많아 공유합니다. 좋은 하루 되세요!
사실 애플리케이션 만드는 것보다 라이브러리 만드는 게 훨씬 재밌다. 왜 그런지는 잘 모르겠음… 아마도 UI 개발에 약해서?
@hongminhee洪 民憙 (Hong Minhee) 애플리케이션 코드에는 아직 충분히 형식화하지 못한 문제들을 어영부영 해결하는 코드가 들어가서 그런거 아닐까요. 가령 최근데 Relay가 알아서 reactivity를 부여하지 못하는 부분에 대해서(Relay만의 문젠 아니지만) 땜빵으로 refresh 코드를 몇군데 넣어줘야 하더라고요.
사실 애플리케이션 만드는 것보다 라이브러리 만드는 게 훨씬 재밌다. 왜 그런지는 잘 모르겠음… 아마도 UI 개발에 약해서?
그냥 엄청 재미없는 놀이공원에 왔다고 생각하니 예비군 훈련도 할만하다
새로운 한주를 시작하는 귀중한 월요일 아침 시간을 맥북에 커피 쏟은거 수습하는데 쓰고 말았다...
Show GN: Upyo: 현대적인 JavaScript/TypeScript용 크로스 런타임 이메일 전송 라이브러리
------------------------------
안녕하세요. 개인적으로 이메일 발송 라이브러리를 만들어서 공유해봅니다.
## 왜 만들게 되었나요?
최근에 여러 프로젝트를 진행하면서 Node.js, Deno, Bun 등 다양한 런타임을 사용하게 되었는데, 이메일 발송 부분에서 매번 다른 라이브러리를 찾거나 설정을 다시 해야 하는 불편함이 있었습니다. 특히 D…
------------------------------
https://news.hada.io/topic?id=21971&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
에디터에서의 undo/redo가 그냥 버전관리랑 통합됐으면 좋겠다. 그러니까 undo 한 다음, redo로 다시 돌아가지 않고 다른 수정을 하면, 그 끝점이 anonymous commit 같은 걸로 남는거지.
@bglbgl gwyng
@robin 저는 그냥
@xiniha 선생님의 방침을 따라 scope-auth 방식을 쓰고 있습니다…
@hongminhee洪 民憙 (Hong Minhee)
@xiniha
@robin 어라, 저도 저거 쓰고 있는거 같은데요(아직 v3라 이름만 다른듯?). 저거 쓰면 권한없는거 null로 떨구지 않나요?
평소에 GraphQL 설계를 할 때 권한에 따라서 같은 리소스의 타입을 다르게 (예를 들어 프로필 타입을 MyProfile
과 PublicProfile
로 나눈 후 PublicProfile
에만 email
등의 필드를 구현한다던가) 하는 설계를 많이 했었는데 Relay에 호환되게 짜려고 하니 node(id) 구조랑 충돌하는 거 같아서 고민이다... id만으로는 그게 Public인지 My인지 알 수도 없고...
@robin 저도 비슷한 경우가 있었은데요. 그런 필드들을 nullabe로 바꾸는 걸로 해결했어요. 의미론상 문제가좀 있긴하지만요.
@tedpool테드풀
@kodingwarriorJaeyeol Lee
@gaebalgom개발곰
@nyeongAn Nyeong (安寧)
@joonnotnotJoon
@crohasang크롸상
@z9mb1wwj
@r4bb1t톡기
@2chanhaeng이찬행
@cosmic_elevatorSooji Choi @ooheunda
@woaol벨
@meneleHanal Ae
@devom
@eottabom
@hjleee93hyeonjeong lee 오늘 발대식에서 만나 뵈어서 반가웠습니다! 다시 한 번 앞으로 잘 부탁드립니다! 화이팅!
피드 내리다가 살짝 위로 스크롤하면 탑바(네비게이터)가 노출 되면 편할꺼 같다
튜사에 왔는데 몰입형 공간이 꽉차서 더블 모니터를 못쓰는 관계로, 어쩔수없이 오늘은 하스켈을 좀 해야겠다...
bgl gwyng shared the below article:
AI도 무조건 틀리는 Javascript 퀴즈
중고 자몽차(따뜻함) @dvbeetle@hackers.pub
이 JavaScript 퀴즈는 `age` 객체와 `preferences` 객체를 사용하여 각 이름에 대한 나이를 출력하는 문제입니다. `forEach` 메서드를 통해 배열의 각 요소(이름)를 `printAge` 함수에 전달하고, 이 함수는 템플릿 리터럴을 사용하여 "name is age" 형태의 문자열을 콘솔에 출력합니다. Claude Opus, GPT 4.5, Gemini 2.5 Pro와 같은 고급 AI 모델들도 이 문제에서 오답을 냈다는 점이 흥미롭습니다. 이 코드를 통해 JavaScript의 객체 접근과 배열 메서드 사용법을 다시 한번 상기할 수 있습니다.
Read more →결국 하나 만들었습니다. “우표”라는 이름으로…
@hongminhee洪 民憙 (Hong Minhee) 이름이 멋집집니다
.NET으로 서버 만들 때는 이메일 보낼 때 FluentEmail이라는 패키지를 유용하게 썼는데, JavaScript 쪽에도 비슷한 게 있나 찾아봤지만 뭔가 다 조금씩 마음에 안 드네… 내가 원하는 건 다음과 같다:
- Mailgun, SendGrid, SMTP 등 다양한 이메일 전송 트랜스포트를 하나의 일관된 API로 사용할 수 있어야 한다.
- 멋대로 환경 변수에 의존하지 말아야 한다.
- Node.js는 물론 Deno에서도 동작해야 한다.
오히려 파일 첨부 같은 부가 기능은 없어도 되기 때문에 간단하게 필요한 라이브러리를 찾을 수 있을 거라고 생각했는데, 못 찾고 있다. 음… 바이브 코딩으로 하나 만들까?
결국 하나 만들었습니다. “우표”라는 이름으로…
@bglbgl gwyng
@lionhairdino 오 시간이 되실때 소개해 주시면 감사히 배우겠습니다.
@jasonkim자손킴
@lionhairdino 아 별건 아니고요ㅋㅋ 펑터 자체에 대한 설명이라기보단, 그런걸 공부한다는게 무슨 의미일까, 쓸모가 있단걸 다른 사람한테 어떻게 설득할까 고민하다 만든 설명입니다
@bglbgl gwyng
@lionhairdino 보통 railway oriented programming 이라고 부르더라구요. 독자적으로 생각하신거라면 엄청 자랑스러우실 것 같아요! 부끄럽지만 전 보고서도 이해하는데 꽤 시간이 걸렸었어요 ㅎㅎㅎ
@jasonkim자손킴
@lionhairdino 아항 제가 생각한거랑은 좀 다르네요. ROP의 시각화가 마음에 듭니다.
@jasonkim자손킴
@lionhairdino 아 철길 비유가 이미 널리 쓰이고 있었나요? 얼마전에 재발명해놓고 뿌듯해하고 있었는데 부끄럽군요
@lionhairdino
@jasonkim자손킴 음 철길 비유가 정확히 어떤 비유죠? 검색을 하면 Railway Oriented Programming이란게 나오는데 이거인가요?