애드소프트 기술블로그

개발·서버 운영 실무 기록

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

최신 글

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

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

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

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

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

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

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

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

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

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

폰은 세우고 태블릿은 풀어 줬다 — Play 권장 조치, 큰 화면 회전과 R8

프로덕션에 올릴 AAB 를 다 만들어 놓고 Play Console 출시 전 보고서를 열었더니 권장 조치가 두 개 붙어 있었다. 세로 고정을 풀라는 것과 R8 을 켜라는 것. 둘 다 체크박스 하나면 끝날 것 같았는데, 하나는 게임의 성격과 부딪혔고 다른 하나는 C# 에서 문자열로 부르는 Java 클래스가 걸렸다.

첫 출시를 준비했는데 이미 나가 있었다 — 「오늘 누가 쏘냐?」 비공개 테스트에서 프로덕션으로

프로덕션 첫 출시용 출시 노트와 신청 답변까지 써 두고 콘솔을 열었더니, 프로덕션에는 이미 1.7 이 나가 있었다. 첫 출시가 업데이트로 바뀌면서 출시 노트를 다시 고르고, 버전 코드 12 를 버리고 13 으로 다시 빌드하고, 개인정보 처리방침을 앱보다 먼저 올리는 스크립트를 만들었다.