전체 글(46)
-
CloudFront -> Cloudflare Worker + R2 마이그레이션 삽질기
CloudFront -> Cloudflare Worker + R2 마이그레이션 삽질기지난 글에서 S3 + CloudFront에서 Cloudflare R2 + Worker로 전환하며 생긴 기술부채에 대해 썼다.그때는 신규 업로드 파일을 R2로 복제하고 DB의 url을 R2 도메인으로 바꾸는 과정에서 생긴 타이밍 문제를 다뤘다.다만 지금은 전략이 조금 바뀌었다. url을 직접 바꾸는 방식으로 가면, 나중에 CloudFront 도메인들을 Cloudflare 쪽으로 전부 바꿔야 한다.문제는 그 URL들이 RDS, Firestore 등 여러 서비스에 파편화되어 있다는 점이었다. 어디에 어떤 도메인이 저장되어 있는지 파악하고 모두 업데이트하는 작업 자체가 꽤 번거로웠다. 그래서 마이그레이션 비용을 감수하더라도 우선..
2026.04.25 -
내가 만든 기술부채 변호하기 — S3에서 R2로 전환하며
내가 만든 기술부채 변호하기 — S3에서 R2로 전환하며TL;DRS3 + CloudFront에서 Cloudflare R2 + Worker로 전환하는 작업을 했다.비용 절감을 위해 신규 업로드 파일만 R2로 복제하고 DB의 url을 R2 도메인으로 바꾸는 방식을 선택했는데, presigned url 발급 후 API 호출이 늦어지면 R2로 바꾼 url이 다시 S3 url로 덮어씌워질 수 있는 문제가 있었다.이걸 10분 뒤에 다시 확인하는 방식으로 처리했는데, 그게 계속 찜찜했다.클로드한테 이야기하다 보니 내가 찜찜했던 이유는 설계가 잘못돼서가 아니라, 내 판단을 설명하는 언어가 정리되지 않아서였다.배경회사에서 S3 + CloudFront 비용을 줄이기 위해 Cloudflare R2 + Worker로 전환하는..
2026.03.15 -
GEO (Generative Engine Optimization) 수치화 연구
보호되어 있는 글입니다.
2025.12.16 -
핀란드에서 오로라 헌팅에 실패하고, 직접 오로라 예보 서비스를 만들었다
오로라 예보 서비스 AuroraGo 개발기TL;DR10월에 핀란드 로바니에미로 오로라 여행을 다녀왔다.구름 때문에 투어가 계속 취소됐고, 셀프 헌팅을 시도했지만 여러 지표를 한눈에 파악하기 어려워 골든타임을 놓쳤다.가이드와 함께 간 날도 보름달이라 겨우 희미하게만 봤다.여러 사이트에 흩어진 정보를 한 화면에서 보여주는 서비스를 직접 만들었다.👉 https://aurorago.app배경올해 10월 핀란드 로바니에미에서 오로라 헌팅을 했다.예약해둔 오로라 투어가 구름 때문에 계속 취소됐다. 이러다 시도도 못해보고 떠날 것 같아 셀프 헌팅을 시도할까 했는데, 막상 준비하려니.Kp 지수가 뭔지는 알겠는데 앱에 있는 오로라 확률 지도는 오로라를 볼 확률이라는건지 (보통 10% ~ 30% / 초록색) 뭔지 모르겠..
2025.12.02 -
Typescript 로 개발하며 만들어본 유용한 유틸리티
TL;DRTypescript 로 개발하며 여러 타입들을 조합하는 상황을 마주해왔다.반복되는 Type Manipulation 상황에서 이를 간단하게할 유틸리티들을 만들었고, 이를 공유하고자 한다.생상한 타입들은 아래와 같다.MakeRequiredMakeOptionalEnumToUnionNonEmptyArrayUnionToIntersectionMakeRequiredByPathshttps://github.com/SecretJuJu/typescript-type-utilsMakeRequired특정 필드만 Required 로 바꾸는 유틸이다.비즈니스로직에선 특정필드는 필수값이어야할때 별도의 손수 만들지 않아도 된다. MakeOptional특정 필드만 Optional 로 바꾸는 유틸이다.데이터모델에서 특정필드를 선..
2024.12.28 -
[트러블슈팅] PostgreSQL alter table 무한로딩
TL;DR개발 서버에서 새로 추가된 테이블의 FK와 인덱스를 제거하려는데 무한로딩이 발생.pg_stat_activity 로 원인을 추적해 `ALTER TABLE` 쿼리를 강제 종료했지만, 재시도에도 문제 지속.FK의 대상 테이블에서 `SHOW TRANSACTION ISOLATION LEVEL` 명령어가 idle in transaction 상태로 남아 있음을 발견하고, 해당 명령어를 실행한 세션을 종료해 문제 해결.문제발생개발서버 데이터베이스에서 새로운 테이블에 변경사항이 발생해 FK 를 Drop 하고있었다.ALTER TABLE 명령어가 완료되지 않고 계속 실행되고있었다.개발서버에서 Lambda Timeout 에러가 발생하고, RDS 세션을 조회했더니 세션하나가 종료되지 않고 있었다.문제원인 탐색 및 해결..
2024.10.26