ERP 메뉴 스타일 정리: 화면을 찾아가는 여섯 가지 방식과 두 줄 툴바
입사 둘째 날인 영업 담당자가 수주를 넣으려고 ERP를 엽니다. 왼쪽 메뉴에는 영업관리, 구매관리, 재고관리, 생산관리가 있고, 영업관리를 펼치니 수주등록, 수주현황, 수주마감, 수주변경이력이 또 나옵니다. 옆자리 선임은 메뉴를 쓰지 않습니다. 검색창에 「수주」를 치고 엔터를 누릅니다.
입사 둘째 날인 영업 담당자가 수주를 넣으려고 ERP를 엽니다. 왼쪽 메뉴에는 영업관리, 구매관리, 재고관리, 생산관리가 있고, 영업관리를 펼치니 수주등록, 수주현황, 수주마감, 수주변경이력이 또 나옵니다. 옆자리 선임은 메뉴를 쓰지 않습니다. 검색창에 「수주」를 치고 엔터를 누릅니다.
구매품의서 결재 알림이 옵니다. 팀장 승인, 대표 승인, 완료. 그다음 담당자가 승인된 문서를 옆 창에 띄워 두고 품목과 수량, 단가를 엑셀 발주 시트에 한 줄씩 옮겨 적습니다.
123-45-67890 은 검증식을 통과합니다. 그리고 국세청에 등록된 적이 없습니다.
관리자 화면에 들어갈 때마다 오류 카드가 한 번씩 떴습니다. 「문제가 발생했습니다. 잠시 후 다시 시도해 주세요.」 다시 시도를 누르면 그냥 들어가집니다. 그래서 한동안 넘겼습니다.
오후에 사내에서 서비스가 통째로 안 열린다는 이야기를 들었습니다. 한 곳이 아니라 여러 곳이었습니다. 업무 시스템 데모도, 웹 데스크톱도, 파일 전송망도 전부 응답이 없었습니다. 그런데 같은 주소가 바깥에서는 멀쩡히 열렸습니다.
저희 홈페이지를 저희가 만든 브라우저 안 데스크톱(os.duolabs.co.kr)에 창 하나로 띄웠습니다. 데모를 한 번 열어 본 사람이 방문 기록에는 두 번 찍혔습니다. 처음에는 창을 두 개 여니까 그렇겠거니 했는데, 세어 보니 문제는 개수가 아니라 그 숫자가 우리 통계 전부를 통과하고 있다는 쪽이었습니다.
백업 현황 페이지에 칸을 하나 더 그려 올렸는데, 새 탭에서는 새 화면이 뜨고 랜딩 페이지의 데모 모달 안에서는 전날 화면이 떴습니다. 같은 주소, 같은 서버, 같은 파일인데 화면이 둘이었습니다. 원인은 응답 헤더 하나가 처음부터 빠져 있던 데 있었고, 그 헤더를 찾다가 같은 자리에서 빠져 있던 보안 헤더들도 같이 찾았…
매일 밤 서버에서 이런 명령이 돈다고 해 보겠습니다.
Better Stack 첫 화면에는 표가 하나 있습니다. 한 달에 트레이스·로그·지표를 각각 1TB씩 보낼 때 Datadog은 약 $55,574, Better Stack은 $687이라고 적혀 있습니다. 표 아래 각주는 이 숫자가 추정치이며 연 결제, 유럽 데이터 위치, 응답자 1명, Tera 번들, 평균 이벤트 크기 1…
2025년 6월 26일에 네이버 모두(modoo!)가 문을 닫았습니다. 종료 공지는 다섯 달 전에 나왔고, 그동안 원고와 이미지를 백업으로 내려받을 수 있었습니다.
글을 두 편 발행하고 사이트맵을 열어 봤습니다. 둘 다 없었습니다.
AI 기능이 들어갔다는 업무 시스템으로 갈아탔습니다. 반년이 지났는데 현장에서는 여전히 거래처 카톡을 읽어 엑셀에 옮겨 적고 있습니다.
회사 웹사이트가 있느냐고 물으면 대부분 있다고 답합니다. 그런데 그 주소로 지난달에 문의가 몇 건 들어왔는지 물으면 답이 갈립니다. 한쪽은 숫자를 말하고, 한쪽은 "요즘은 거의 없죠"라고 답합니다.
성경 족보 1.0 을 8월 27일에 냈고, 그날 리젝됐습니다. Guideline 4.3, 스팸입니다. 다른 개발자가 제출한 앱과 바이너리·메타데이터·컨셉이 유사하고 차이가 미미하다는 문면이었습니다.
회선을 두 배로 넓혀도 TTFB 는 거의 그대로입니다. 서버를 한 대 더 붙여도 마찬가지입니다. 그런데 같은 서버를 사용자와 가까운 리전으로 옮기면 절반으로 떨어집니다.
인쇄기 롤러 견적 사이트를 만들면서 화면에 나가는 사진을 전부 WebP로 정했습니다. 제품 사진 네 장으로 재 보고 내린 결론이었습니다. 그 뒤에 설계도 사진 세 장이 들어왔고, 같은 스크립트에 그대로 태웠습니다. 이 글을 쓰려고 다시 재 보니 그중 두 장은 WebP가 JPEG보다 컸습니다.
역방향 SSH 터널로 오리진을 내보내는 구성에서, 터널 너머의 서비스들이 한꺼번에 「응답 없음」이 된 날의 기록입니다. 프로세스도 소켓도 살아 있다고 말하는데 서비스만 죽어 있었고, 원인은 제가 「죽은 연결은 90초 안에 정리된다」고 믿고 있던 설정에 있었습니다.
헬스체크는 200 을 돌려주는데 화면은 500 입니다. 컨테이너는 떠 있고, 워치독은 조용하고, 서버 로그에는 같은 스택 트레이스가 수백 줄 흩어져 있습니다. 어느 배포부터 시작됐는지, 몇 명이 겪었는지, 지금도 나고 있는지는 로그를 아무리 봐도 안 나옵니다.
Vercel 로 옮기고 나서 응답 헤더를 다시 봤더니 보안 헤더가 하나도 없었습니다. 예전에는 오리진 앞의 nginx 가 붙여 주고 있었는데, 그 nginx 가 경로에서 빠지면서 전 경로에서 같이 사라진 것입니다. 앱은 그대로였고 오류도 없었습니다. 헤더는 없어져도 화면이 멀쩡해서, 재보기 전에는 모릅니다.
컨테이너를 실행하는 Docker, 그 컨테이너를 배치하는 Kubernetes, 지표를 모으는 Prometheus, 인프라를 코드로 적는 Terraform, 시크릿을 보관하는 Vault. 클라우드 운영에 쓰는 도구를 늘어놓으면 대부분이 Go로 짜여 있습니다.