@lionhairdino 저도 그래서 상자나 철길 비유를 가급적 피하려고해요. 너무 구체적이라 추상화의 핵심을 표현하는데 한계가 생기더라구요.

bgl gwyng
@bgl@hackers.pub · 92 following · 116 followers
GitHub
- @bglgwyng
@jasonkim자손킴
@lionhairdino 아 철길 비유가 이미 널리 쓰이고 있었나요? 얼마전에 재발명해놓고 뿌듯해하고 있었는데 부끄럽군요
@bglbgl gwyng
@hongminhee洪 民憙 (Hong Minhee) 한시간에 3천원정도 아니었나요? 제가 옛날 요금제만 알고 있어서 그런가...
@akastoot악하
@hongminhee洪 民憙 (Hong Minhee) 24시간권이 25,000원입니다
1만 * 1만 = 1억 이 상식인줄 알았는데 아닌가 봅니다? 오늘만난 제 문과친구 두 명이 저걸 모르길래 뭐라했더니 저보고 별것도 아닌걸로 잘난척하지 말라고합니다. 상식... 아닌가요?
@akastoot악하 12시간권 사면 좀 낫더라고요.
@hongminhee洪 民憙 (Hong Minhee)
@akastoot악하 한시간 천원 정돈데 저는 한달에 4,5 만원 정도나갈거 같은데요?
@bglbgl gwyng 이거 이제 정규 이벤트가 되는 건가요?
@jhhuhJi-Haeng Huh 앗 내일 오시나요?
@bglbgl gwyng 수정을 구체적으로 지시해서 수정하거나, 아니면 제가 실제로 수정한 버전을 첨부해서 그 위에서 작업하게 시켜요.
@hongminhee洪 民憙 (Hong Minhee) 아뉘 잠깐... 클로드가 쓴 결과물을 마우스로 긁으면 '업데이트'라고 피드백 줄수있는 메뉴가 뜨는데요?
@bglbgl gwyng 저는 Claude 웹을 씁니다.
@hongminhee洪 民憙 (Hong Minhee) 중간 수정같은건 어떻게 하시나요?
AI 도움 받아 글쓰기할때 주로 어떤 방식으로 하시나요?
- 클로드 웹. 모델은 좋은데 인터페이스가 글쓰기 최적화는 아닙니다.
- Cursor/Windsurf 등. 모델이 코딩 고문을 당해서 그런가 글을 잘 못씁니다.
GPT와 최근에 같이 작업한 주제에 대해서 아예 커스텀 GPT를 만들었다.
https://chatgpt.com/g/g-68706e91bb348191a0053c8a2399e63b-gugsan-amho-korea-cryptography
@bglbgl gwyng 앗… 저는 일요일에 가려고 했는데!
Diffsitter – A Tree-sitter based AST difftool to get meaningful semantic diffs
Link: https://github.com/afnanenayet/diffsitter
Discussion: https://news.ycombinator.com/item?id=44520438
내일도 튜링의 사과 출근해야지
js 커뮤니티는 환경변수 주입 정도는 컴파일타임 의존성 주입처럼 생각하긴 하는듯. 과거에 subpath import, export 없을 때 많이 쓰이던 방식이 고착화된게 아닌가 하는 뇌피셜이 있음..
이와 비슷하게 청개구리 스택 경로라는 것도 생각해 볼 수 있겠다. 예를 들어 Deno를 선택했으면 Fresh는 청개구리 스택 경로가 아니다. 그런데 Deno를 선택한 다음 Next.js를 선택하면 오히려 청개구리 스택 경로가 된다.
예전에 카페에서 코딩하는데 처음 보는 사람이 보더니 혹시 프로그래머냐고 자기 좀 도와달라길래 무슨 문제냐고 하니까 자바 환경설정 좀 도와달라길래 바로 GG치고 튐
bgl gwyng shared the below article:
펑터Functor

lionhairdino @lionhairdino@hackers.pub
하스켈 펑터 입문자를 위한 이 글은 `Maybe Int` 타입의 값에서 `Int`를 직접 "꺼내올 수 없다"는 개념을 설명합니다. `Maybe`의 `fmap`이나 `fromJust`가 마치 값을 꺼내는 것처럼 보이지만, 이는 실제로는 값을 꺼내는 것이 아니라, 원본 타입(`Int`)의 구조를 보존하며 새로운 `Maybe Int` 타입의 값을 "생성"하는 과정이라는 것입니다. 미끄럼틀 비유를 통해, `Maybe Int`의 `Just 1`은 `Int` 값 `1`과 연관되어 있지만, `Just 1` 자체가 `1`을 의미하는 것은 아닙니다. 펑터는 원본 타입의 관계(구조)를 그대로 유지하며 다른 타입으로 변환하는 역할을 합니다. `fmap`은 `Maybe Int` 안의 `Int`를 직접 조작하는 것이 아니라, 원본 `Int` 값의 관계를 바탕으로 새로운 `Maybe Int` 값을 만들어내는 것입니다. 상자 메타포가 유용할 때도 있지만, 펑터의 본질을 오해하게 만들 수 있습니다. 상자 안의 값을 꺼내는 것이 아니라, 값의 "성격"은 값을 다루는 함수들의 동작에 따라 결정된다는 점을 강조합니다. 이 글은 "없을 수도 있는 수를 꺼낸다"는 표현의 모순을 지적하며, 펑터의 개념을 더 깊이 이해하도록 돕습니다.
Read more →bgl gwyng replied to the below article:
힙스택 보존 법칙
RanolP @ranolp@hackers.pub
이 글에서는 프로젝트 진행 시 기술 스택 선정에 대한 경험적 법칙인 "힙스택 보존 법칙"을 소개하며, 힙한 기술 스택을 과도하게 선택할 경우 프로젝트가 산으로 갈 수 있음을 경고합니다. 저자는 신기술 도입 시 발생하는 호환성 문제와 그로 인한 추가 작업의 부담을 설명하며, 커뮤니티가 크고 성숙한 기술의 중요성을 강조합니다. 힙한 기술을 사용하더라도 프로젝트를 성공적으로 이끌 수 있는 두 가지 조건, 즉 기술의 안정성과 개발자의 숙련도를 제시하며, 힙스택을 사용하기 전에 충분한 학습과 경험을 통해 기술적 내성을 길러야 함을 역설합니다. 이 글은 기술 스택 선택의 중요성과 개발자의 역량 강화 필요성을 동시에 강조하며, 균형 잡힌 기술 스택 선택이 프로젝트 성공에 미치는 영향을 시사합니다.
Read more →@ranolp 역사와 전통의 스택인줄 알고 골랐는데, 프로젝트 중간에 갑자기 함정 카드 발동해서 힙스택 갯수가 3을 초과하는 경우도 있지요. 최근에 R모 라이브러리로 인해 겪었습니다.
bgl gwyng shared the below article:
힙스택 보존 법칙
RanolP @ranolp@hackers.pub
이 글에서는 프로젝트 진행 시 기술 스택 선정에 대한 경험적 법칙인 "힙스택 보존 법칙"을 소개하며, 힙한 기술 스택을 과도하게 선택할 경우 프로젝트가 산으로 갈 수 있음을 경고합니다. 저자는 신기술 도입 시 발생하는 호환성 문제와 그로 인한 추가 작업의 부담을 설명하며, 커뮤니티가 크고 성숙한 기술의 중요성을 강조합니다. 힙한 기술을 사용하더라도 프로젝트를 성공적으로 이끌 수 있는 두 가지 조건, 즉 기술의 안정성과 개발자의 숙련도를 제시하며, 힙스택을 사용하기 전에 충분한 학습과 경험을 통해 기술적 내성을 길러야 함을 역설합니다. 이 글은 기술 스택 선택의 중요성과 개발자의 역량 강화 필요성을 동시에 강조하며, 균형 잡힌 기술 스택 선택이 프로젝트 성공에 미치는 영향을 시사합니다.
Read more →@bglbgl gwyng 더 미래의 자신이 처리해줄거라 믿습니다
@joonnotnotJoon 그렇군요. 지금 이순간 '과거의 미래의 나'로써, 다시 한번 미래의 나에게 위임하겠습니다.
뭔가 any를 떡칠한거 같지만 미래의 내가 알아서 잘 없애주겠지?
@joonnotnotJoon 궁금해서 제 레포를 검색해보니 3년된
// FIXME: remove any
가 있군요
bgl gwyng replied to the below article:
Minecraft server on-demand: 필요할때만 켜지는 마인크래프트 서버 구축하기
robin @robin@hackers.pub
이 글은 마인크래프트 모드 서버를 운영하며 겪은 시행착오와 해결 과정을 담고 있습니다. 서버를 항상 켜두는 대신 필요할 때만 자동으로 켜지도록 구성하여 비용을 절감하고자 했습니다. 이를 위해 Pulumi를 사용하여 AWS 인프라를 구축하고, RCON 프로토콜 대신 `netstat`을 활용하여 접속자 수를 정확하게 파악하는 방법을 소개합니다. 또한, IMDSv2 설정 문제와 ASG 환경에서 볼륨 마운트 실패 문제를 해결하는 과정도 공유합니다. 마지막으로, 서버 파일 EFS 이전 및 도커라이징을 통한 ECS 배포라는 향후 개선 방향을 제시합니다. 이 글은 마인크래프트 서버 운영 비용을 절감하고 자동화된 인프라를 구축하려는 사람들에게 유용한 인사이트를 제공합니다.
Read more →@robin Pulumi 유저를 만나서 반갑네요
Node.js 커뮤니티는 환경 변수를 너무 좋아하는 것 같다. 거의 라이브러리 API의 일부로 생각하는 듯?
Deno만 해도 환경 변수는 --allow-env
플래그를 통해 명시적으로 허용하지 않으면 접근 못하고, Haskell에서도 getEnv
는 String
이 아니라 IO String
을 반환하게 되어 있다.
반면 Node.js에서는 process.env
로 너무 쉽게 접근 가능해서 그런가, 환경 변수 접근이 입출력이라는 생각을 아예 안 하는 모양이다.
오늘 오전에 저와 같은 하늘을 보신 분이 계실지.. 더위 조심하시고, 맛점하시길 바랍니다 ☺️
아마 다들 비슷한 경험이 있으실겁니다. 태어나서 처음으로 쌍방향 연결에 성공해서 두 클라이언트가 대화할 수 있게 했을때의 기쁨... 저는 딱 15년만에 하는거라(...) 처음 해본것처럼 기쁘네요
@theeluwin제이미 거기에 x100 정도 해서 ARPAnet 개발자들이 느꼈을 감동을 시뮬레이션해봅시다
아마 다들 비슷한 경험이 있으실겁니다. 태어나서 처음으로 쌍방향 연결에 성공해서 두 클라이언트가 대화할 수 있게 했을때의 기쁨... 저는 딱 15년만에 하는거라(...) 처음 해본것처럼 기쁘네요
역시 프로젝트를 빨리 이해하려면 직접 써보는게 가장 확실한거 같다
@2chanhaeng이찬행 좀 다른 해법이지만 C#에서는
throw
가 아예 표현식입니다…
@hongminhee洪 民憙 (Hong Minhee)
@2chanhaeng이찬행 좋은데요? 애초에
throw
가 표현식인게 맞다고 생각하는데, 이게 실수를 만회하는 좋은 방법이네요.
JS Error
클래스에
class Error {
...
throw() {
throw this
}
}
이런 메소드 있으면 편할 것 같은데 왜 없지? 예를 들면:
# 현재
const user = findUser();
if (!user) {
throw new Error("Not found user");
}
# `throw` 메소드
const user = findUser() ?? new Error("Not found user").throw();
이렇게 쓸 수도 있고
이름 별로면 raise
써도 되고
TC39 에 한번 제안해볼까...
1년전에 하스켈로 프론트엔드 개발을 했었다. 프론트엔드 개발의 70% 정도는 state + reactivity를 다루는 것이라고 생각한다. classic FRP를 구현한 하스켈의 Reflex 같은 라이브러리를 쓰면 이 문제를 우아하게 해결할 수 있다. 근데 문제는 많은 프론트엔드 앱이 어엄창나게 복잡한 state를 가지고 있진않고, 그래서 Reflex 없이도 어느정도 만족할만한 코드가 나온다. 아마 에디터나 게임 같은걸 짜면 Reflex의 우월함을 느낄수 있을것이다.
문제는 나머지 30%에 있다. SSR, CSS 등이 거기에 포함되는데, JS 진영에서는 babel 플러그인의 도움을 받는 반칙을 쓰면서 편리함을 제공하고 있다. 여기서 반칙이란건 "use client"
등의 directive와 Tailwind CSS처럼 babel 플러그인이 JS 코드로부터 CSS 클래스 사용을 추출하는 그런걸 의미한다. 반칙이라고 하는 이유는 사실 JS가 아니고 babel로 업그레이드한 JS++쯤 되는 언어를 쓰는셈이기 때문이다. 근데 반칙이고 자시고 암튼 엄청 편하다. 하스켈 쪽에서 근본있는 방법으로 같은 편리함을 달성하려면 매우 힘들고 그걸 사용하는 사람도 공부를 많이 해야할것이다.
@hongminhee洪 民憙 (Hong Minhee) 아항, 그러면 MCP 붙은 Claude Code한테는 레포링크만 주면 알아서 하는 수준인가요?
오픈소스 레포에 Windsurf Agent로 짠 Swift 코드로된 PR을 날렸는데, 저자의 코드 리뷰를 복붙해서 그걸 그대로 다시 Windsurf Agent한테 전달하고 있다. 이게 머하는 짓이고...
macOS에서는 Xcode에서 git을 함께 주지만 brew install git
으로 별도로 설치해서 사용해야 한다. 왜냐하면 Git 취약점 최신 패치버전은 2.50.1
인데 Xcode git 버전은 2.39.5
버전이다 😱 (다른 패치버전들도 있는데 2.43
및 이후 버전들만 관리 중인가 보다[1])
https://github.blog/open-source/git/git-security-vulnerabilities-announced-6/
오픈소스 레포에 Windsurf Agent로 짠 Swift 코드로된 PR을 날렸는데, 저자의 코드 리뷰를 복붙해서 그걸 그대로 다시 Windsurf Agent한테 전달하고 있다. 이게 머하는 짓이고...
bgl gwyng shared the below article:
2020년의 하스켈에 대한 내 생각

박준규 @curry@hackers.pub
이 글은 하스켈이 30주년을 맞이한 2020년, 하스켈의 발전 방향에 대한 개인적인 생각을 담고 있습니다. 저자는 하스켈이 프로그래밍 언어 연구와 실제 애플리케이션 개발이라는 두 가지 목표를 동시에 추구해왔지만, 이제는 소프트웨어 개발자에게 유용한 기능에 집중해야 한다고 주장합니다. 특히 복잡한 타입 시스템보다는 사용자 편의성을 높이는 방향으로 개선되어야 한다고 강조하며, 제네릭스 활용과 유용한 확장 기능 활성화를 예시로 제시합니다. 또한, 애플리케이션 아키텍처 측면에서 의존성 주입 컨테이너를 활용한 단순한 구조를 제안하며, 타입 안정성을 약간 희생하더라도 테스트를 통해 충분히 보완할 수 있다고 말합니다. 결국, 저자는 "심플 하스켈" 또는 "지루한 하스켈"을 통해 얻을 수 있는 코드의 명확성과 개발의 즐거움을 강조하며, 하스켈 커뮤니티가 초보자에게 더 쉽게 다가갈 수 있도록 노력해야 한다고 역설합니다. 이 글은 복잡한 이론적 탐구보다는 실용적인 개발에 초점을 맞춘 하스켈의 미래를 제시하며, 독자에게 균형 잡힌 시각을 제공합니다.
Read more →bgl gwyng shared the below article:
스캠 케이스 스터디

leetekwoo @leetekwoo@hackers.pub
이 글은 인터넷에서 흔히 발생하는 스캠 시도에 대한 개인적인 경험을 공유하며, 특히 창작 활동을 하는 사람들에게 경각심을 일깨우는 것을 목표로 합니다. 작성자는 SNS를 통해 받은 "협업 제안"이 가짜 LinkedIn 프로필을 이용한 사칭임을 인지하고, 그 과정을 상세히 설명합니다. 팔로워가 없는 점, 메시지의 말투 등 수상한 점을 발견하고 스팸 신고를 한 경험을 통해, 인터넷 상의 제안에 대한 신중한 접근이 필요함을 강조합니다. 특히 A&R, 기획자, 스카우터 등을 사칭하여 기회를 미끼로 접근하는 사기에 주의해야 함을 당부하며, 창작 활동을 생계로 하는 사람들에게 이러한 스캠이 더욱 위험할 수 있다는 점을 지적합니다. 인터넷 제안 시 투명한 신분과 의사소통 채널의 중요성을 강조하며, 독자들에게 주의를 환기시키는 글입니다.
Read more →타임라인 질문) 모듈 시스템 좀 깊게 파보려는데 추천할만한 리로스 어디 없으려나요
@kodingwarriorJaeyeol Lee OCaml 모듈 시스템이 설계가 좋다고 하네요. 그와 별개로, 툴링의 성숙도는 망치 개수에 달렷지만, 근본적으로는 모듈 시스템 또한 코드를 어떻게 쪼갤까라는 문제에 대한 대답이기 때문에, 결국 언어의 추상화 능력이 모듈 시스템의 ceiling을 정한다고 봅니다.
이전에도 여러번 추천한 책이지만 저 같은 경우엔 "밑바닥부터 만드는 인터프리터 in Go"로 Go에 입문했습니다. 책의 목적은 인터프리터의 동작, 구현에 대한 것이지만 따라하면서 Go의 코드 스타일이나 테스트 작성 방법도 자연스럽게 익히게 되었습니다. 아니면 "Must Have Tucker의 Go 언어 프로그래밍"도 좋습니다.
혹시 고랭 입문하기 좋은 문서나 책 아시는거 있으신가요
c랑 파이썬 기초 정도만 알고 있는 친구가 고랭 입문해야 할 일이 생겨서...!
도움 부탁드립니다
얼마전에 구현한 debugger adapter protocol이 실제로 사용 가능한 레벨까지 구현되었다. 한참 걸리겠지만 머지 이후에 외부 IDE에 익스텐션을 만들기만 하면 될듯
오픈소스에 토큰으로 기여하는 방법을 제공하는 플랫폼이 있나? Buy me tokens?
Biome 2.1 has been released!
It's a relatively minor maintenance release, but still has some goodies:
* Faster scanner
* Improved type inference
* New rules
* Many fixes!
아는 친구한테 들은 얘기인데, 최근 이직한 회사에서 Python을 쓰는데 린트나 포매터 같은 것도 전혀 설정을 안 해놓고 살고 있기에 도입하자고 했더니 “그런 거 쓸 거면 Python 안 쓰죠”라는 말과 함께 제안을 거절 당했다고 한다. Python에서도 린트나 포매터는 물론이고 타입 체커까지 붙여서 살려면 살 수 있지만, 어쩐지 그런 거 신경 쓸 사람들은 최근 10년 사이에 다들 다른 언어로 넘어가 버리고 그런 거 신경 안 쓰는 사람들만 Python을 계속 쓰게 된 게 아닌가 싶은 생각이 들었다.
@hongminhee洪 民憙 (Hong Minhee) (저를 비롯한) 특정 집단에서 온 사람들이 린터나 포매터에 신경을 덜 쓰는 것은 사실입니다. 사실 신경을 덜 쓰는 것을 넘어 미묘한 심리적 거부감까지 있다고 보는 게 맞다고 생각해요. 특히나 도메인이 많이 녹아 있는 코드 영역에 까지 기계적인 포매팅 룰을 강요해야 하는가에 반응들은 좋게 봐서 "문명의 충돌", 낮춰 보면 "부족의 자존심을 건 싸움박질"의 양상을 띄는 것 같습니다. 이런 이야기가 나올 때마다 생각할 거리로 fastai의 코딩 스타일 가이드(https://docs.fast.ai/dev/style.html)를 한번씩 다시 읽어 보는데 매번 제 관점도 조금씩 바뀌어 가는게 흥미롭네요.
Why not use PEP 8?
I don’t think it’s ideal for the style of programming that we use, or for math-heavy code. If you’ve never used anything except PEP 8, here’s a chance to experiment and learn something new!
My editor is complaining about PEP 8 violations in fastai; what should I do?
Pretty much all editors have the ability to disable linting for a project; figure out how to do that in your editor.
Are you worried that using a different style guide might put off new contributors?
Not really. We’re really not that fussy about style, so we won’t be rejecting PRs that aren’t formatted according to this document. And whilst there are people around who are so closed-minded that they can’t handle new things, they’re certainly not the kind of people we want to be working with!
I just published a blog post about the OpenCLI initiative. I think it's time we had a way to standardize CLI automation!
Feedback, suggestions, and thoughts are more than welcome.
https://patriksvensson.se/posts/2025/07/introducing-open-cli
기존에 구현된 코드가 아무리봐도 어떻게 수정해야 할지 감이 안잡혀서 뭐가 더 좋을지 분석해달라고 함.
@joonnotnotJoon 자신의 임무가 토큰을 파는것이란걸 잘 인지하고 있군요
기존에 구현된 코드가 아무리봐도 어떻게 수정해야 할지 감이 안잡혀서 뭐가 더 좋을지 분석해달라고 함.
XCode는 내가 잘 몰라서 못쓰는건지 그냥 구려서 쓰기힘든건지 아직도 모르겠다...
깨알팁: 유효한 유니코드 코드포인트 값의 범위에는 구멍이 있습니다. UTF-16을 위해 만들어진 surrogate pair 영역입니다. 이 영역의 값은 UTF-16 외에서는 의미가 없고 사용될 수 없습니다.
𝑾𝒉𝒚𝒓𝒂𝒏𝒐...
케데헌 히트치는거보고 문득 든 생각
약 20년 전부터, 한국 인터넷 커뮤니티에 '떡볶이 참 맛있는데 외국인들도 좋아하지 않을까?' 이런 의견이 종종 올라왔었다. 근데 그 질문이 올라오면, 얼마 지나지않아 누군가가 '엣헴...서양인들은 떡의 sticky한 texture를 좋아하지 않습니다ㅎㅎ'이라는 답변을 다는걸 볼수 있었다. 내가 이걸 한두번 본게 아님.
근데 그 답변자에게 궁금한건. 그... 님은 떡복이를 실제로 드셔보셨나요? 떡볶이는 약으로 치면 마약이고 SNS로 치면 틱톡입니다. 감자튀김만으로 300파운드까지 벌크업하는 미국인들이 떡볶이에 저항할수 있을거 같으십니까?
아무튼 결국 20년이 지난 지금, 김구 선생님이 바라던 문화 승리를 목전에 두고 있고 떡볶이도 덩달아 인기를 끌고있다. 그동안 떡뽁이를 수출못했던게 그 sticky texture가 결정적인 문제였던건 아닌것으로? 결론은 그래서 '가장 한국적인 것이 가장 세계적인 것이다'는 아니고
인터넷에는 자신의 '오감'을 속여서까지 아무 소리를 당당하게 하는 사람들이 존재한다는 것이다. 당장 '엣헴'을 한번 하기 위해 생각을 포기하고 스스로를 속인다.
여러분은 인터넷에서 받은 제안의 진위를 어떻게 판단하시나요?