본문 바로가기

upcurve667

결국, 세상은 만드는 사람들의 것 1. 게임의 룰이 달라진다요즘 머릿속에 바이러스처럼 퍼져나가는 두 단어가 있다. 바로 '프로덕트 엔지니어(Product Engineer)'와 'AI-Native' 이다. 이 단어들은 단순히 새로운 기술 트렌드를 넘어, 개발자로서 세상을 바라보는 관점, 일하는 방식, 그리고 추구하는 가치 자체를 뒤흔들고 있다. 불과 몇 년 전까지만 해도 '좋은 개발자'의 기준은 명확해 보였다. 처음에는 TDD, 클린 코드, 객체지향 같은 '장인 정신'이 화두였다. 코드 한 줄의 우아함과 설계의 견고함에 집중했다. 그 후 패러다임은 '규모'로 넘어가는 듯 했다. MSA, 분산 시스템, 그리고 대용량 트래픽을 안정적으로 감당하는 능력이 개발자의 핵심 역량으로 여겨졌다. 언제부턴가 이 견고해 보였던 기준에 미묘한 균열이 느껴지.. 2025. 9. 7.
실시간처럼 보이지만, 사실은 뒤에서 작업했어요: 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.