https://github.com/makachanm/pepper-guide
제가 만든 작은 언어인 Pepper를 가지고 프로그래밍에 입문하는 사람들이 코드를 짜는 법을 배울 수 있게 작은 가이드북을 하나 만들었어요.
@z9mb1@hackers.pub · 114 following · 92 followers
https://github.com/makachanm/pepper-guide
제가 만든 작은 언어인 Pepper를 가지고 프로그래밍에 입문하는 사람들이 코드를 짜는 법을 배울 수 있게 작은 가이드북을 하나 만들었어요.
i put balatro on my oscilloscope
Last year I was blown away as a #FOSDEM speaker about the speaker page/video infrastructure and how well it all works. This year I'm a co dev room manager and a Cfp reviewer... similarly blown away with how well it all works. Huge kudos to the team. #opensource
오늘
@fossforall 컨퍼런스 2025에서 發表한 〈야크 셰이빙: 새로운 오픈 소스의 原動力〉의 슬라이드를 共有합니다! 들어주신 분들 모두 感謝합니다!
I'm working my way through the Web Browser Engineering book (by Pavel Panchekha & Chris Harrelson), but I'm using asyncio for my implementation instead of the book's examples.
I hit a roadblock in Chapter 2, which introduces tkinter. How do you make tkinter's event loop and asyncio's event loop play nicely together?
A bit of research led me to this fantastic library, async-tkinter-loop, which seems to solve this exact problem. Sharing in case anyone else is on a similar journey!
P.S. If you're curious, the repository I'm working on is here: https://codeberg.org/hongminhee/hongju.
배포는 역시 사람 손으로 하는 것이 아니다. 계속 뭔가 작업을 하고 있기 때문에 태그 따놓고는 막상 다른 버전으로 빌드 하는 경우가 너무 쉽게 발생한다.
오이카페 모바일 앱 베타 테스트 신청서를 받고 있습니다.
uv는 Python 생태계에 지난 10년간 등장한 최고의 혁신
예전엔 Python의 툴링이 충분하다고 들었지만, 이제 Python 개발자들이 npm이나 cargo, bundler 같은 lockfile 기반 생태계를 경험하고 나서 그 장점을 깨닫는 걸 보니 속이 시원해짐
😂🤣
Dear
@gotosocial users: we see you, even though you can't see us! 🥲
Well, you can see this account. But any accounts hosted on https://encyclia.pub aren't visible to you.
The way we use @fedifyFedify: ActivityPub server framework, the ActivityPub framework that powers our connections, uncovers some issues in the code. Curious fedi developers can find details here: https://github.com/fedify-dev/fedify/issues/473
Attempts at workarounds have sadly been fruitless, so please join us in waiting for a fix in Fedify. ❤️🩹
By the way:
As a consumer of the public ORCID API, Encyclia is not allowed to generate revenue. To be on the safe side, we don't accept donations either. However, we are happy to be making a modest contribution out of our private pockets to @fedifyFedify: ActivityPub server framework on
@opencollective here: https://opencollective.com/fedify
If you'd like to donate some money to improve Encyclia's functionality and reliability, @fedifyFedify: ActivityPub server framework is the best place to do so! 🙂
Jiwon shared the below article:
Juan @juanjin@hackers.pub
This technical blog post provides a comprehensive overview of the Internet of Things (IoT), demystifying its core concepts and architecture. It explains how IoT bridges the physical and digital worlds through interconnected devices, gateways, service applications, and servers. The post emphasizes the importance of IoT for individuals, businesses, and society, highlighting its potential to enhance convenience, efficiency, and sustainability. The author explores essential IoT components, including end-devices, gateways, servers, and service applications, detailing their roles in sensing, transmitting, processing, and acting on data. It also addresses common misconceptions about IoT, clarifying that it extends beyond smart homes and involves multidisciplinary systems. The post further discusses network topologies like direct connections, hierarchical connections, and mesh networks, explaining their trade-offs in terms of power, scalability, and resilience. Additionally, the author delves into non-IP connection technologies, such as UART, CAN, IEEE 802.11, Bluetooth/BLE, LoRa, and GNSS, and application protocols like LoRaWAN, MAVLink, UAVCAN, NMEA/UBX, Thread, CoAP, MQTT, and LwM2M. The post also covers Firmware Update Over-The-Air (FUOTA) and IoT security, emphasizing the need for cryptographic foundations, secure communication, secure boot, and access control. The author concludes by calling for greater investment, education, and ecosystem building in IoT, particularly in South Korea, to catch up with global advancements. This post is valuable for anyone seeking a deeper understanding of IoT and its potential impact on various aspects of life and industry.
Read more →졸논 때문에 이거저거 검색해보는데 dbpia에는 탈중앙화 소셜 네트워크 관련 글이 잘 안보이네… 귀찮다
xcode-build-server와 Swift의 sourcekit-lsp 덕분에 느려터진 Xcode 대신 Zed나 다른 LSP를 이용할 수 있는 에디터에서 Xcode Swift 프로젝트를 셋팅해서 쓸 수 있다. [참고한 문서]
iOS 26는 버그가 많은데, 26.0.1이 되어서도 SwiftUI Slider에서 step값을 지정했을 때 Slider가 step값을 무시하는 버그가 있다. [Workaround]가 있는데 이렇게 땜빵식으로 해결해야한다는게 참...
타입시스템이란 거 정말로 중요한거구나...
새 블로그를 소개합니다: Gatsby에서 Astro로의 전환과 Contentful CMS 제거
blog.te6.in/post/blog-v2
새 블로그를 소개합니다
2025 Component Abuse Challenge: The Sweet Sound of a Choking Transformer
Exciting news for #Fedify developers! We've just landed a major milestone for Fedify 2.0—the #CLI now runs natively on #Node.js and #Bun, not just #Deno (#456). If you install @fedify/cli@2.0.0-dev.1761 from npm, you'll get actual JavaScript that executes directly in your runtime, no more pre-compiled binaries from deno compile. This is part of our broader transition to Optique, a new cross-runtime CLI framework we've developed specifically for Fedify's needs (#374).
This change means a more natural development experience regardless of your #JavaScript runtime preference. Node.js developers can now run the CLI tools directly through their familiar ecosystem, and the same goes for Bun users. While Fedify 2.0 isn't released yet, we're excited to share this progress with the community—feel free to try out the dev version and let us know how it works for you!
마이그레이션을 위해 각 페이지들은 TanStack Start/Router에 맞게 다 작업했고, SEO를 위해 만든 웹 페이지기도 하니 이제 렌더링된 페이지의 meta 태그랑 sitemap.xml를 작업이 남은 상황이다.
Next.js는 검색엔진 최적화나 페이지의 메타데이터를 예쁘게 정리해둔 타입에 맞게 담아주면 정말 알잘딱깔센하게 <head> 태그 안에 담아주는데[1], TanStack Start에서는 아래와 같이 직접 meta 태그나 link 태그 등을 하나하나 직접 빚어내야한다.
export const Route = createFileRoute("/articles/$articleId")({
loader: ({ params: { articleId } }) => fetchArticle({ data: { articleId } }),
head: (ctx) => {
// NOTE: 적당히 생략
return {
meta: [
{ name: "title", content: title },
{ name: "description", content: description },
{ name: "keywords", content: keywords },
{ name: "og:title", content: title },
{ name: "og:type", content: "article" },
{ name: "og:author", content: post.author.nick },
{ name: "og:image", content: "/ci/logo.svg" },
{ name: "og:url", content: fullUrl },
{ name: "og:description", content: description },
{ name: "og:locale", content: "ko_KR" },
{ name: "og:site_name", content: defaultTitle },
],
};
},
component: RouteComponent,
});
그러면 Next.js는 어떻게 각 페이지 컴포넌트 모듈에서 async function generateMetadata() 함수나 metadata 객체를 읽어서 어떻게 처리할까? 궁금해져서 찾아보았다.
Next.js 코드 속 src/lib/metadata에서는 모듈에 있는 메타데이터 정의를 읽고 generateMetadata()면 실행해서 resolve하는 resolve-metadata.ts부터, metadata.tsx를 통해 어떻게 Metadata 타입을 가지고 OpenGraph, Apple, Twitter를 비롯해 각 타입에 맞는 <meta> 태그를 만들어주는지 알 수 있다. OpenGraph라던가 각 세부 항목에 대해선 generate/opengraph.tsx 파일 등을 보면 이해할 수 있다.
이 방식이 꽤 괜찮게 느껴져서 자고 일어나선 해당 코드를 차용해서 새 코드베이스에서도 그대로 활용할 수 있게 만들어보려고 한다.
Framework 노트북과 디스크로 10TB S3 직접 호스팅하기
------------------------------
- *Framework 노트북과 JBOD를 활용해 자체 S3 스토리지를 구축* 하여 10TB 용량을 저렴하게 운영하고 있으며, 4개월간 관리 없이도 안정적으로 작동
- 화면이 없는 중고 Framework 노트북에 *ZFS와 garage S3를 설치* 하여 홈 서버로 활용, AppGoblin의 SDK 추적 프로젝트를 위한 대용량 저장소로 사용 중
- 4개월…
------------------------------
https://news.hada.io/topic?id=23484&utm_source=googlechat&utm_medium=bot&utm_campaign=1834
대충 일단 게시물을 가져오는데는 성공했으니 나머지는 자고 일어나서 마저 작업하는걸로...
sitemap.xml 구현The fediverse needs better developer resources. The kind ATProto has.
Fixing that gap: rich documentation, interactive examples, instant prototyping.
Built indie-style with FediDB, browser.pub and other community resources to create a better foundation for the next generation of fediverse developers.
Sometimes one spark is all it takes. Share if you care ✨
#cosmoslide 작업 내역
https://github.com/cosmoslide/cosmoslide/pull/45 PDF 업로드 기능이라도 구축은 해야할 것 같아서 진행함. 보통은 express라던가 등등 JS 기반의 웹서버 프레임워크에서는 파일시스템/S3/GCS 등의 스토리지에 파일을 업로드할때, 스토리지에 접근하는 과정 자체를 추상화하는 flydrive라는걸 쓰는데, flydrive는 NestJS에서 사용이 되지 않는 ESM-only 모듈이어서, 어떻게 해야 하나 하다가 Claude Code한테 AWS S3에 접근하는 것만 적당히 추상화해서 야크쉐이빙 해달라고 했더니 그냥 순식간에 되었다. 문서를 뜯어보고 구현해야하는 수고는 줄었고, aws sdk를 어떻게 활용하는지는 가성비있게 학습할 수 있는 기회가 되었다.
https://github.com/cosmoslide/cosmoslide/pull/46 프로필 화면에 Presentation 탭을 넣었고, 프레젠테이션 파일을 업로드하면 Create(Note) 액티비티가 발생되도록 처리했다. react-pdf 이용해서 커스텀 PDF 뷰어 적당히 끼워넣었다.
詳細はブログ記事で後日お伝えしますが、嬉しいお知らせです。FedifyがSovereign Tech Fundから投資を受けることになり、今後約一年間、Fedifyの開発に専念できることになりました!
We're excited to announce that #Fedify has been awarded a service agreement by the
@sovtechfundSovereign Tech Agency! The Sovereign Tech Fund is investing €192,000 in Fedify's development over 2025–2026 to strengthen the fediverse ecosystem.
This investment will enable us to significantly expand Fedify's capabilities and make it easier for developers to build federated applications. The commissioned work focuses on improving developer experience, adding comprehensive debugging tools, and ensuring Fedify remains at the forefront of #ActivityPub innovation.
Here are the key milestones we'll be delivering:
Web framework integrations: Official adapters for Next.js, Elysia, Fastify, and Koa, making it seamless to add federation to existing applications
ActivityPub debug & development tools: Real-time debug dashboard with WebSocket monitoring, federation lifecycle hooks, and implementation checklist CLI to make federation interactions transparent and debuggable
Storage & infrastructure enhancements: SQLiteKvStore for robust file-based storage across Node.js, Deno, and Bun, plus performance optimizations for production deployments
Comprehensive documentation & examples: Specialized tutorials for building federated blogs, social networks, and content platforms, with complete working examples and migration guides
Observability & monitoring: Full OpenTelemetry metrics, performance benchmarking tools, and federation health dashboards for production environments
Advanced features & standards: FEP-ef61 (Portable Objects) support and implementation of emerging Fediverse Enhancement Proposals to keep Fedify at the cutting edge
All developments will be open source and available for the entire #fediverse community to use, contribute to, and build upon.
I'll write a detailed blog post soon, but I'm thrilled to share that Fedify has received investment from the Sovereign Tech Fund, which means I'll be able to focus exclusively on the Fedify project for the next year or so.
일본여행 후유증 3일째..... 일주일 정도 안 잡으니까 작업하던거 맥락도 날아가고, 손에 영 안잡힌다.... 흑흑.....
@kodingwarriorJaeyeol Lee (a.k.a. kodingwarrior)
? 저처럼 스테이트리스하게 살면 됩니다.
어떤 것도 기억하지 않는다
Optique 0.6.0 is adding shell completion! We already support:
This covers most users, but should we add more niche shells? Your input helps us prioritize!
키보드에 rgb led 시작한 사람 누구에요? 왜 그런 시작을?
@z9mb1Jiwon 역시 게이밍 기어에 멸망을
Thoughts? i haven’t tried yet both of them Sonnet4.5 and codex
@z9mb1Jiwon 일단 LLM과 AI 도구에는 언제나 hype이 가득해서 그대로 믿으면 안되는 것은 있지만, 지금 시점에서 Sonnet 4.5는 경쟁 모델이나 자사의 상위 모델보다도 에이전틱 코딩 등에서 더 좋은 벤치마크 결과를 내고 있어요. 그리고 Claude Code는 지금 시점에서 잘 만든 코딩 에이전트 중 하나구요.
전 사람들이 Claude와 Anthropic을 욕하는 이유가 초기보다 줄어든 Quota와 최근 일련의 성능 저하 이슈 등이 있다고 생각하는데, Sonnet 4.5는 가격이나 quota 아니면 속도 등에서 기존 Sonnet과 큰 차이가 없고 오히려 결과도 Opus보다 좋은 경우가 더 많아서 이러면 Quota 문제에 대해 기존보다 덜 스트레스를 받을 수 있다고 생각해요. 이제 Claude Code에 usage 커맨드도 들어가서 사용량 체크도 쉬워졌구요.
@nebuletoHaze 두부 바삭하게 만드는 팁 공유 부탁드립니다.
Introducing Claude Sonnet 4.5—the best coding model in the world.
It's the strongest model for building complex agents. It's the best model at using computers. And it shows substantial gains on tests of reasoning and math.
Mini Laptop Needs Custom Kernel
https://hackaday.com/2025/09/29/mini-laptop-needs-custom-kernel/
I believe most of it would be spent on running tsc to build the documentation from it 🫠
최근 며칠간 WAH라는 이름의 WebAssembly 인터프리터를 만들고 있다. ~와! 샌즈!~
WAH의 특징이라면 C로 작성되어 있는데 헤더 하나로 구성되어 있다는 점과, 거의 대부분의 코드를 Gemini가 짰다는 것 정도일까? (Claude Code도 좀 사용했지만 코드 생성은 Gemini가 다 했다.) Gemini가 디버깅을 시키면 답답한 게 사실이라서 최대한 프롬프트에 정보를 많이 넣고 few-shot으로 생성하게 하는 걸 목표로 했는데 생각보다 잘 되었다. 예를 들어서 한 프롬프트는 다음과 같았다. 저 문장 하나 하나가 시행착오의 결과이다.
@wah.h 에 if~else~end 명령을 구현하고, 대응되는 test_*.c 파일들이 모두 성공하도록 (또는, 해당 테스트에서 잘못된 점이 있을 경우 그 원인을) 고쳐줘. 아직 loop 관련된 코드는 처리할 필요 없고 테스트 중에 그걸 테스트하는 게 있다면 주석 처리해(지우지는 마). 컴파일과 실행은 &&로 한 번에 하도록 해. 정확한 구현 방법은 이래야 해: if~else~end에서 마지막 end는 사라지고, if는 else 직후 명령으로 이동하는 conditional jump로 재활용하며, else는 unconditional jump로 바뀌어(즉 실행기 입장에서 br과 else의 동작은 똑같아야 해! else를 아예 없애고 br로 대체할지 말지는 알아서 정해). 그러니까, if A B C else D E F end G 같은 명령이 있다면 preparsing 이후에는 if <offset to D> A B B C else <offset to G> D E F G 형태가 되어야 한다는 뜻이야. WebAssembly 명세에 따르면 if 문에는 block type이 따르는데, 이 타입을 사용해서 validation을 진행하는 것도 정확히 구현해야 해(block type이 function type (T1..Tn)->(U1..Um)이면 현재 스택에 T1..Tn 타입이 들어 있고 end 이후에는 U1..Um 타입이 들어 있어야 하고, 일반 타입 T가 들어 있다면 ()->(T)와 동일하게 취급함). block type은 validation 이후 preparsing 과정에서 사라져서 런타임에는 반영되지 않도록 해.
솔직히 너무 많이 요구하는 거 아닌가, 안되면 validation 부분을 어떻게 뺄지 고민하고 있었는데 시도 세 번만에 800줄짜리 diff가 떡하니 나오고 일단 보기에는 틀린 부분이 없어서 놀랐다. 물론 삽질도 많이 했는데 가장 많이 한 삽질은 테스트를 작성할 때 수동으로 WebAssembly 바이너리를 짜면서 바이트 숫자를 잘못 세어서 오류가 나는 거랑, 분명 WebAssembly opcode를 사용해야 하는데 자기 마음대로 코드를 정해 버린다거나 하는... 그런 우스운 상황이었다.
우습기도 하고 놀랍기도 하지만 이 코드를 내가 직접 짜지 않는 이유는 귀찮아서...라기보다는 내가 이걸로 하고 싶은 일이 따로 있고 WebAssembly 인터프리터를 만드는 게 주 목표는 아니기 때문이다. (원래 하고 싶은 일은 나중에 언급할 듯.) WebAssembly 구현이라고 하면 기술적으로 복잡해 보이지만, 내 용도에서 유래하는 몇 가지 조건(대표적으로 결정론적인 동작)을 제약으로 걸면 기술적으로 복잡하다기보다는 그냥 노가다에 가까워지기 때문에 끌리지 않는 것도 있긴 하다. 이전의 Angel이 과연 얼마까지 바이브 코딩으로 할 수 있는지를 테스트하는 목표였다면, 이번에는 정말로 목표를 달성하는 수단으로 기능할지 실험해 볼 작정이다.
https://github.com/lifthrasiir/wah/ 정식으로 공개했다. 현재 4800여줄. WebAssembly 1.0 거의 완전 지원, 2.0은 SIMD를 포함해 8~90% 정도 지원하는 정도까지 왔다. 하지만 아직 API 문제를 완전히 풀진 못해서 모듈 링킹이 안 되는 치명적인 문제가 있다...
FastAPI 창시자와 한 컷.... 가슴이 웅장해짐....
Big news: Internet Archive Europe
@internetarchiveeurope has opened its new HQ in Amsterdam! 🎉 A home for preservation, access & shared cultural heritage.
Read coverage from
@mariaMaria Bustillos in Flaming Hydra: https://flaminghydra.com/freedom-and-sharing-at-the-internet-archive-europe/
요것이 진정한 Domain-Driven Development...
Holy shit you need to watch
@Ultramorbidi's music video about the fediverse, "Fedilike", this fukken owns https://tube.systerserver.net/w/qVxqiScM2X59kkwM2NTRgG
Added #BrowserPub (https://browser.pub), #Subclub (
@subclub), #Kookie (https://kookie.app), #Openvibe (
@openvibe), #Bluesky (https://bsky.app), #Diaspora (https://diasporafoundation.org), Tuba (
@Tuba) and #Vervis (https://vervis.peers.community) icons to #FediverseIconography at https://fediverse.wake.st
Its been a while! I just added #HackersPub (https://hackers.pub), #Elk (
@elk) and #Elgg (
@elggPlatform for Social Apps) icons to #FediverseIconography at https://iconography.fediverse.info
무려 폰트도 바꿀수 잇슴 ㅋㅋㅋㅋㅋ
나는 매킨토시로 일기쓰는 사람이다 무섭지
오픈소스 서밋 코리아 세션 리스트 공개됐네요
"두통과 함께하는 사람들"은 다음 주(22일 ~ 28일) 편두통 인식 개선 주간을 맞이해서 광화문에서 커피차 이벤트를 진행합니다! 주변에 많은 공유와 참여 부탁드려요.
오랫동안 열심히 준비하던 것 중 하나입니다. 부스 놀러와주시면 기쁠 것 같아요.
최근 며칠간 WAH라는 이름의 WebAssembly 인터프리터를 만들고 있다. ~와! 샌즈!~
WAH의 특징이라면 C로 작성되어 있는데 헤더 하나로 구성되어 있다는 점과, 거의 대부분의 코드를 Gemini가 짰다는 것 정도일까? (Claude Code도 좀 사용했지만 코드 생성은 Gemini가 다 했다.) Gemini가 디버깅을 시키면 답답한 게 사실이라서 최대한 프롬프트에 정보를 많이 넣고 few-shot으로 생성하게 하는 걸 목표로 했는데 생각보다 잘 되었다. 예를 들어서 한 프롬프트는 다음과 같았다. 저 문장 하나 하나가 시행착오의 결과이다.
@wah.h 에 if~else~end 명령을 구현하고, 대응되는 test_*.c 파일들이 모두 성공하도록 (또는, 해당 테스트에서 잘못된 점이 있을 경우 그 원인을) 고쳐줘. 아직 loop 관련된 코드는 처리할 필요 없고 테스트 중에 그걸 테스트하는 게 있다면 주석 처리해(지우지는 마). 컴파일과 실행은 &&로 한 번에 하도록 해. 정확한 구현 방법은 이래야 해: if~else~end에서 마지막 end는 사라지고, if는 else 직후 명령으로 이동하는 conditional jump로 재활용하며, else는 unconditional jump로 바뀌어(즉 실행기 입장에서 br과 else의 동작은 똑같아야 해! else를 아예 없애고 br로 대체할지 말지는 알아서 정해). 그러니까, if A B C else D E F end G 같은 명령이 있다면 preparsing 이후에는 if <offset to D> A B B C else <offset to G> D E F G 형태가 되어야 한다는 뜻이야. WebAssembly 명세에 따르면 if 문에는 block type이 따르는데, 이 타입을 사용해서 validation을 진행하는 것도 정확히 구현해야 해(block type이 function type (T1..Tn)->(U1..Um)이면 현재 스택에 T1..Tn 타입이 들어 있고 end 이후에는 U1..Um 타입이 들어 있어야 하고, 일반 타입 T가 들어 있다면 ()->(T)와 동일하게 취급함). block type은 validation 이후 preparsing 과정에서 사라져서 런타임에는 반영되지 않도록 해.
솔직히 너무 많이 요구하는 거 아닌가, 안되면 validation 부분을 어떻게 뺄지 고민하고 있었는데 시도 세 번만에 800줄짜리 diff가 떡하니 나오고 일단 보기에는 틀린 부분이 없어서 놀랐다. 물론 삽질도 많이 했는데 가장 많이 한 삽질은 테스트를 작성할 때 수동으로 WebAssembly 바이너리를 짜면서 바이트 숫자를 잘못 세어서 오류가 나는 거랑, 분명 WebAssembly opcode를 사용해야 하는데 자기 마음대로 코드를 정해 버린다거나 하는... 그런 우스운 상황이었다.
우습기도 하고 놀랍기도 하지만 이 코드를 내가 직접 짜지 않는 이유는 귀찮아서...라기보다는 내가 이걸로 하고 싶은 일이 따로 있고 WebAssembly 인터프리터를 만드는 게 주 목표는 아니기 때문이다. (원래 하고 싶은 일은 나중에 언급할 듯.) WebAssembly 구현이라고 하면 기술적으로 복잡해 보이지만, 내 용도에서 유래하는 몇 가지 조건(대표적으로 결정론적인 동작)을 제약으로 걸면 기술적으로 복잡하다기보다는 그냥 노가다에 가까워지기 때문에 끌리지 않는 것도 있긴 하다. 이전의 Angel이 과연 얼마까지 바이브 코딩으로 할 수 있는지를 테스트하는 목표였다면, 이번에는 정말로 목표를 달성하는 수단으로 기능할지 실험해 볼 작정이다.
Thinking about building “#Fedify Studio” (tentative name)—a web-based #ActivityPub debugging & development toolkit, like a supercharged version of ActivityPub.Academy and fedify inbox command. Imagine having a proper UI for testing activities, inspecting actors, debugging federation issues… Would this be useful for other ActivityPub developers out there?
이제 자신이 보여주고 싶지 않은 추천사를 가리는 기능도 추가되었습니다. 메인 페이지에서 링크 타고가시면 사용 가능해요. 많은 이용 부탁드립니다.
https://referral.akaiaoon.dev/ 이 링크에서 사용 가능하고, 내가 받은 추천사는 https://referral.akaiaoon.dev/u/:username 으로 볼 수 있습니다. 아래 말코링님의 추천사 리스트를 참조해 주세요.