현재 시각은 23시 58분. Fedify에 NestJS를 지원한다고 온갖 삽질을 하다가 마지막을 보고 있는 시점에서 뭘할까 고민하다 가만히 있기는 좀 그래서 끄적이는 의식의 흐름대로 쓰는 글....

맥락이 싹다 휘발되기전에 내가 어떻게 우여곡절을 겪었는지를 좀 러프하게 요약해보자....

  • Fedify 프로젝트를 NestJS 에서도 쓸 수 있도록 Fedify 모듈을 만들려고 했던 것에서부터 불행이 시작됨.

  • 애초에 NestJS는 CommonJS 기반이고 Fedify는 ESM 모듈만 지원했어서, 이걸로 사용할 수 있녜마녜 하는 얘기가 오가는 중에 Node 22 버전에서 NODE_OPTIONS=--experimental-require-module 환경변수 걸면 esm 모듈을 가져올 수 있다는 사실을 알게됨.

  • Fedify 프로젝트에 포함된 라이브러리로 넣기 이전에, 가설검증은 해봐야겠어서 기존에 NestJS 기반으로 만들려고 벼르고 있던 프로젝트에서 가설검증을 시도함

  • 가설 검증 자체는 성공적이고 스무스했음. Fedify microblogging 예제를 돌릴 정도는 돌아갔던 것 같음.

  • 하지만........ Fedify로 통합하는 과정이 문제가 있었는데... Fedify에 돌아가는 코드를 옮겨놓고, 그 코드가 의도하는대로 잘 뽑히는지가 문제였던 것이다.

  • 예를 들면, NestJS는 Typescript 생태계에서는 거의 deprecated된 것으로 취급하는 Decorator 문법을 쓰고 있는데, deno 런타임에서는 지원안하는것은 물론이고, 패키징을 하는 것 자체는 성공했으나 npm 패키지를 가져다 쓰는 입장에선 계속해서 런타임 에러가 뜨는 것. 데코레이터 문법의 경우엔 tsconfig 파일을 또 별도로 수정해서 어떻게든 코드가 뽑히게 했음.

  • 그래서 node_modules 를 직접 까보면서 코드가 어떻게 뽑히는지 직접 두눈으로 확인해보기도 하고, 민희님 도움 받아서 pnpm prepack 커맨드로 tgz 파일 만들어서 그걸 package.json에서 가져다 쓰는 것도 어쩌다보니 하게 되고... 패키징은 제대로 되었는데 왜 import 오류가 다시 뜨는가 하고 봤더니, 처음으로 돌아가서 NODE_OPTIONS 환경변수 문제였고. commonjs/esm 둘다 js 아웃풋이 나오도록 세팅하는 것도 해보고, 패키지 퍼블리시까지 겨우 성공

  • 그러다가, 다시 왜 안 돌아가지하고 봤는데... 처음에 돌아가던 코드에서 좀 정리를 하다보니 안 돌아가게 된 케이스도 있었고, 어떤 부분은 NestJS 내부 구현(Express)을 몰라서 계속 똥볼을 찬 케이스도 있었고, 몇시간을 심연을 들여다 봤던 것 같다...

패키징하면서도 오류 터져서 빌드깨지는거만 체감상 한 10~15번 정도한 것 같은데 머리에 스팀 나는 줄 알았음...

이젠 된다... 진짜 험난한 여정이었다...

13

❤️

11 people reacted.

your metaverse plumber and firefighter | DISCLAIMER - 소속한 집단의 의견을 대표하지 않고, 생각은 언제나 바뀔 수 있음

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

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

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

Uncertified Quasi-pseudo dev

지금까지 다루어 봤던 언어는 아래와 같습니다. MSX Basic Z80 Assembly Pascal GW-Basic C Macromedia Director Visual Basic PHP Flash Actionscript C++ Javascript

그리고 지금은, 하스켈을 비즈니스에 쓰려고 몇 년간 노력하고 있습니다. 지금 상태는, 하스켈 자체를 연구하는 게 아니라, 하스켈 (혹은 함수형 언어) 이해가 어려운 이유를 연구하는 아마추어 연구가쯤 되어버렸습니다. 하스켈 주제로 블로그를 운영 중이지만, 아직은 하스켈 프로그래머라고 자신 있게 말하진 못하고 있습니다. 가끔 이해에 도움이 될만한 측면이 보이면, 가볍게 아이디어를 여러 SNS에 올려보곤 하는데, 그다지 프로그래머에게 쓸모 있는 내용이 포함되진 않는 것 같습니다.

Game developer. Game designer. @hyaline I know that the world is filled with fear, pain, and sadness. I want to understand and empathise with your fear, pain and sadness. Korean, English. he/him. 히아입니다. 512자라니 짧아!

Privacy advocate 〱 Malware analyst 〱 Cybersecurity
〰️ ⁠InfoSec 〰️ ⁠DFIR 〰️ ⁠CISSP 〰️ ⁠黑客 〰️ ⁠Katzenmädchen
:ablobcatmaracasevil: ⁽ʰᵒᵖᵉ ʸᵒᵘ ˡⁱᵏᵉ ᶜᵒʳⁿʸ ʲᵒᵏᵉˢ ᵃⁿᵈ ᶜᵃᵗˢ⁾

【 Professional Computer Booper 】
Even my brain has certs (asd,adhd,...)
Gender: a threat model :nonbinary_flag: (they/them)

”Hän on vähän sellainen kusilonkki”

__😺😷🔛Ⓜ️🦠🏺🐈‍⬛🩷🩵🔬🧑🏻‍💻🛏️💤__

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 Hackers' Pub 的開發者!

안녕하세요! 잘 부탁드립니다!

🎉

1 person reacted.

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 Hackers' Pub 的開發者!

😂

1 person reacted.

능력 없고 코딩 못하고 뭔가 만들수도 없고 신입한테도 기죽어지내고 이제 직장이 없어진 SE