upcurve666 실시간처럼 보이지만, 사실은 뒤에서 작업했어요: Pending URL을 활용한 이미지 업로드 UX 개선기 0. 이 글의 배경파일 업로드는 겉보기엔 단순한 기능입니다. 하지만 이 '간단함'이라는 덫이, 전체 마이크로서비스를 마비시킬 수 있는 시한폭탄이 될 수도 있을까요? 이 글은 초기 MVP의 동기식 파일 업로드 방식에 숨어있던 위험을 발견하고, 서비스가 멈추기 전에 선제적으로 비동기 아키텍처로 전환한 과정을 담은 기록이에요. 사용자 경험과 시스템 안정성, 두 마리 토끼를 모두 잡은 'Upload ID' 패턴의 모든 것을 공유해요. 1. 파일 업로드, 이대로 괜찮을까?: 비동기 전환의 서막 모든 사이드 프로젝트는 "일단 돌아가게 만들자"는 순수한 열정에서 시작되죠. AsyncSite의 프로필 이미지 업로드 기능도 그랬어요. 가장 직관적이고 간단한 방법, 즉 동기식(Synchronous)으로 구현했어요. 먼저.. 2025. 8. 30. 훔칠 비밀번호가 없습니다: 평문 없는 서버를 위한 Passkey 구현기 0. 이 글의 배경백엔드 개발자로서 오랫동안 당연하게 여겨온 관행이 있었습니다. 사용자의 평문 비밀번호를 받아, BCrypt로 해싱하고 데이터베이스에 저장하는 방식입니다. 저 역시 이전 회사에서 그렇게 인증 시스템을 구현했습니다. 하지만 제 마음 한구석에는 늘 가시처럼 박힌 질문이 하나 있었습니다. "해싱되기 직전, 그 찰나의 순간에 존재하는 평문은 과연 안전한가?" 이 글은 AsyncSite라는 스터디 플랫폼 사이드 프로젝트에서, 바로 그 의문을 해결하기 위해 Passkey를 도입한 과정을 담은 기록입니다. 우리가 당연하게 여겼던 보안의 관행에 근본적인 질문을 던지고, '훔칠 비밀번호가 없는 시스템'이라는 목표를 향해 나아갔던 여정을 공유하고자 합니다.1. 해시(Hash) 뒤에 숨겨진, 우리 모두가 외.. 2025. 8. 23. 멀티 인스턴스 환경에서 살아남기 Ep. 1: Canary 배포와 데이터 정합성 0. 이 글의 배경새로운 기능을 사용자에게 안전하게 선보이는 것은 모든 개발팀의 숙제입니다. 제가 현재 근무하고 있는 팀 역시 리스크를 최소화하기 위해 점진적으로 트래픽을 열어주는 '카나리 배포'를 적극적으로 활용하고 있습니다. 여기에 더해, 배포 과정 중 QA를 함께 진행하여 안정성을 이중으로 확인하는 견고한 프로세스도 갖추고 있어요. 이 글은 바로 그 "안전장치(카나리 배포 + QA)" 덕분에 발견할 수 있었던 데이터 정합성 이슈에 대한 경험담입니다. 엄밀한 의미에서 버그나 문제 해결 이야기는 아니에요. 오히려 우리의 안전장치가 성공적으로 작동해, 더 큰 장애를 막고 귀중한 교훈을 얻게 된 과정을 공유하고자 합니다. 겉보기엔 완벽해 보였던 우리의 배포 플랜에 어떤 숨은 함정이 있었는지, 그리고 이 경.. 2025. 8. 16. 설정 파일 한 줄이 1TB 디스크를 마비시킨 사건: 미니PC로 운영하는 12개 마이크로 서비스 장애 회고 0. 이 글의 배경사이드 프로젝트에서 마이크로서비스 아키텍처(MSA)를 운영한다는 건 어떤 의미일까요? 이 글은 asyncsite라는 스터디 플랫폼 사이드 프로젝트에서 발생한 장애를 분석하고 해결한 과정을 담은 기록입니다. 초창기의 비용 리스크를 제외하고자 클라우드 서비스 대신 고성능 미니 PC 한 대에 개발 환경을 구축했습니다. 이 서버에는 API 게이트웨이를 포함한 약 12개의 서비스가 도커 컨테이너 형태로 실행되고 있었습니다. 중앙 로그 수집을 위해 도입한 ELK(Elasticsearch, Logstash, Kibana) 스택도 그중 하나였습니다. 이 포스트에서는 로그 수집 시스템의 설정 오류 하나가 어떻게 전체 시스템을 마비시켰는지, 그리고 그 문제를 어떤 과정으로 진단하고 해결했는지 공유하고자 .. 2025. 8. 16. 제가 만든 AI가 처참히 패배했습니다 (그리고 그보다 짜릿한 순간은 없었습니다) 백엔드 개발자로서 제 세계는 주로 잘 설계된 API, 데이터 처리 프로세스, 그리고 서버의 로그를 중심으로 돌아갑니다. 하지만 최근 친구들과 떠난 1박 2일 여행에서, 이 세계를 완전히 뒤흔드는 경험을 했습니다. 딱 3시간만 투자해 열었던 작은 코드 배틀이 제게 던진 커다란 질문들에 대한 이야기입니다. 이번 해커톤의 기획자로서, 참가자들이 상대할 ‘고급’ 난이도의 내장 AI를 직접 만들었습니다. 솔직히, 이 AI가 너무 어려워서 참가자들이 모두 패배하면 어쩌나 하는 기우도 있었습니다. 모두가 제 '정답' 앞에서 좌절하는 그림을 내심 바랐던 걸지도 모릅니다. 하지만 역설적이게도 가장 짜릿했던 순간은, 바로 그 우려가 깨지는 순간이었습니다. 참가자들이 저마다의 기발한 전략으로 제가 만든 알고리즘의 허점을 파.. 2025. 8. 1. 이전 1 2 3 4 ··· 134 다음