
박준규
@curry@hackers.pub · 160 following · 74 followers
프로그래밍 언어 하스켈(Haskell) 덕질하는 계정
darcs hub
- hub.darcs.net/vincent
Hackers' Pub은 과연 언제까지 우리집 홈서버에서 버틸 수 있을 것인가…!? (걱정하시는 분들을 위해: 백업은 6시간마다 정기적으로 하고 있습니다.)
@hongminhee洪 民憙 (Hong Minhee) 안 그래도 해커스펍 인프라가 궁금했는데 홈서버였군요!
이제 파이썬 개발자 분들 물밀듯이 들어옵니다앗!!
@kodingwarriorJaeyeol Lee 어딘가에 포털을 소환하셨나요!
전체 사용자 초대 족보에서 원한다면 자신의 계정을 가리는 옵션을 추가하면 좋겠다는 @saschanazKAGAMI🏳️🌈🏳️⚧️ 님의 의견에 따라, 내 계정 족보에서 숨기기 버튼을 만들었습니다. 자신의 계정을 족보에서 숨기면 목록에 항목은 보이지만 이름이나 프로필 사진, 핸들은 가려지게 됩니다.
이번에는 Grok에게 커밋 메시지[1] 작성을 부탁하다가 Changelog 작성하는 문서[2] 안내를 받았다.
@hongminhee洪 民憙 (Hong Minhee) shell 셸, 쉘도 헷갈리네요. 다른 얘기지만 일본어의 장음 표현도 헷갈립니다. 😂 サーバ、サーバー 같은 단어들이요. 😅
@arkjunJuntai Park
@hongminhee洪 民憙 (Hong Minhee) 말씀하신 그 둘은 어떻게 다른가요? 둘 중 하나는 서버(server)일 것 같은데 다른 하나는 뭐죠?
@curry박준규 공유해주셔서 감사합니다!
적독가는 제가 책을 잘 안사서 하핫
ReBundle은 눈여겨 보고 있습니다~
저는 읽고 싶은 책을 발견하면 북플에다가 등록해놓기는 합니다. 꾸역 꾸역 쓰고는 있는데 소셜 기능이 참 아쉬워요.
@smartbosslee이현석 북플이라는 서비스를 아직 안 써봐서 잘 모르겠지만 그런 서비스에 액티비티펍을 연동해도 재밌을 것 같습니다.
@curry박준규 저는 Facebook을 안 써서 안타깝게도 댓글은 못 쓰지만… 서울숲 근처라면 튜링의 사과도 괜찮지 않을까 싶네요! 참고로 튜링의 사과는 공식 Mastodon 계정(
@TuringAppleDev튜링의 사과)도 있습니다.
그나저나, 저도 참가하고 싶은데 Facebook 안 쓰는 사람도 참가 가능한가요?
@hongminhee洪 民憙 (Hong Minhee)
@TuringAppleDev튜링의 사과 전부터 ‘튜링의 사과’ 명성(?)은 익히 들어서 꼭 가보고 싶었는데 마스토돈 계정을 알려주셔서 감사합니다. 페이스북 게시글에 제가 댓글로 문의를 남겼어요. 답변이 오면 말씀드리겠습니다.
@hongminhee洪 民憙 (Hong Minhee) Claude Code 자체가 대박이네요! 감사합니다.
@calmglow최진호
@hongminhee洪 民憙 (Hong Minhee) 저는 코드 변경 사항을 ChatGPT한테 던지고 커밋 메세지를 써달라고 했는데 Claude Code 써봐야겠네요.
crontab은 원하는대로 동작하지 않을 때가 많고 왜 안 되는지 이유를 알기도 어려웠는데 ChatGPT에게 물어 보니 source ~/.profile
넣고 해보라길래 그렇게 했더니 잘 된다.
@curry박준규 네, Phanpy는 Mastodon API를 사용하는데 Hackers' Pub은 Mastodon API를 구현 안 해서 못 씁니다. Hollo는 Mastodon API도 구현해서 Phanpy랑 함께 쓸 수 있어요.
@hongminhee洪 民憙 (Hong Minhee) 해커스펍에 아직 마스토돈 API를 구현하지 않은 것이 의도하신 건가요, 아니면 로드맵에는 존재하는데 아직 구현을 안 하신 건가요?
@curry박준규 React Native, GraphQL(Relay), NodeJS, PostgreSQL, AWS, Pulumi 입니다. 아주 무난하지요.
@bglbgl gwyng
왜 때문에 하스켈은 없죠?
얼굴인식 사진공유 카메라앱 슈티를 함께 만들 분을 찾습니다. 앱은 출시되어 있어 써보실수 있습니다. 이번달 내로 페디버스 연동을 끝내면 제가 생각한 MVP는 완성입니다. 앞으로도 개발해야할 부분들이 많고, 개중에 기술적으로 흥미로운 문제들도 다수 있습니다.
지금 2025년 상반기 투자유치를 목표로 팀 빌딩을 하고 있습니다. 관심 있으신 분, 또는 잘 모르겠지만 이야기를 나눠보고 싶은 분도 bgl@gwyng.com으로 편하게 연락주세요.
@bglbgl gwyng 슈티의 기술 스택은 뭔가요?
@hongminhee洪 民憙 (Hong Minhee) 마스토돈 클라이언트 팬피(Phanpy)를 처음 써봤습니다. 인스턴스로 접속해서 보는 게 아니라 클라이언트로 연합우주를 이용하는 게 처음인데 좀 더 유려한 사용자 경험을 제공하네요! 그런데 해커스펍은 팬피와 연동이 안 되나요?
@hongminhee洪 民憙 (Hong Minhee)
@parksbSimon Park 저는 액티비티펍이 이메일과 닮았다고 생각하는데 이메일에는 “전역 뷰”에 해당하는 게 없는 것 같네요. 다만 한 사용자가 여러 이메일 계정을 썬더버드 같은 이메일 클라이언트 하나로 볼 수 있는데 연합우주에도 이런 개념을 적용할 수 있을지 궁금합니다. 이미 “팔로우”가 어딘가 POP3 기능을 하는 것 같기도 하고요.
@hongminhee洪 民憙 (Hong Minhee)
@parksbSimon Park 찾아보니 마스토돈 클라이언트 종류가 엄청 많네요.
@parksbSimon Park 저는 오히려 그러한 “전역 뷰”에 대한 집착이 실질적인 중앙집권화를 불러오는 게 아닌가 싶은 생각이 들더라고요. 🤔
@hongminhee洪 民憙 (Hong Minhee)
@parksbSimon Park 저는 액티비티펍이 이메일과 닮았다고 생각하는데 이메일에는 “전역 뷰”에 해당하는 게 없는 것 같네요. 다만 한 사용자가 여러 이메일 계정을 썬더버드 같은 이메일 클라이언트 하나로 볼 수 있는데 연합우주에도 이런 개념을 적용할 수 있을지 궁금합니다. 이미 “팔로우”가 어딘가 POP3 기능을 하는 것 같기도 하고요.
그동안(10+년;;) git이 엄청 잘만든 물건 같지는 않다고 생각하며 대충 쓰고있었는데, 요즘 branch 개념 자체가 근본적인 실수란 생각이 들기 시작했다. branch 대신에 변경의 시작과 끝, 양 끝점을 가지는 interval을 쓰는게 맞는거 같다(카테고리 이론의 작은 교훈: primitive는 양 끝점을 가지는게 좋다).
git을 쓰면 히스토리 길어진다고 squash merge 등을 하는데, (나도 하지만) 사실 기껏 만들어놓은 히스토리를 뭉개버리는 말도 안되는 동작이다. 만약 interval을 쓴다면 히스토리는 그대로 남기고 UI 단에서 fold/unfold 등을 해줄수 있을 것이다.
Darcs 등이 interval에 기초하는데, 지금은 일이 너무 바빠서 시도할 여유가 없다. 한번 숨고를 시간이 주어지면 멀쩡한 VCS를 탐색하는 시간을 가질것이다.
@bglbgl gwyng 저는 Darcs를 하스켈에 대한 빠심(?) 하나로 최근 써보고 있습니다. 마침 기여하고 싶은 패키지[1]의 저장소도 hub.darcs.net이기도 했고요.
Darcs 쓰면서 편한 점은 이미 추적(?)을 결정한 파일은 변경 사항을 커밋할 때 다시 add 하지 않아도 되고 바로 커밋[2]할 수 있다는 것입니다.
또 하나 편한 점은 파일에 여러 변경 사항이 혼재되어 있을 때 커밋을 나눠서 할 수 있다는 것입니다. 이건 제가 글재주가 부족해서 말로 설명하기 어려운데, 여러 변경 사항에 대해서 커밋을 시도할 경우 대화형으로 커밋 여부를 물어보는데 이때 원하는 변경 사항만 골라서 커밋을 하면 됩니다.
GHC[3]의 저장소가 현재는 GitLab이지만 과거에는 Darcs였었죠. 성능 이슈 때문에 이전했다고 하는데 지금은 문제가 해결됐는지 궁금하네요.
@curry박준규 처음 알았네요ㅋㅋ 이경우는 공통조상?이 짐작되긴 하죠
@bglbgl gwyng 고양이 하스켈 사진도 있습니다. 출처는 다음과 같아요.
높은 목표를 가진 개발자라도 결국엔 아주 사소한 동기로 움직이는거 같다.
나같은 경우엔, 완벽한 프로그래밍 언어를 만드는 것이 목표인데(가능한지는 차치하고), 완벽하다는건 나말고 다른 누군가가 같은 문제 의식을 가진다면 똑같이 그곳에 다다를 거란걸 의미한다. 그 프로그래밍 언어의 설계에서 내 마음대로 결정할수 있는 부분은 없을 것이다. 설계에서 최적의 선택지만을 택해야 완벽할테니까 말이다. 그때가선 그 선택들이 너무 자명해서, 내겐 처음부터 선택의 여지가 없었다고 느낄것이다.
그럼에도 내가 결정할 수 있을 부분이 있기는한데, 그 언어의 이름에 뜬금없이 우리집 강아지 이름을 붙인다던가 하는 것이다. 이게 그 사소한 동기다.
@bglbgl gwyng 사이먼 페이튼 존스의 고양이 이름이 하스켈인데 고양이 이름이 먼저였을까요, 프로그래밍 언어 이름이 먼저였을까요?
@curry박준규 확장이 하도 많아서 뭐가 있는지 다 알기가 어려운 것 같아요… 😂
@hongminhee洪 民憙 (Hong Minhee) 이런 표현이 있습니다.
GHC has more flags than the UN.
@hongminhee洪 民憙 (Hong Minhee) 의외로 꽤 예전부터 있던 확장이네요.
…라고 썼지만, Fedify의 신기능을 테스트하기 위해 Hackers' Pub에 적용해 보고 있습니다. ㅎㅎㅎ
@hongminhee洪 民憙 (Hong Minhee) 해커스펍도 페디파이로 만드신 거죠? 홀로도요?
@hongminhee洪 民憙 (Hong Minhee) 해커스펍 모바일에서는 검색을 할 수 없나요?
@curry박준규 그나저나 회사에서 Haskell 쓰시나요? 부럽습니다.
@hongminhee洪 民憙 (Hong Minhee) 개발 업무는 아니고 혼자하는 인프라 관리 업무를 일부 자동화 하는 데에 하스켈을 쓰고 있습니다.
집에서 회사에 있는 WSL에 SSH로 접근하려고 삽질을 좀 했는데 결론만 적는다. 우선 구성은 다음 그림과 같다.
이때 다음과 같이 하면 macOS에서 WSL에 SSH로 접근이 가능하다.
- Windows에 SSH 서버 필요 없음
- Windows에
netsh interface portproxy
명령어로 포트 프록시 이용 - WSL에서
sshd_config
파일에GatewayPorts yes
설정 필요
그리고 macOS의 Visual Studio Code에서 Remote - SSH 플러그인을 이용하면 macOS에서 쾌적하게(?) 회사 WSL에 접근해서 코딩할 수 있다.
문제가 생겼는데 이렇게 하면 다음과 같이 하독(haddock)으로 만든 라이브러리 문서를 볼 때 WSL에서 브라우저를 열 수 없다.
cabal haddock --open
이럴 때는 다음과 같은 옵션을 이용해서 문서 배포용 압축 파일을 만들고 그것을 macOS 로컬로 다운 받아 열면 된다.
cabal haddock --for-hackage
그나저나 하독이 만들어주는 문서 페이지 너무 깔끔하고 좋다.
@curry박준규 저는 WSL 안에서
sshd
랑 tailscaled
깔아서 바로 접속했었어요.
@hongminhee洪 民憙 (Hong Minhee) Tailscale을 쓰면 회사 VPN을 따로 안 켜도 되겠네요⋯
집에서 회사에 있는 WSL에 SSH로 접근하려고 삽질을 좀 했는데 결론만 적는다. 우선 구성은 다음 그림과 같다.
이때 다음과 같이 하면 macOS에서 WSL에 SSH로 접근이 가능하다.
- Windows에 SSH 서버 필요 없음
- Windows에
netsh interface portproxy
명령어로 포트 프록시 이용 - WSL에서
sshd_config
파일에GatewayPorts yes
설정 필요
그리고 macOS의 Visual Studio Code에서 Remote - SSH 플러그인을 이용하면 macOS에서 쾌적하게(?) 회사 WSL에 접근해서 코딩할 수 있다.
@hongminhee洪 民憙 (Hong Minhee) 제가 생각한 펍(pub)이 그 펍이 아니군요⋯ 당시 설문조사에서 1위를 한 도메인은 따로 있네요?
@hongminhee洪 民憙 (Hong Minhee) 해커스펍 이름은 어떻게 지으셨나요? 저 나름대로 떠오른 이미지를 ChatGPT에게 만들어 달라고 부탁해보았습니다.
@hongminhee洪 民憙 (Hong Minhee)
@curry박준규 이렇게 또 해커스펍의 특장점이 노출⋯
@hongminhee洪 民憙 (Hong Minhee)
@curry박준규 각주는 보이긴 하지만 각주의 글씨 크기라든지 링크라든지 첨자 등이 해커스펍에서는 잘 나오는데 우리인생에서는 그렇지 않습니다.
해커스펍의 콘텐츠를 해커스펍이 아닌 다른 서버 계정으로 그곳에서 부스트 하면 더 많은 연합우주 사용자에게 해커스펍 콘텐츠를 알릴 수 있지 않을까?
하스켈 패키지 검색 엔진이자 웹 서비스인 후글(Hoogle)은 서비스에 종종 문제가 생기곤 합니다. 그럴 때는 다음과 같은 대체 서비스를 이용해보세요!
한편 후글을 로컬에 설치해서 사용하는 것도 가능합니다. 잦은 서비스 문제에 질렸다면 로컬에 후글을 설치해보세요!
그리고 만약 당신이 부자라면⋯ 하스켈 재단에 기부해주세요⋯
@hongminhee洪 民憙 (Hong Minhee) 혹시 포지페드(ForgeFed)를 아시나요? 액티비티펍 확장이라고 하는데 깃(Git) 같은 것을 연합우주에서 사용할 수 있는 것 같습니다. 해커스펍의 장기 로드맵에 포지페드가 포함되면 어떨까 싶어 공유합니다.
https://forgefed.org/
@curry박준규 hey I think the author is @pere (https://micro.towards.vision/@pere) seems their instance needs to renew certs
@liaizonwakest Thank you for letting me know.
프로그래밍 언어 하스켈 패키지 중에 연합우주와 관련 있는 것을 찾아봤더니 webfinger-client
가 있습니다. 2016년에 마지막 업로드가 되었고 너무 오래 돼서 빌드도 안 되는 상태입니다. LLM 도움을 받아 빌드 가능하게 패치하고 메인테이너에게 연락을 해봤습니다. 답장은 아직 없고 사실 메일을 보낸 지 24시간이 지나지도 않았지만 왠지 연락이 오지 않을 것만 같습니다. 급한 마음에(왜 급한지 모르겠지만) 하스켈 포럼에 패키지를 인수하고 싶다고 글을 남겼습니다. 좋은 소식이 오길 기대해봅니다.
https://discourse.haskell.org/t/taking-over-the-webfinger-client-package-maintenance/11628
https://news.hada.io/topic?id=19738 를 읽고 최근 생성형AI 활용 관련한 짧은 감상.
- 매우 개인적인 의견이며 날 것의 생각입니다.
- 샘플이 적어 편향성이 있을 수 있습니다.
- 이미 철 지난 생각도 포함되어 있습니다.
- 레퍼런스는 없습니다.
- 생성형 AI를 기대하는 사람들 중 상당수는 이를 적극적으로 의존하려는 경향이 있어 보임.
- 생성형 AI에 대한 기대 심리가 너무 커짐. 단순한 도구가 아니라 은탄환처럼 만능 해결책이 되기를 바라는 경우가 많음.
- 생성형 AI 기반 소프트웨어의 출시 속도가 기존 소프트웨어보다 훨씬 빠르게 느껴짐. 대학원 시절 자주 하던 농담이 떠오름. "딥러닝 관련 아이디어가 있으면 2주 내로 논문을 쓰지 않으면 누군가가 먼저 쓴다." 이제는 AI Agent 기반 도구 덕분에 AI 관련 SW에도 같은 법칙이 적용되는 듯함. 예를 들어, 지난주 MANUS 코드가 공개되었으니 2주 내로 유사한 AI Agent SW가 쏟아질 가능성이 큼.
- 이러한 빠른 변화 속에서 생성형 AI 사용과 관련한 윤리 및 에티켓에 대한 집단 논의는 아직 시작조차 되지 못한 듯함. 그래도 개발팀 내부에서는 관련 논의가 점차 이루어지는 것 같음. 개인적으로는 생성형 AI를 페어 프로그래밍 개념으로 접근하는 것이 적절하지 않을까 생각했지만, MANUS의 동작 방식을 보고 생각이 바뀌려 하고 있음.
- 생성형 AI의 활용 범위는 이미 빠르게 확장되고 있음. 기존에 사용되는 작업이 문서 작성, 요약, 검색 정도였다면 이제는 다양한 메이저 창작 분야로 확대되는 중. 적용이 빠른 이유는 결국 속도와 비용 때문이라고 생각함. 다만, 기계가 만든 참기름 바른 듯한 미끄러운 결과물에 대한 반발감은 여전히 존재하며, 이를 줄이기 위해 생성형 AI 결과물에 전문가의 수정과 품질 검수(QC)가 결합되고 있음.
- 여전히 생성형 AI 및 LLM을 사용하지 않거나 거부하는 사람들도 많음. 이들에게 자연스러운 사용 경험을 제공할 방법을 고민해야 할 듯함. 생성형 AI는 한 번 익숙해지면 벗어나기 어려운 락인 효과가 크다고 생각함.
- 항상 생성형 AI에 뇌를 의탁해서는 안 된다고 생각함. 지금 이 글도 먼저 초안을 작성한 후 ChatGPT에 교정을 부탁한 것임. 검수를 거치기는 하지만, 이러한 과정이 나의 사고 능력을 점차 약화시키는 것은 아닐지 고민해야 함. 그래서 hackers.pub에 뭐라도 계속 남기고자 함.
연합우주에서 부스트(공유하기)의 구체적인 효과는 무엇인가요?
궁금해 하실 분들이 계실지 모르겠지만, Hackers' Pub은 아래의 기술로 만들어지고 있습니다.
- 백엔드 JavaScript 런타임으로 Deno (Node.js를 안 씁니다)
- 데이터베이스로 PostgreSQL
- 웹 프레임워크로 Fresh 2.0[1]
- ORM으로 Drizzle ORM
- 캐시 저장소로 Redis
- ActivityPub 연합을 위해 Fedify
- 로깅 라이브러리로 LogTape
- 웹 프런트엔드 프레임워크로 Preact
- 스타일링에 Tailwind CSS
- 국제화에 i18next
2025년 3월 현재 Fresh 2.0은 정식 버전이 릴리스되지 않은 상태인데, 무시하고 불안정 버전을 그대로 쓰고 있습니다. Fresh 1.0 → 2.0에서 많은 게 바뀌기 때문에 굳이 Fresh 1.0을 쓰고 싶지 않았습니다. ↩︎
@hongminhee洪 民憙 (Hong Minhee) 마크다운으로 각주는 어떻게 쓰나요?
내 당근 첫화면은 항상 책 판매 글이 반 이상이다. 뭐 살거 없나 하고 매번 기웃기웃 하긴 하는데 영 불편하단 말이지. 책 전용 당근을 만들면 쓰는 사람이 있으려나?
@smartbosslee이현석 안녕하세요. 저도 책을 좋아하고 책 관련 서비스도 좋아합니다. 책 전용 당근이 나오면 일단 저는 씁니다! 말 나온 김에 제가 알고 있는 책 관련 서비스 적어 봅니다.
페디버스 흥미롭네. 치킨 페디버스를 만들면 쓸 사람이 있을까?
@smartbosslee이현석 안녕하세요! 치킨 페디버스가 뭔가요? 모두들 모여서 치킨 이야기를 하는 공간이려나요?
노트 작성 폼을 개선했습니다. 이제 줄바꿈을 많이 하면 노트 입력창의 높이가 알아서 길어집니다. 그리고 댓글 달 때 원(原) 노트 내에 멘션된 계정들을 기본적으로 함께 멘션하도록 했습니다. 마지막으로, 자기 자신의 노트에 댓글을 달 때는 자기 자신에 대한 멘션이 포함되지 않게 했습니다.
노트 작성 폼을 개선했습니다. 이제 줄바꿈을 많이 하면 노트 입력창의 높이가 알아서 길어집니다. 그리고 댓글 달 때 원(原) 노트 내에 멘션된 계정들을 기본적으로 함께 멘션하도록 했습니다. 마지막으로, 자기 자신의 노트에 댓글을 달 때는 자기 자신에 대한 멘션이 포함되지 않게 했습니다.
눈에 띄는 변경은 아니지만, Hackers' Pub 이외 서버의 계정을 멘션하는 링크를 누르면 Hackers' Pub 안에서 해당 계정을 보여주도록 했습니다.
@curry박준규 저도 그렇습니다… 제 메인 계정은
@hongminhee洪 民憙 (Hong Minhee) 쪽인데, 이쪽은 Hollo라는 제가 만든 ActivityPub 소프트웨어의 개밥먹기를 위해 써야 하고, 댓글 달고 있는 이 계정은 Hackers' Pub의 개밥먹기를 위해 써야 해서요… 개인적으로는 Hackers' Pub 계정을 좀 더 메인으로 사용해 주시길 기대하고 있습니다. 😄
@hongminhee洪 民憙 (Hong Minhee) 저도 하스켈 이야기 떠들기 좋아하는 제 정체성(?)과 해커스펍이 맞아서 애용하려고 합니다. 다만 아직 ‘좋아요’ 같은 기능이 없어서 해커스펍은 쓰기 전용으로, 우리인생은 읽기 전용(및 ‘좋아요’ 전용)으로 쓰려고 합니다.
웹핑거(WebFinger)는 사용자 정보뿐만 아니라 저작권이나 언어 정보도 다루는군요! https://www.rfc-editor.org/rfc/rfc7033.html
Hackers' Pub 쓰고 계신 분들 중에서, 자신의 Hackers' Pub 계정을 연합우주(fediverse)뿐만 아니라 Bluesky에도 노출하고 그쪽 사람들과 교류하고 싶으신 분이 있다면, 상단 검색창에 @bsky.brid.gy@bsky.brid.gy
을 검색하셔서 나오는 프로필을 팔로해 보세요. 그리고 1분 정도 뒤에 Bluesky에서 본인ID.hackers.pub.ap.brid.gy
로 검색하면 본인의 Hackers' Pub 계정이 Bluesky에서도 보이는 걸 확인하실 수 있을 겁니다.