블로그

엔지니어링

Mythex를 어떻게 만들고 운영하는지, 무엇이 고장 났고 어떻게 고쳤는지까지.

엔지니어링

Mythex를 어떻게 만들고 운영하는지, 무엇이 고장 났고 어떻게 고쳤는지까지.

  • 재배포가 실패해도 작동 중인 백엔드는 삭제되지 않습니다 — 실패한 재배포가 앱의 실제 운영 API를 삭제하거나, 고장 난 새 버전을 그대로 남겨둘 수 있었습니다. Mythex가 잘못된 배포를 되돌리는 방식을 고친 세 가지 수정 사항을 소개합니다.
  • 서버마다 울리지 않고 한 번만 울리는 알림 — 하루에 한 번만 가야 할 알림이 한 오후에 다섯 번 도착했습니다. 서버 두 대와 배포 환경에서 메모리 기반 중복 제거가 왜 깨지는지, 공유 상태로 어떻게 고쳤는지 설명합니다.
  • 아무도 기다리지 않도록 더 큰 워크스페이스로 옮기기 — 2GB로 옮긴 뒤에도 워크스페이스의 4분의 1이 1GB에 머물러 있었습니다. 첫 번째 수정은 한 사용자를 7분 동안 기다리게 했습니다. 무엇을 바꾸었고 다시 바꾸었는지 설명합니다.
  • 실제 사용량에 따라 데이터베이스 요금을 청구합니다 — 예전에는 앱마다 데이터베이스 비용을 추정했는데, 그 추정은 양방향으로 틀렸습니다. 이제 모든 데이터베이스는 측정된 사용량에 따라 한 시간 단위로 청구됩니다.
  • 게시 직후 크래시하는 앱을 잡아내기 — 세 번의 게시가 헬스 체크를 통과했지만, API는 부팅할 때마다 몇 초 만에 크래시했습니다. 원인은 다섯 개 항목으로 제한된 목록에서 크래시를 세고 있었기 때문입니다.
  • 이미지가 많은 에이전트 턴을 메모리 안에 담아 두기 — 카탈로그 스캔을 계속 들여다보던 에이전트 턴이 952MB에서 메모리를 모두 썼습니다. 이미지를 너무 오래 붙들고 있던 세 가지 원인과 그 해결 방법입니다.
  • 긴 에이전트 턴을 컨텍스트 윈도우 안에 담아 두기 — 우리 서브 에이전트는 모델이 요청을 거부할 때까지 커지거나, 공간을 아끼려고 일찍 멈추거나, 러시아어 토큰을 잘못 셌습니다. 긴 AI 작업을 끝까지 가게 한 세 가지 수정입니다.
  • 휴대폰이 잠들어도 채팅이 살아 있도록 하기 — 휴대폰은 잠들고, 탭을 바꾸고, 네트워크가 끊깁니다. 빌드 도중에 채팅이 멈추거나 답변이 절반만 보이던 두 가지 버그를 찾아 고친 과정입니다.
  • 하나의 무거운 채팅이 우리 API를 멈출 수 있었던 이유 — 9월 28일 두 API 서버가 동시에 메모리를 모두 썼습니다. 첫 대응은 메모리 증설이었고, 진짜 해결은 채팅 기록을 개수가 아니라 크기로 불러오는 것이었습니다.
  • Publish를 두 번 눌러도 이제 한 번만 발행됩니다 — 같은 앱에 대한 발행 요청 세 개가 84ms 간격으로 도착해 각각 전체 배포를 실행했습니다. 누가 발행할지 데이터베이스가 결정하고, 나머지에게는 사실을 알리도록 바꿨습니다.
  • 우리 사이트를 고치며 얻은 SEO 교훈 — 중복된 FAQ 마크업, Google에 잘못 표시된 썸네일, 아무도 클릭하지 않은 템플릿 페이지, 그리고 우리 엣지가 거부한 경로까지. mythex.ai에서 발견해 고친 여섯 가지입니다.
  • 정적 사이트, 재게시하는 동안에도 계속 열려 있습니다 — 정적 사이트를 다시 게시할 때 예전에는 새 빌드를 업로드하기 전에 라이브 파일을 모두 비웠습니다. 이제는 새 사이트가 자리를 잡을 때까지 기존 사이트가 계속 제공되고, 변경 사항은 몇 초 안에 반영됩니다.
  • 진행 상태 레이블에 숨어 있던 메모리 부족 충돌 — AI 에이전트가 큰 파일 하나를 쓰는 도중 메모리 부족으로 충돌했습니다. 원인은 모델도, 병렬 서브 에이전트도 아니었습니다. 상태 레이블이 41,000번 다시 전송되고 있었던 것입니다.
  • 서버를 멈추게 한 누락된 스왑 파일 — 프로덕션 서버가 충돌하지 않은 채 응답을 멈췄습니다. 메모리 부족 종료는 없었고, 스왑이 없는 머신에서 페이지 캐시 스래싱만 있었습니다. 무슨 일이 있었고 무엇을 바꿨는지 설명합니다.
  • 죽은 연결 없이 데이터베이스 깨우기 — 절전에서 깨어나는 게시된 앱은 잠든 동안 죽은 데이터베이스 연결을 붙잡고 첫 요청을 10~12초 동안 붙잡고 있었습니다. 이를 2.3초로 줄인 방법을 소개합니다.
  • 우리 자신의 서비스에 속도 제한을 걸고 있었습니다 — API의 IP별 속도 제한은 우리 서비스를 한 명의 바쁜 사용자처럼 취급했고, 프로덕션에서 우리 서비스가 429 응답을 받기 시작했습니다. 원인을 찾아 고친 과정을 설명합니다.
  • Mythex 서버를 ARM으로 옮긴 이유 — 무거운 작업을 프로젝트별 샌드박스로 옮기고 나자, 우리 서버는 메모리의 3분의 1만 사용했습니다. 더 작은 ARM 인스턴스로 월 서버 비용을 약 30% 줄였습니다. 방법을 설명합니다.
  • 배포 시 502 오류를 0개로 줄인 방법 — 배포와 충돌하던 워치독, 그리고 서버가 듣기를 멈춘 뒤에도 로드 밸런서가 너무 늦게 알아챈 문제. 둘을 찾아 고치고 배포당 502를 10개에서 0개로 줄인 과정입니다.

Mythex · 요금제 · FAQ · 가이드 · 블로그 · 활용 사례 · AI로 만들기 · 템플릿 · Mythex 비교 · AI 앱 개발 용어집 · 무료 AI 앱 개발 도구 · 소개

이런 분들을 위한 Mythex

  • 업무용 Mythex
  • 창업자를 위한 Mythex
  • PM을 위한 Mythex
  • 디자이너를 위한 Mythex
  • 마케터를 위한 Mythex
  • 영업을 위한 Mythex
  • 운영을 위한 Mythex
  • 인사팀을 위한 Mythex
  • 웹사이트
  • 프로토타이핑
  • 사내 도구
  • 파트너 프로그램

가이드

  • 만드는 방법
  • 비교
  • 개념 설명
  • 아이디어와 출시
  • 프롬프트와 출시

블로그

  • 엔지니어링
  • 제품
  • 회사
English Português (Brasil) Deutsch Français Español Italiano हिन्दी Bahasa Indonesia ไทย 日本語 العربية 简体中文 繁體中文(台灣) 繁體中文(香港) Русский Türkçe Tiếng Việt Polski Nederlands Українська فارسی اردو Español (España) Français (Canada) Português (Portugal) Shqip Bosanski Български Català Hrvatski Čeština Dansk Eesti Suomi Ελληνικά Magyar Íslenska Latviešu Lietuvių Македонски Norsk bokmål Română Srpski Slovenčina Slovenščina Svenska বাংলা ગુજરાતી ಕನ್ನಡ മലയാളം मराठी ਪੰਜਾਬੀ தமிழ் తెలుగు Bahasa Melayu Tagalog မြန်မာ Қазақ тілі Монгол Հայերեն ქართული አማርኛ Soomaali Kiswahili