애드소프트 기술블로그

개발·서버 운영 실무 기록

애드소프트 박재호입니다. IIS·ASP.NET 웹 서비스와 메일서버를 직접 운영하고, Unity 게임과 데스크톱 앱을 만들며 겪은 문제와 해결 과정을 기록합니다.

최신 글

폼 전송이 아직 설정되지 않았습니다 — 서버 없는 홈페이지에 폼 붙이기

문의 페이지를 열었더니 폼 자리에 "폼 전송이 아직 설정되지 않았습니다"가 떠 있었다. 방문자가 읽을 문장이 아니었다. 서버 없는 정적 사이트에 폼을 붙이면서 키를 어디에 둘지, 브라우저가 어디로 보내게 둘지, 받는 쪽은 무엇을 막아야 할지를 하나씩 정했다.

영문 홈 주소에 슬래시가 두 개 붙었다 — 서버 없는 회사 홈페이지를 Astro로

회사 홈페이지 상단의 EN 버튼을 눌렀더니 주소 끝에 슬래시가 두 개 붙어 있었다. 경로를 만드는 함수 하나의 실수였는데, 그 함수를 언어 전환·hreflang·canonical 이 모두 쓰고 있었다. 서버 없이 HTML 만 올리는 회사 홈페이지를 Astro 로 만들고 IIS 에 배포하기까지의 이야기.

글 수가 0인 태그 — 빈 태그 정리, 한글 태그 슬러그, 연재 앱 카드

관리자 태그 화면에 글 수가 0인 줄이 하나둘 쌓이고, 한글 태그 주소는 tag-숫자로 남아 있었다. 글이 늘어나며 생긴 정리 거리를 손보다가, 지워도 되는 빈 태그와 지우면 안 되는 빈 태그를 가르고, 한글 음절을 산수로 쪼개 영문 주소를 만들고, 연재 끝에 앱 받기 카드를 붙였다.

승인은 끝이 아니었다 — 애드센스 승인 뒤 광고 자리를 고른 기준

애드센스 사이트 상태가 '준비됨'으로 바뀌었다. 광고를 켜는 일만 남은 줄 알았는데, 막상 남은 건 어디를 끄느냐였다. 위치별 광고 여섯 자리 중 세 곳만 남기고 자동 광고는 한 가지만 남긴 이유, 처음 구성이 너무 많아 다시 줄인 과정와, 애드센스 미리보기가 끝내 뜨지 않은 이유를 정리했다.

알림을 꺼 둔 사람에게 보낸 초대 — 「식단서랍」 알림함과 앱이 받아 주는 것들

달력 공유 초대를 보냈다. 받는 사람이 푸시를 꺼 두었거나 브라우저로 쓰고 있으면 그 초대는 어디에도 남지 않았다. 알림을 푸시가 아니라 기록으로 다시 세우고, 앱이 알림 채널과 공유하기와 큰 화면을 받아 주게 만든 이야기이자 연재의 마지막 편이다.

냉장고를 열고 고르는 추천 — 「식단서랍」 규칙과 언어 모델의 일 나누기

계란, 대파, 두부, 양파. 냉장고에 있는 걸 적으면 만들 수 있는 요리를 골라 주는 칸을 홈에 달았다. 언어 모델에게 레시피 전체를 넘기지 않고, 서버가 먼저 후보를 좁히고 모델은 그 안에서만 고르게 했다. 그러고 나니 원래 있던 규칙 기반 추천도 다시 손봐야 했다.

입이 손보다 빨랐다 — 「오늘 누가 쏘냐?」 초성 퀴즈에 「말하기」 버튼 달기

초성 퀴즈를 하면 다들 정답을 입으로 먼저 외치고 그다음에 자판을 찾는다. 그 외침을 그대로 답으로 받기로 했다. Unity 에서 Android 음성 인식을 플러그인 없이 부르고, 세 갈래로 흩어진 스레드를 정리하고, 다섯 개의 후보 중 하나를 고르기까지.