Juntai Park

@arkjun@hackers.pub · 65 following · 74 followers

中年(중년)中小企業(중소기업) 開發者(개발자), 90年代(년대) Console Gamer(콘솔 게이머). 좋은 하루를 繼續(계속)해 나아간다. 좋은 하루가 모이면 좋은 人生(인생)이 된다.

韓国人のプログラマー、40代、小学生の息子とゲームするのが幸せ😃💕龍が如く 、ゼルダの伝説、マリオ、ピクミン好き

「いい1日を続ける」
いい1日を続けていけば、いい人生になる!

threads
@rkjun
x
@rkJun
uri.life
@arkjun@uri.life
GitHub
@arkjun
2

Hackers' Pub에 공유할 수 있는 초대 링크 기능을 추가했습니다. 설정 → 초대 페이지에서 초대 링크 생성이 가능하며, 초대 링크는 정원이나 유효 기간, 메시지를 정할 수 있게 되어 있습니다. 아무래도 DM으로 직접 초대 요청을 달라고 하면 쑥스러움이 많은 분들은 요청을 안 하시는 경우가 많은 것 같아서 만들게 되었습니다. 참고로, 초대 링크를 통해 가입한 사용자는 초대 링크를 생성한 사람과 자동으로 맞팔하게 됩니다.

초대 링크는 생성하는 화면초대 링크 페이지
9

日本のソフトウェア開発者の皆様をHackers' Pubにご招待します。Hackers' Pubは、ActivityPubを実装するソフトウェア開発者のためのSNSであり、ブログプラットフォームです。MastodonとQiitaやZennをミックスしたような雰囲気です。短文(投稿)と長文(記事)の両方に対応しており、ActivityPub上では投稿はNote、記事はArticleとして表現されます。また、快適な技術ブログ執筆のために、TeX数式やGraphvizダイアグラムなど、さまざまなMarkdown拡張にも対応しています。ご興味のある方は、下記の招待リンクから先着25名までご登録いただけます。

https://hackers.pub/@hongminhee/invite/0197453c-95a9-7542-8c23-dc213ba07fb0

8
0
1
1
5
1

대학생때 친구(컴알못)가 노트북 견적 짜달라고 한적이 있는데, 성능 상관없고 최대한 싸게만 해달라고 했다. 그래서 운영체제 미포함 기기에 우분투 깔아서 30만원으로 맞춰줬다. 우분투를 영업하려는 의도는 전혀 없었고 싸게 해달라는 요구를 최대한 맞춘 결과였다. 걔가 그때 형편이 안 좋아서 한푼이라도 아끼는게 중요했고, 나는 나름 목적을 달성했다는 것에 뿌듯해했다. 리브레 오피스 깔아주면서 한글, 엑셀 대신에 이거 쓰면 된다고 설명했던 기억이 난다.

그리고 이 일을 까맣게 잊고 살다가 1년후 쯤에 그 친구를 다시 만났는데, 보자마자 반응이

나 너무 많은 일이 있었어
12
1
0

Hackers' Pub을 사용하면서 연합우주(fediverse) 뿐만 아니라 Bluesky 사람들과도 교류하고 싶으신 분들은 Bridgy Fed라는 서비스를 사용해 보시면 좋을 것 같습니다. Hackers' Pub 계정 생성 후 2주가 지난 분들만 사용 가능하긴 한데요.[1]

@bsky.brid.gyBridgy Fed for Bluesky 계정을 팔로하시면 Bluesky 쪽에 일종의 미러링 계정이 생성되게 됩니다. 성공적으로 Bluesky 미러가 생기면 @bsky.brid.gyBridgy Fed for Bluesky 계정이 맞팔을 해 올 겁니다.

예를 들어 제 @hongminhee洪 民憙 (Hong Minhee) 계정으로 @bsky.brid.gyBridgy Fed for Bluesky 계정을 팔로하면, Bluesky 쪽에 @hongminhee.hackers.pub.ap.brid.gy라는 계정이 생기는 식입니다. 그러면 Bluesky 쪽 사람들이 해당 계정을 멘션하거나, 댓글을 달거나, 인용을 하면 Hackers' Pub에서 그게 보이게 됩니다. 서로 팔로도 할 수 있고요.


  1. Bridgy Fed 쪽의 스팸 대책 정책이라고 합니다. ↩︎

3

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

0
3
0

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

1
0
0

Node.js 개발자라면 꼭 읽어봤으면 하는 아티클 2선

일반적인 Node.js 애플리케이션을 개발할 때 프레임워크와 무관하게 함께 일하는 동료들에게 필수적으로 추천하고 싶은 아티클이 있다.

빠르고 유지보수 가능한 데이터베이스 패턴들

https://sophiebits.com/2020/01/01/fast-maintainable-db-patterns

특정 프레임워크나 ORM에 의존하지 않고도 N+1 Query, 캐싱 같은 일반적인 문제를 해결하며 유지보수 가능한 형태로 코딩하는 방법을 제시한다. DataLoader로 모든 문제가 해결된다고 생각할 수도 있지만, 근본적인 문제 해결 과정을 직접 고민해보는 것만으로도 엔지니어링 역량 향상에 큰 도움이 된다.

Next.js에서 보안을 고려하는 방법

https://nextjs.org/blog/security-nextjs-server-components-actions

React 관련 내용이 포함되어 있지만, 그 부분을 제외하고 읽어도 충분히 가치가 있다. 데이터를 클라이언트에 전달할 때 마스킹하거나 접근 권한을 검사하는 방법을 구체적으로 알려준다. 핵심은 별도의 플러그인이나 외부 시스템 없이도 간단하면서 효과적인 권한 검사 시스템을 구축할 수 있다는 점이다.

마무리

위 아티클들을 추천하는 이유는 간단하다. 특정 프레임워크에 결속되지 않으면서도 독립적이고 지역적으로 백엔드 애플리케이션에서 볼 수 있는 일반적인 문제를 해결할 수 있는 방법들을 제시하기 때문이다. 이런 접근법은 전체 코드베이스의 안전성과 성능을 크게 향상시키며, 결국 더 많은 개발자들이 행복하게 일할 수 있는 환경을 만들어준다고 생각한다.

대부분 프레임워크에 의존적이거나 플러그인에 의존해 전체 코드베이스를 올바르게 수정하기 어려워지는 모습을 여러번 보았다. 개인적으로 엔지니어링 문화에서 크게 해결하고 싶은 부분이다. JavaScript 뿐만 아니라 가능하면 언어나 런타임에 있는 근원적 요소만을 통해 문제를 해결하는게 건강하게 문제를 해결할 수 있는 방법이라고 본다.

6
2
2

React Native에 Portal이 없어서 좀 고생을 했는데, 일단 지원하는게 맞다곤 생각한다. 근데 Portal이 필요한 경우는 상태 트리랑 뷰 트리가 순서가 어긋나있을 때인데(non-monotone?) 이런 설계 자체가 문제일 수 있다. 보통 개발할때 뷰 트리 기준으로 생각하기 때문에 그런데, 상태 트리를 먼저 다 설계하고 렌더링은 최대한 단순하게 하면 될거 같긴한데, 음 이거 Redux잖아ㅋㅋㅋ

3
1

https://tech.kakaoent.com/front-end/2023/230330-frontend-solid 소프트웨어 엔지니어링 분야에서 유명한 SOLID 원칙이 프런트엔드 UI 설계 관점에서 어떻게 관련이 있는지, 카카오엔터에서 모범사례를 잘 소개가 되어서 공유합니다. 읽고 나서 해당 원칙이 서비스 아키텍쳐 설계 관점으로 한정되지 않음을 알게 되었습니다.

2

Paul Graham의 《해커와 화가》를 보면 본인이 생각하는 이상적인 Lisp을 만드는 내용이 나오는데, 그게 바로 Arc. Hacker News가 초기에 Arc로 작성되어 있었다는 것은 잘 알고 있었는데, 여태까지도 Arc로 작성된 채로 유지되고 있을 줄은 몰랐다. 이제서야 Common Lisp으로 바꾼 게 놀라울 정도.

5
7
0
0
1
17
0
0
2
7
8

어쩌다 보니 Fedify에서 JSR 의존성을 걷어내게 되었는데, 가장 골치아픈 게 @std/encoding 패키지인 것 같다. 어째서인지 npm 쪽에는 base64, base64url, base58, hex 등의 인코딩 및 디코딩을 모두 제공하는 패키지가 없어 보인다. 게다가 대체로 Uint8Array가 아니라 Node.js API인 Buffer에 의존한다.

그냥 @std/encoding을 포크해서 npm에 올려버릴까 싶기도 하고…

3
2
2
0

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

Fedifyは新しいパートナーシップの機会を探しています!

:fedify: Fedifyとは?

Fedifyは、ActivityPubベースのフェデレーションサーバーフレームワークで、開発者が分散型ソーシャルネットワークである)にアプリケーションを簡単に統合できるよう支援します。複雑なActivityPubプロトコルの実装を簡素化し、開発時間を大幅に短縮します。MITライセンスの下で提供されるオープンソースプロジェクトです。

💼 Fedifyを活用しているプロジェクト

すでに様々なプロジェクトがFedifyを活用しています:

  • Ghost:数百万人のユーザーを持つプロフェッショナルな出版プラットフォーム(MITライセンスのオープンソース)で、Fedifyの主要スポンサー兼パートナーです。
  • Hollo:個人ユーザー向けの軽量マイクロブログ(オープンソース、AGPL-3.0)
  • Hackers' Pub:ソフトウェアエンジニア向けのフェディバースブログプラットフォーム(オープンソース、AGPL-3.0)
  • Encyclia:ORCID学術記録をActivityPubを通じて提供するブリッジサービス

🚀 Fedifyが提供する価値

  • 開発時間80%削減:複雑なActivityPub実装の代わりに実証済みフレームワークを活用
  • 即時Fediverse互換性:Mastodon、Misskey、Pleroma、Pixelfed、PeerTubeなど様々なFediverseサービスとすぐに互換
  • 専門技術サポート:ActivityPubおよびフェデレーションプロトコルの専門家による直接サポート
  • カスタム開発:お客様の特定要件に合わせた機能開発

🤝 可能な協力モデル

  • カスタムコンサルティングと統合サポート:お客様のプラットフォームへのFedify統合のための専門的支援
  • カスタム機能開発:お客様のプラットフォームに必要な特定機能の開発と実装
  • 長期的な技術パートナーシップ:継続的な開発とメンテナンスのための長期協力関係

🌟 Fedifyとの協力によるメリット

  • 技術的優位性:自社開発と比較して時間とリソースの節約
  • ブランドイメージ:オープンソースエコシステムへの支援を通じた企業イメージの向上
  • 分散型ソーシャルネットワークへの参入:フェディバースエコシステムへの容易な参加
  • 競争優位性:ソーシャル機能による製品競争力の強化

📩 興味をお持ちですか?

ActivityPubの実装をご検討中の方や、Fedifyプロジェクトとの協力にご興味のある方は、ぜひご連絡ください:

お客様の要件と目標に合わせたカスタマイズされた協力の可能性を一緒に探りましょう。

0
0
0

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

0
1
0

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

0
2
0

Juntai Park shared the below article:

LogTape 0.10.0 Released

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

LogTape 0.10.0 is now available, bringing enhancements to security, flexibility, and usability for this zero-dependency JavaScript logging library. A key addition is the @logtape/redaction package, which helps protect sensitive information using pattern-based and field-based redaction techniques. This package includes built-in patterns for common sensitive data types like credit card numbers and JWTs. The update also introduces improvements to timestamp formatting, allowing users to omit timestamps from formatted messages, and a lazy file sink option to improve resource utilization. Additionally, the configure() function now detects and prevents duplicate logger configurations. Thanks to external contributions, LogTape 0.10.0 offers more control over log output and improved resource management. Upgrade to this version to leverage these new features and improvements, enhancing your logging capabilities.

Read more →
3

최근에 마주친 문제/주제들이 우연히 다들 '양방향' 이란 개념과 관련이 있다. 아래는 거기 관련된 러프/나이브한 생각들이다.

세션 타입

이건 노골적인 예시인데, 말그대로 서버/클라가 양방향으로 통신하는걸 기술하게 해준다.

Propagator

대부분의 프로그래밍 언어에서 x = 3 + 2과 같은 우변을 계산해서 좌변의 기호에 할당하는 기능을 제공한다.

그런데 3 = x + 2 라고 썼을때 x = 1을 해주는 언어는 거~의 없다. 이런 기능이 왜 필요하냐는 의문이 들 수 있지만, 이런 방식을 간접적으로 다들 매일 쓰고 있다. 예컨데 패키지 버전 관리를 생각해보자.

foo: >= 2.0.0
bar: =< 3.1.0 

이런 식의 설정 파일을 만지작 거릴텐데, 사실 foo >= 2.0.0, bar =< 3.1.0, ... 같은 부등식을 기술하고 있는 셈이다. 여기서 barfoo를 의존성으로 가지면 문제가 좀더 복잡해진다. 패키지 매니저는 조건을 만족하는 foo, bar의 값을 알아서 계산해준다.

요지는, 구체적인 값 대신에 조건을 나열하는 방식은 이미 다들 쓰고 있다는 얘기다. 그리고 패키지 매니징이 아닌 다른 문제에서도 이 방식이 좋은 경우는 흔하지만, 조건을 풀어서 값을 구하는 부분을 짜는게 까다로워서 도입하기 쉽지 않다.

여기서 양방향과 관련된 부분은 좌변과 우변의 정보 교환이다. x = 3 + 2x <= 3 + 2로, 우변의 정보가 일방적으로 좌변으로 간다고 볼수 있다. 반면 3 = x + 2는 좌변의 정보가 우변으로 가야한다.

x + 1 = y - 3란 예시를 보자. 이 식만 가지고는 x, y의 값을 구할 수 없다. 하지만 x = 3이란 정보가 들어오면 y = 4란걸 알 수 있고, 반대로 y = 5란 정보가 들어오면 x = 1인걸 알 수 있다. 이런 양방향 정보교환을 기술할수 있게 해주는것이 Propagator 패턴이다. Propagator 자체도 세션 타입과 뭔가 관련이 있을거 같은데, 뭐 찾아보면 오히려 서로 관련 없는게 없으니 일단 패쓰.

프로그래밍에서의 타입

모든 프로그래밍 언어는 메타프로그래밍이 가능하고, 대부분의 프로그래밍 언어는 메타프로그래밍을 할 자격이 없다. 나는 그중에서도 특히 자격이 없는 언어인 Nix로 메타프로그래밍을 하는 상황에 쳐해있다. Nix의 특성상 나뿐 아니라 다른 많은 Nix 유저들이 자연스레 이 토끼굴에 빠진다.

Nix의 에러메시지는 읽기가 참 힘든데, 기능이 매우 부족한 언어에다가 여러 개념을 새로 구현해서 얹어놔가지고, 긴 스택트레이스 중에 내가 관심있는 부분은 끝의 일부인데 거기까지의 흐름을 따라가려면 앞의 상관없는 코드도 대충은 이해해야한다. 이게 양방향 정보 교환이 잘 안되고 있는 부분이다.

알다시피 함수 자체는 단방향 정보이다. 스택트레이스는 함수를 통한 단방향 정보의 전달 과정을 보여준다. 그리고 개발자는 그걸 반대로 뒤집은 형태를 분석해야 하는 상황에 놓인다. 이게 개발자 <=> 코드 의 양방향 정보교환의 수단이 제공되지 않아서 생기는 문제다.

개발자 <=> 코드의 양방향 정보코드의 대표적인 수단은 타입이다. 타입은 코드가 스스로를 변호하고, 개발자의 잘못된 변경으로부터 방어하도록 해준다. 대부분의 언어가 메타프로그래밍을 할 자격이 없다는 얘기가, 코드 생성이라는 개발자 -> 코드의 단방향 정보전달만 기술하고 반대로 코드 -> 개발자 방향의 정보를 모조리 잃어버리는 형태로 이루어지기 때문이다.

그런데 타입안전한 메타프로그래밍은 그자체로 어려운 문제이고 아직은 연구주제에 가깝다고 알고있다. 혹시 그냥 개발자에게 뭔가 알려줄수있는 방법 자체를 primitive로 가질 순 없나? 그게 결국 타입이랑 똑같은 것일까? 여기에 TypeScript에서의(역시!) 무근본한 트릭이 소개되어있는데, 약간 관련있을지도 모른다.

7

안녕하세요, 여러분.

해커스펍에 들어온 시점 전후로 건강에 문제가 생겨 이제야 hello world 메시지를 남기네요. 초대해주신 @hongminhee洪 民憙 (Hong Minhee) 님 고맙습니다.

애호하고 선호하는 프로그래밍 언어는 Python이고 Back-end 직군이 본진이지만, 그때 그때 엔지니어링에 필요한 직군에서 필요한 도구를 써서 개발해요. 현재는(2025년 5월 기준) 프리랜서로 일하고 있습니다.

개발 외엔 글쓰기, 글짓기를 좋아해서 글로 먹고 살 방법도 모색하고 있어요.

잘 부탁드리며, 또 뵈어요.

8

‘그냥 tryAny 쓰면 예외는 다 잡을 수 있는 거 아닌가? 왜 ResourceT를 써야 하지?’라고 생각했는데 찾아보니 tryAny로는 비동기 예외를 잡을 수 없다고 한다.

writeGreetingSafeAttempt :: IO ()
writeGreetingSafeAttempt = do
  dir <- getDataDir
  h <- IO.openFile (dir </> "greeting.txt") WriteMode
  _ <- tryAny do
    IO.hPutStrLn h "hello"
    IO.hPutStrLn h "world"
  IO.hClose h
4

@bglbgl gwyng @hongminhee洪 民憙 (Hong Minhee) @arkjunJuntai Park "전능한 느낌"이라고 하니까 Bastard Operator From Hell이 생각나요 ㅎ 좀 다르지만 연관있을 거 같은 느낌이 오랫동안 종이와 펜으로만 일하다 보면 거대한 실험장비를 눈앞에 마주하게 됐을 때 가슴이 두근거리면서 저걸 몰아 볼 수만 있으면 얼마나 좋을까 하는 생각이 들어요. 육중한 무언가를 직접 "operation"하고 싶다는 본능적 욕망이 깊이 자리잡고 있나 봅니다. 길에서 우연히 보게 된 중장비에 마음이 뺏겨 장래희망이 덤프트럭 운전기사가 된 전국의 미취학 아동들에게 "너도? 사실은 나도.."라고 말해주고 싶어요.

4

Juntai Park shared the below article:

Why LogTape Should Be Your Go-To Logging Library for JavaScript/TypeScript

洪 民憙 (Hong Minhee) @hongminhee@hackers.pub

LogTape is a modern JavaScript and TypeScript logging library distinguished by its simplicity, flexibility, and broad runtime compatibility. One of its key advantages is its zero-dependency footprint, which reduces bundle size and enhances stability, making it ideal for both applications and libraries. LogTape supports multiple JavaScript runtimes, including Node.js, Deno, Bun, web browsers, and edge functions, ensuring consistent logging across different environments. Its hierarchical category system allows for fine-grained control and targeted filtering of logs, while structured logging enables improved searchability and data analysis. The library also offers simple extension mechanisms for creating custom sinks and filters with minimal boilerplate. Designed with library authors in mind, LogTape allows libraries to provide logging output without imposing specific configurations on users. With features like explicit and implicit contexts, LogTape facilitates richer logging by adding consistent properties across multiple log messages, making it easier to trace requests through a system. This post highlights LogTape's unique combination of features that address real-world development challenges, making it a valuable tool for any JavaScript or TypeScript project.

Read more →
6

프론트엔드 개발을 한 6년정도 하면서 생긴 아직 풀리지 않은 의문으로, 템플릿과 공식 문서에선 그렇게 세련되고 예쁜 컴포넌트들이 왜 import해서 내 프로젝트에서 쓰면 개촌스럽고 못생겨지냐는 것이 있다.

5
1
2
5

요즘은 내가 코드를 짤 일은 없고, 개발계획도 AI가 짜고, 개발을 실제로 하는것도 AI가 한다. AI가 좀 핀트 어긋난 것 같으면 내가 잠깐 수정해주는 정도? 누가 보면 바이브 코딩이지만, 엄밀하게는 "바이브 코딩"은 아니다.

요즘 애용하고 있는 워크플로우는 이렇다.

  1. Gemini 웹 대화창 띄워서 "~~한 요구사항이 있어. 시니어 개발자로서 어떻게 작업을 이어나갈지 계획을 알려줘" 하고 마스터 플랜을 뽑는다
  2. Gemini에서 응답이 오면, "AI 한테 그걸 시킬건데, AI가 이해할 수 있게 스텝 바이 스텝으로 XML 포맷으로 지시사항을 알려줘. 각각의 지시사항은 하나하나 검토하기 편하게, 여러개로 분리된 파일이었으면 좋겠어" 라고 프롬프트를 순차적으로 뽑아낸다
  3. 검토할 거 검토해보고, 적당히 괜찮겠다 싶으면, 프롬프트를 Aider든 뭐든 AI에다가 복붙하면 끝.
  4. 최종 결과는 Repomix 돌려서 Gemini 웹 대화창에 올리고, 1~3을 반복

중소규모 플젝은 이게 잘 먹히고, 3주에 걸쳐서 할 것 같았던 작업을 3일컷으로 끝냈다.

9
7
1
1

Juntai Park shared the below article:

데이터 효율성으로 본 AI와 인간의 비교

bgl gwyng @bgl@hackers.pub

이 글은 AI와 인간의 능력 비교에서 데이터 효율성의 중요성을 강조하며 시작합니다. 현재 AI는 인간에 비해 데이터 효율성이 떨어지지만, 일단 학습된 능력은 복제 가능하다는 점을 지적하며 콜센터 직원과 같은 직업군에 대한 위협은 여전하다고 설명합니다. 데이터 효율성이 중요한 경영인과 연구자는 AI를 유용한 도구로 활용할 수 있지만, 인간의 데이터 효율성이 정말 높은지에 대한 의문을 제기합니다. Yann Lecun의 주장을 인용하여 인간이 받아들이는 데이터 양이 AI 학습에 쓰이는 양보다 적지 않음을 언급하며, 인간은 데이터를 있는 그대로 학습하지 않고 편향에 기반하여 학습한다는 흥미로운 주장을 제시합니다. 마지막으로, AI에게 인간처럼 무모한 결론을 내리도록 가르치는 것이 옳은지에 대한 질문을 던지며, 압도적인 양의 데이터를 통해 더 많은 진실을 알아낼 수 있는지에 대한 고민으로 마무리합니다. 이 글은 AI 개발 방향에 대한 새로운 시각을 제시하며 독자에게 깊은 생각거리를 제공합니다.

Read more →
8
4

( ~ 5/31) 제 3회 파이 웹 심포지움 참가자 모집

< 이 행사는 한빛미디어의 장소 후원을 받았습니다 > 주제: AI 시대를 위한 파이썬으로 웹 서비스 개발하기

최근 파이썬이 가장 많이 쓰이는 분야는 단연코 AI입니다. 이제 AI 서비스에 웹 개발이 필요해지는 순간이 많아졌습니다.

웹 서비스 개발 뿐 아니라 openai 나 bedrock같은 AI 서비스의 api 를 이용한 또 다른 서비스를 만들어야합니다.

AI 서비스를 만들면서 겪은 웹 서비스 기술을 함께 나누어보세요! 세션이 끝난 이후엔 다과와 함께 네트워킹 시간도 가질 수 있습니다.

일시 : 2025년 5월 31일 (토) 13:00 ~ 18:00 장소 : 서울특별시 서대문구 연희로2길 62 한빛미디어 리더스홀

https://event-us.kr/pythonkorea/event/103147

1
4