빈자의 에이전틱 코딩, 토큰 모아 태산
카카오의 은혜를 입어 쓰던 ChatGPT Pro 플랜이 끝난 뒤로 저는 Astra를 잠깐만 써도 1주일치 사용량이 날아가는 삶을 살고 있습니다. 토큰은 비싸고 사람은 저렴한 것이 오늘의 우리네 현실인 것입니다. 그러니 토큰 값을 아끼려면 사람이 머리를 더 써야 합니다.
그래서 오늘의 주제는, 토큰을 아주 조금 아끼는 방법 한 가지입니다.
life as a continuous loop of building and breaking
카카오의 은혜를 입어 쓰던 ChatGPT Pro 플랜이 끝난 뒤로 저는 Astra를 잠깐만 써도 1주일치 사용량이 날아가는 삶을 살고 있습니다. 토큰은 비싸고 사람은 저렴한 것이 오늘의 우리네 현실인 것입니다. 그러니 토큰 값을 아끼려면 사람이 머리를 더 써야 합니다.
그래서 오늘의 주제는, 토큰을 아주 조금 아끼는 방법 한 가지입니다.

최근에 달팽이 사육장에 웹캠을 달아서 펫캠으로 쓰는 방법에 대한 글을 올리면서 타임랩스 프로그램이 아쉽다는 언급을 했었죠. 그래서 직접 만들었습니다. 세계 최초 (아마도) 달팽이 타임랩스 프로그램, 메밀캠(Memilcam)을 소개합니다. 달팽이가 아니더라도 뭐든지 찍을 수 있죠.
이삿짐을 싸고 있다. 이사를 갈 것이기 때문이다. 이사할 집은 정해지지 않았다. 하지만 일단 이삿짐을 싸면 세계가 나의 의지에 감응하여 이사를 성사시켜 줄 것이다.
친구들이 블로그를 쓰길래 조금 의욕이 샘솟아서 저도 아무 말이나 써 보기로 했어요. 다시 꾸준히 쓸 거창한 결심 같은 건 없습니다. 그냥 지금 쓰고 싶은 김에 쓰고 깔끔하게 잊어버릴 거예요. 작심삼일이 되지 않는 가장 쉬운 방법은 작심을 하지 않는 거죠.

AT 프로토콜 SDK를 사용할 때는 흔히 계정의 ID로 사용하는 핸들(Handle) 대신 DID(Decentralized Identifier)를 사용해야 할 때가 있습니다. 핸들을 변경하거나 다른 서비스 제공자로 이동하더라도 동일한 사용자를 참조할 방법이 필요하기 때문입니다. 파이썬 AT 프로토콜 SDK를 사용할 때 계정의 DID를 알아내는 스크립트를 간단히 메모해 둡니다. (제가 까먹을 예정이라 참고용으로 쓰는 거예요!)

블루스카이 유저가 급증하면서 성인 포스트 위주의 계정들이 우후죽순 등장하기 시작했습니다. 블루스카이의 기본 모더레이션 시스템도 제법 잘 작동하고 있지만, 미디어만 가려 주기 때문에 성인 포스트의 글은 피드에 그대로 노출되는 문제가 발생하기 시작했습니다.
SNS 사용자가 성인 콘텐츠를 작성해서는 안 된다고 생각하지는 않지만, 예를 들어 공공장소에서 피드를 볼 때는 내용을 가려 놓을 수 있는 쪽이 서로에게 편리하지 않을까요? 그래서 대충 직접 해결해 보기로 했습니다.
typeerror: do not know how to serialize a bigint

Postgres의 BIGSERIAL 타입을 Prisma로 가져오면 BigInt 타입이 됩니다. 이걸 #NestJS 컨트롤러에서 그대로 반환하면 이런 오류를 보게 되죠.
typeerror: do not know how to serialize a bigint
JSON.stringify() 함수에서 왠지 bigint 타입을 지원하지 않기 때문에 발생하는 문제라고 하는데, bigint를 반환하기 전에 string 같은 걸로 바꿔 주면 간단히 해결되겠지만 그렇다고 해서 bigint가 들어가는 모든 모델에 대해 타입 변환 함수 같은 걸 작성해 주기는 귀찮죠.
그런고로 오늘의 #뚝딱뚝딱 은 응답 DTO의 모든 bigint를 알아서 string으로 바꿔 주는 방법입니다. 더 나은 해결책이 있을 것 같기는 한데, 저는 이렇게 해결했어요.
오늘의 #뚝딱뚝딱 은 아주 짧은 이야기입니다. curl https://pyenv.run | bash 로 pyenv를 설치했는데 오류가 출력되더라고요.
WSL에 깔린 우분투에서 npx react-native run-android를 실행하다가 이런 오류를 마주쳤습니다.
-bash: /mnt/c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory
우분투에 bash가 없다니 무슨 상황일까요? 그리고 대체 어쩌다가 npm이 /mnt/c/Program Files/에서 실행되는 걸까요? 이 문제를 해결해 보려고 한참 동안 노력한 끝에(여기서 노력이란 StackOverflow를 뒤지는 것을 말합니다) 문제를 얼렁뚱땅 해결한 과정을 여기에 씁니다.