코인충 블로그

웹 개발(프론트엔드, 백엔드), 경제 등 개인적으로 흥미를 가진 이야기들을 공유합니다.

0083

요샌 폰으로도 멀티 에이전트 코딩함: Orca + remote control

연초에 내가 어떻게 AI를 쓰는지 적었던 글이 있는데, 그때랑도 지금 그새 너무나 많이 시대가 바뀌어 다시 기록을 남겨본다. 지금은 사실상 24시간 집컴을 켜두고 있고, 나랑 티키타카할 agent 세션에선 remote control을 켜두고, 컴퓨터 앞에 앉아있을 수 있는 시간에는 Orca를 애용중이다. 여러개의 레포에서 동시에 claude, codex, agy 등 다양한 에이전트에게 일을 시켜놓고 어떤 레포에서 뭐가 돌고 있

요샌 폰으로도 멀티 에이전트 코딩함: Orca + remote control
00123

Opus 5.5로 야인시대 벨트스크롤 게임 만들어 봄

갑자기 야인시대 벨트스크롤 게임을 만들어보고 싶어서, 어제 퇴근하고 바로 Opus 5.5로 만들어봤음 게임하기 (모바일에선 플레이 불가) 뭔 거창한 프롬프트 그런거 전혀 없고, 그냥 야인시대를 소재로 벨트스크롤을 만들어보고 싶다고 한마디 툭 던져서 brainstorming부터 함께 시작 이런저런 티키타카 하면서 나도 몰랐던 내 의도를 LLM이 길어내는 대로 잘 대답하다가, godot 엔진이랑 OpenGL 호환 렌더링 엔진으로

Opus 5.5로 야인시대 벨트스크롤 게임 만들어 봄
00366

코인충 스트리머 포지션 모니터링 반 자동화 구축완료

사실 이건 22년 말 ChatGPT 3.5가 나와 전세계를 충격에 빠뜨리기 전부터 했던 생각이었고, 이미 어느정도의 구조는 gemini 1.5 flash 시절부터 해두긴 했었음. 이걸 결국 자동화를 못 해낸다면 일일히 방송 보면서 모니터링해야하는데, 도저히 내 인건비 생각하면 단가가 안 맞는 일이라 ㅠ.ㅠ 어쨌든 그때 구현해둔 건 "화면을 캡처해서 올리면 Gemini가 읽어준다"까지였는데, yt dlp + ffmpeg 조합으로

코인충 스트리머 포지션 모니터링 반 자동화 구축완료
00202

--dangerously-skip-permissions 조아

dangerously skip permissions Claude Code의 아주 유명한 플래그이다. 플래그명에서도 알 수 있듯이 '위험'하다. 저 플래그 없이 그냥 클로드 코드를 쓰면, 시도때도 없이 허락을 구한다. Delete old pm2 processes and rename server folder This command requires approval Do you want to proceed? ❯ 1. Yes 2. Ye

00485

Claude Code와 MCP로 바뀐 나의 개발 워크플로우

최근에 다시 일을 하고 있는데, 다행히도 AI를 상당히 잘 쓰면서 일을 하는 환경에 들어오게 된 것 같아 최근의 워크플로우를 정리해봤다. 몇 년 후에 보면 또 이게 구식으로 느껴질 수도 있겠지만, 집에서 GUI 위주로만 AI를 써오다가(e.g. Antigravity, Codex 등) 거의 모든 걸 Claude Code로 터미널에서 작업하다보니 이게 더 낫다는 느낌을 받고 있다. 워크플로우 일단 어떤 레포에서든 무조건 claud

00322

[코인충 마이그레이션] with Fable 5 + superpowers

코인충은 2021년도에 만든 워낙 오래된 프로젝트이다. 스택도 그 당시로서는 최선이었으나 지금보면 완전한 레거시. 특히 SSR을 직접 구현했던게 내 개인적으로 공부는 됐지만 지금은 손도 대기 끔찍한 레거시여서 마이그레이션을 해야지 해야지 생각만 하고 있다가, Fable 5가 풀린 상황에서 superpowers를 통해 계획을 세우고 Sonnet 5를 subagent로 쓰면서 dangerously skip permissions 하

00266

Grafana 웹페이지가 너무 느려서 메모리를 키웠다

모니터링 툴로 Prometheus + PLG 스택을 사용 중이다. Prometheus는 Go API에 Prometheus용 미들웨어를 넣어 메트릭 엔드포인트를 열어두고, 띄워둔 Prometheus 서버가 그걸 주기적으로 퍼가는 방식이다. Loki는 지정해둔 서버 로그 위치를 Promtail에 알려주고, Promtail이 Loki로 로그를 주기적으로 푸시해주는 방식이다. Grafana는 이런 로깅 툴들이 제공하는 데이터를 소스로

Grafana 웹페이지가 너무 느려서 메모리를 키웠다
00371

Lightsail은 아주 좋은 결정이었다.

이 글에서 기존 EC2에 몰려있던 여러 서비스들 중, Data Transfer Out 트래픽을 많이 발생시키는 업비트 웹소켓 프록시 서버만 $12짜리 Lightsail 인스턴스로 옮겼다는 이야기를 했다. 그건 아주 좋은 결정이었다. 며칠 경과를 지켜봤는데, 일일 6 7GB의 트래픽이 Lightsail로 이동한 것을 확인할 수 있었다. 이 추세라면 월간 200GB 이상의 트래픽이고, 웹소켓 트래픽이 커질 경우 수 TB 까지도 육

Lightsail은 아주 좋은 결정이었다.
00451

업비트 웹소켓 프록시 비용 폭등 문제 해결하기: 웹소켓 프록시를 Data Transfer Out이 싼 인스턴스로 이전 (Lightsail)

이 글을 쓸 때만 해도 웹소켓 Proxy서버를 만들어서 throttling을 적당히 걸어주면 우아하게 비용 문제를 해결할 수 있을 줄 알았다. 그러나 이런저런 삽질을 해본 결과, 무슨 최적화나 꼼수를 써도 결국 EC2 = 외부로 나가는 트래픽은 전부 Data Transfer Out을 늘리게 되며, EC2는 기본적으로 이 비용이 매우 비싸기 때문에 비용을 크게 절감할 수 없음을 깨닫게 됐다. 따라서, 최종적으로 선택한 방법은 D

업비트 웹소켓 프록시 비용 폭등 문제 해결하기: 웹소켓 프록시를 Data Transfer Out이 싼 인스턴스로 이전 (Lightsail)
00651

업비트 웹소켓 요청제한 우아하게 해결하기 - Go 프록시 서버

벌써 쓴지 1년이 넘은 (시간 진짜 빠르네...) 업비트 웹소켓 요청제한 우회하기 글의 후속작업을 오늘 다시 진행했다. Cloudflare 터널로 돌려보기도 했지만 어차피 AWS Data Transfer는 Cloudflare로의 Outbound 트래픽으로 간주되어 과금은 줄어들지 않았었다. 결국 내린 결론은, 어쨌든 사용자들이 본인 기기에서 내 사이트를 통해 직접 업비트 웹소켓에 붙으면 나에게 있어 비용적으론 제일 좋지만 코인

업비트 웹소켓 요청제한 우아하게 해결하기 - Go 프록시 서버
40796

내가 요새 AI를 쓰는 방법들

2026년 1월 현재, 나는 AI를 어떻게 쓰고 있는지 정리해봤다. 정말 AI enthusiasts분들처럼 딥하게 쓰는 건 아닌데, 그럼에도 불구하고 AI 이전으로는 못 돌아갈 것 같은 상황까지는 온 느낌이다. 1. 영어회화 를 위해서는 ChatGPT를 쓴다. 그냥 무료 plan이고, 자기 전에 잠깐이나 심심할 때, 또는 운전 중에 음성모드로 해두고 영어로 대화한다. 영어 native 친구가 많지 않다면 좋은 대체재이고, 상대

내가 요새 AI를 쓰는 방법들
20511

리액트보다 다른 게 더 좋다 🫠

얼마 전, 이제는 리액트를 놓아주고 시그널 기반의 최신 프레임워크(ex: Vue, Svelte...)들을 쓰자는 취지의 위시켓 글을 보고 굉장한 공감을 했다. 이전에 글로 쓰기도 했지만, 나 역시 리액트를 안 좋아한다. 2025년 지금까지도 리액트를 쓰는 건 과장 좀 보태서 마치 고수준 언어들을 써도 되는 상황에서 어셈블리를 쓰는 느낌이다. 리액트 컴파일러가 나왔다곤 하지만 여전히 개발자들은 useCallback useMemo

10453

Vue 프로젝트는 그냥 Nuxt를 쓰세요

최근에 Nuxt를 쓸 일이 있어 Nuxt 4 기반 프로젝트를 새로 만들어보았다. npm create nuxt@latest 원래도 DX가 뛰어난 Vue를 오랜기간 써 왔기 때문에 학습곡선은 거의 0에 가까웠고, Remix 경험이 있어서 디렉토리 기반 라우팅에도 바로 적응했다. 레일즈마냥 워낙 많은 마법이 존재해서 "이게 왜 되지?" 싶은 것들이 좀 있는데, 몇 가지는 다음과 같다. /app/components 폴더에 파일을 생성

704190

토스페이먼츠 프론트엔드 직군 직무면접 후기

원티드로 딸깍 지원하고 별 생각을 안 하고 있었는데 서류 합격이 되어서 과제 전형을 수행하라는 메일을 받았다. NDS 서약 때문에 자세히는 얘기할 수 없지만, 일정 시간을 주고 실제 입사한다면 구현해볼 법한 기능을 구현하는 과제였다. 개인적으론 구현해야 할 양이 좀 많다고 생각했으며, 꽤나 체력적으로 부쳤지만( 늙은듯 ) 어떻게 꾸역꾸역 해서 제출했다. 아마 다 하지 못하는 지원자도 상당히 많겠다는 생각이 들었다. 기능은 완벽

201190

업비트 웹소켓 프록시 비용 폭등 문제 해결하기: Cloudflare 터널 활용기

바로 직전 글이 업비트 웹소켓 API의 Origin별 Rate Limit 우회하기였다. 결론적으로 거기까진 성공적이었으나, 모든 트래픽이 죄다 내 ec2 인스턴스로 들어오는 터에 비용이 갑자기 엄청나게 증가했다. 돈도 안 되는 서비스를 운영하면서 저런 비용을 쓰기는 싫기 때문에 방법이 없을까 ChatGPT에 물어보았더니(대화), 결론적으로 Cloudflare를 쓰라는 권유를 받아서 [cloudflare](https

업비트 웹소켓 프록시 비용 폭등 문제 해결하기: Cloudflare 터널 활용기
307293

업비트 웹소켓 요청제한(초당 5회) 우회하기 (nginx 프록시)

필자가 운영중인 암호화폐 시세 정보 제공 사이트 코인충에서는 업비트 웹소켓 API에 자주 붙는다. 일례로 메인 화면에는 아래와 같은 영역이 있고, 김프가와 비슷하게 아래와 같은 페이지도 존재한다. (링크) 근데 어느 순간부터 업비트와의 웹소켓 연결이 잘 안 되기에 문의를 했더니, 2024 07 17부터 웹소켓 요청 헤더에 Origin이 있을 시 rate lim

업비트 웹소켓 요청제한(초당 5회) 우회하기 (nginx 프록시)
10834

Vue 컴포넌트는 어떻게 작성하는게 현시점 de facto일까?

Options API Vue 2 에서는 아래와 같이 작성하는 Options API가 주류였다. javascript export default { props: { // 부모로부터 넘겨받는 값들 }, methods: { // 메소드들 }, computed: { // 계산된 값들 }, data: () = { // 데이터 }, mounted() { }, } 여기에는 다음과 같은 단점들이 있었다. 컴포넌트 내에 특정 비즈니스 로직을 구

Vue 컴포넌트는 어떻게 작성하는게 현시점 de facto일까?
303289

내가 golang을 사랑하는 이유

커리어 초창기에 일했던 회사에서 나는 golang으로 백엔드에 입문했다. 물론 그 이전에도 PHP + Codeigniter 조합으로 틀 SSR을 했던 경험이 있긴 한데, 본격적으로 백엔드 + 프론트엔드가 분리된 웹앱을 만들어본 경험에서 첫 도구는 golang이었다. 그리고 이 때 받았던 인상은 너무나 긍정적이었어서, 지금도 최애인 nodejs와 병용하고 있다. 마스코트 누가 쓰나? 이렇게 이름만 대도 알 만한 굴지의 기업들 이

내가 golang을 사랑하는 이유
311107

KISS OF LIFE - Sticky (2024) 리뷰

간만에 무한반복 중인 곡이 생겼다. 일단 곡이 정말 잘 뽑혔고 뮤비나 음악의 전반적인 디렉팅의 디테일 하나하나도 너무나 좋다. 뮤직비디오 리뷰 우아하게 걸어나오는 벨. 하늘색과 핑크색이 굉장히 잘 조화된다. ![](https://d1085v6s0hknp1.cloudfront.net/boards/coinsect blog/f8f763a6 a875 4354 9336 45c5de1e519c image.pn

KISS OF LIFE - Sticky (2024) 리뷰
601744

구글 Gemini 1.5 flash를 이용해 스트리머 선물 포지션 입력 자동화하기

운영중인 사이트 코인충에는 박호두, 사또, 짭구 등 유명 스트리머들의 포지션을 거의 실시간에 가깝게 계속 추적해서 보여주는 기능이 있다. 코인충 관리자 페이지의 '실시간 포지션' 메뉴 모니터링은 재래식으로 이루어진다 영양가도 없는 이들의 포지션을 입력하려면 일일히 그들의 방송을 보면서 직접 입력하는 수 밖에 없는데, 내 사이트를 찾는 사람들이 피크 시간대(밤 10:00 )에는 무려 4 5

구글 Gemini 1.5 flash를 이용해 스트리머 선물 포지션 입력 자동화하기