회사 웹사이트의 기준 다섯 가지: 무엇으로 만들었는지보다 먼저 볼 것
회사 웹사이트가 있느냐고 물으면 대부분 있다고 답합니다. 그런데 그 주소로 지난달에 문의가 몇 건 들어왔는지 물으면 답이 갈립니다. 한쪽은 숫자를 말하고, 한쪽은 "요즘은 거의 없죠"라고 답합니다.
회사 웹사이트가 있느냐고 물으면 대부분 있다고 답합니다. 그런데 그 주소로 지난달에 문의가 몇 건 들어왔는지 물으면 답이 갈립니다. 한쪽은 숫자를 말하고, 한쪽은 "요즘은 거의 없죠"라고 답합니다.
성경 족보 1.0 을 8월 27일에 냈고, 그날 리젝됐습니다. Guideline 4.3, 스팸입니다. 다른 개발자가 제출한 앱과 바이너리·메타데이터·컨셉이 유사하고 차이가 미미하다는 문면이었습니다.
회선을 두 배로 넓혀도 TTFB 는 거의 그대로입니다. 서버를 한 대 더 붙여도 마찬가지입니다. 그런데 같은 서버를 사용자와 가까운 리전으로 옮기면 절반으로 떨어집니다.
인쇄기 롤러 견적 사이트를 만들면서 화면에 나가는 사진을 전부 WebP로 정했습니다. 제품 사진 네 장으로 재 보고 내린 결론이었습니다. 그 뒤에 설계도 사진 세 장이 들어왔고, 같은 스크립트에 그대로 태웠습니다. 이 글을 쓰려고 다시 재 보니 그중 두 장은 WebP가 JPEG보다 컸습니다.
역방향 SSH 터널로 오리진을 내보내는 구성에서, 터널 너머의 서비스들이 한꺼번에 「응답 없음」이 된 날의 기록입니다. 프로세스도 소켓도 살아 있다고 말하는데 서비스만 죽어 있었고, 원인은 제가 「죽은 연결은 90초 안에 정리된다」고 믿고 있던 설정에 있었습니다.
헬스체크는 200 을 돌려주는데 화면은 500 입니다. 컨테이너는 떠 있고, 워치독은 조용하고, 서버 로그에는 같은 스택 트레이스가 수백 줄 흩어져 있습니다. 어느 배포부터 시작됐는지, 몇 명이 겪었는지, 지금도 나고 있는지는 로그를 아무리 봐도 안 나옵니다.
Vercel 로 옮기고 나서 응답 헤더를 다시 봤더니 보안 헤더가 하나도 없었습니다. 예전에는 오리진 앞의 nginx 가 붙여 주고 있었는데, 그 nginx 가 경로에서 빠지면서 전 경로에서 같이 사라진 것입니다. 앱은 그대로였고 오류도 없었습니다. 헤더는 없어져도 화면이 멀쩡해서, 재보기 전에는 모릅니다.
컨테이너를 실행하는 Docker, 그 컨테이너를 배치하는 Kubernetes, 지표를 모으는 Prometheus, 인프라를 코드로 적는 Terraform, 시크릿을 보관하는 Vault. 클라우드 운영에 쓰는 도구를 늘어놓으면 대부분이 Go로 짜여 있습니다.
회사 소개나 채용 공고에서 이런 네 줄을 자주 봅니다.
주간 회의록에 같은 줄이 3주째 같은 모양으로 남는 프로젝트가 있습니다.