첫 화면을 바꿨다가 되돌렸다 — 같은 틀로 만든 두 번째 홈페이지, 그리고 홈페이지가 하는 일들
회사 홈페이지의 틀을 그대로 들고 고객사 홈페이지를 하나 더 만들었다. 바꾼 것보다 바꾸지 않은 것이 더 많았고, 한 번은 바꿨다가 되돌렸다. 그 사이 원래 홈페이지는 회사 소개를 넘어 도구를 나눠 주고, 블로그를 잇고, 검색엔진과 광고 크롤러에게 신분을 밝히는 자리가 됐다.
애드소프트 기술블로그
애드소프트 박재호입니다. IIS·ASP.NET 웹 서비스와 메일서버를 직접 운영하고, Unity 게임과 데스크톱 앱을 만들며 겪은 문제와 해결 과정을 기록합니다.
회사 홈페이지의 틀을 그대로 들고 고객사 홈페이지를 하나 더 만들었다. 바꾼 것보다 바꾸지 않은 것이 더 많았고, 한 번은 바꿨다가 되돌렸다. 그 사이 원래 홈페이지는 회사 소개를 넘어 도구를 나눠 주고, 블로그를 잇고, 검색엔진과 광고 크롤러에게 신분을 밝히는 자리가 됐다.
A/S 를 맡긴 고객은 회원이 아니다. 그 사람이 자기 접수 건만 찾게 하려고 처음엔 긴 접수번호와 전화번호 뒷자리를 받았다. 폰 자판으로 스무 자 가까운 번호를 치게 하는 대신 여섯 자리로 줄이자, 이번엔 그 번호를 하나씩 맞혀 보는 쪽을 막아야 했다.
문의 페이지를 열었더니 폼 자리에 "폼 전송이 아직 설정되지 않았습니다"가 떠 있었다. 방문자가 읽을 문장이 아니었다. 서버 없는 정적 사이트에 폼을 붙이면서 키를 어디에 둘지, 브라우저가 어디로 보내게 둘지, 받는 쪽은 무엇을 막아야 할지를 하나씩 정했다.
회사 홈페이지 상단의 EN 버튼을 눌렀더니 주소 끝에 슬래시가 두 개 붙어 있었다. 경로를 만드는 함수 하나의 실수였는데, 그 함수를 언어 전환·hreflang·canonical 이 모두 쓰고 있었다. 서버 없이 HTML 만 올리는 회사 홈페이지를 Astro 로 만들고 IIS 에 배포하기까지의 이야기.
검색창에 '전역'을 쳤는데 Git 커밋 수정 스니펫이 떴다. 화면의 글자와 검색어 사이에, 아직 조합 중인 한 글자가 끼어 있었다. 복사하는 순간 날짜·환경 변수·전역 변수를 알아서 채우는 Cliply 0.3.0 과, 그걸 만들다 드러난 WPF 한글 입력 버그 이야기다.
관리자 태그 화면에 글 수가 0인 줄이 하나둘 쌓이고, 한글 태그 주소는 tag-숫자로 남아 있었다. 글이 늘어나며 생긴 정리 거리를 손보다가, 지워도 되는 빈 태그와 지우면 안 되는 빈 태그를 가르고, 한글 음절을 산수로 쪼개 영문 주소를 만들고, 연재 끝에 앱 받기 카드를 붙였다.
애드센스 사이트 상태가 '준비됨'으로 바뀌었다. 광고를 켜는 일만 남은 줄 알았는데, 막상 남은 건 어디를 끄느냐였다. 위치별 광고 여섯 자리 중 세 곳만 남기고 자동 광고는 한 가지만 남긴 이유, 처음 구성이 너무 많아 다시 줄인 과정와, 애드센스 미리보기가 끝내 뜨지 않은 이유를 정리했다.
달력 공유 초대를 보냈다. 받는 사람이 푸시를 꺼 두었거나 브라우저로 쓰고 있으면 그 초대는 어디에도 남지 않았다. 알림을 푸시가 아니라 기록으로 다시 세우고, 앱이 알림 채널과 공유하기와 큰 화면을 받아 주게 만든 이야기이자 연재의 마지막 편이다.
계란, 대파, 두부, 양파. 냉장고에 있는 걸 적으면 만들 수 있는 요리를 골라 주는 칸을 홈에 달았다. 언어 모델에게 레시피 전체를 넘기지 않고, 서버가 먼저 후보를 좁히고 모델은 그 안에서만 고르게 했다. 그러고 나니 원래 있던 규칙 기반 추천도 다시 손봐야 했다.
AI 식단 버튼이 처음 제대로 돌던 날, 정작 대답하지 못한 질문은 "이 버튼 한 번에 얼마냐"였다. 수익이 없는 서비스에 사용자 수만큼 늘어나는 청구서를 묶고, 공급자를 재시작 없이 갈아 끼우고, 그 과정에서 null 하나로 기능 하나를 통째로 멈춘 이야기.