
「마계공단: 던전사업부」가 2026년 10월 23일 아침 App Store에 나왔다. 9월 14일에 빈 Unity 프로젝트를 만들었으니 40일째다. 혼자 만드는 1인 개발 게임이라 출시 버튼도 내가 직접 눌렀다(수동 출시로 걸어 뒀다).
이번 편은 출시 앞뒤 닷새, 10월 21일부터 25일까지의 기록이다. 커밋은 50개. 개발일지를 처음 보는 사람도 있을 테니 어떤 게임인지부터 적는다.
어떤 게임인가: 용사 말고 던전 편에 서는 디펜스
무대는 마왕이 이사장인 공기업 '마계공단'이다. 플레이어는 던전사업부에 막 발령받은 신입 던전장이고, 물려받은 건 지하 2층짜리 적자 던전 하나. 본사 분기 평가를 통과하려면 쳐들어오는 모험가 파티를 막고 전리품으로 실적을 내야 한다.
한 판은 이렇게 돌아간다.
- 쳐들어올 파티를 정찰해서 직업과 속성을 본다. 속성은 화염, 물, 자연, 빛, 어둠 다섯 개다.
- 몬스터를 층마다 배치한다. 같은 속성끼리 모이면 공명이 일어나 서로 세지고, 던전에 깔린 속성 기운은 들어온 모험가 능력치까지 바꾼다.
- 전투는 자동이다. 나는 낙석 같은 던전장 권능을 눌러 거든다.
- 이기면 쓰러진 모험가의 장비를 그대로 내 몬스터한테 입힌다. 어제 기사가 쓰던 검을 오늘 고블린이 드는 식이다.
이 게임에서 몬스터는 월급 받는 '직원'이다. 일반부터 전설까지 4등급 185종이 있고, 레벨업과 각성으로 키운다. 영업 모드를 켜 두면 접속하지 않는 동안에도 던전이 손님을 받아 수익을 쌓는다. 그 밖에 10장짜리 스토리, 매주 바뀌는 토벌대, 길드장 결전이 있다. 그림은 전부 도트다.
던전 디펜스 게임이나 몬스터 키우기 게임을 찾고 있었다면 이 정도면 감이 올 것 같다. 기본 다운로드는 무료고, 상점에 인앱 상품이 있다. 더 자세한 소개는 게임 소개 페이지에 있다.
스토어 스크린샷 8장
10월 21일 오후엔 스토어 등록 정보랑 스크린샷을 만들었다. 핵심 단어는 던전, 경영, 몬스터, 디펜스, 방치형 다섯 개로 골랐다. App Store 이름은 '마계공단: 던전사업부 - 던전 경영 디펜스', 부제는 '몬스터 수집·육성 방치형 자동전투 RPG'. 이름, 부제, 키워드 칸에 같은 단어가 두 번 안 들어가게 맞췄다. 애플이 세 칸의 단어를 조합해서 검색에 쓰기 때문이다.
스크린샷은 실제 게임 화면으로 찍었다. 마케팅용으로 따로 그린 그림은 안 썼다. 쇼케이스용 세이브를 따로 만들어서(4장까지 클리어, 던전 Lv.14, 직원 37명) 플레이 모드에서 3배 크기로 캡처하고, 스크립트로 액자와 문구를 입혔다. 구성은 버섯커 키우기, 레전드 오브 슬라임, 세븐나이츠 키우기, 운빨존많겜, 던전메이커의 App Store 스크린샷을 보고 잡았다. 장마다 메시지는 하나만 두고, 굵은 외곽선 문구에서 한 단어만 노란색으로 칠했다. 게임 화면은 액자에 넣고 캐릭터가 액자 밖으로 튀어나오게 놨다. 문구 폰트는 9종을 나란히 놓고 비교한 다음 넥슨 메이플스토리 Bold로 정했다. 넥슨 공식 FAQ에서 상업적 사용이 되는 것도 확인했다.

앱스토어 심사 제출, 그리고 실수 한 번
심사 전에 바꾼 게 두 개 있다. 출시 빌드의 보상형 광고를 테스트 광고에서 실광고로 돌렸고, 게임 안에서 계정을 삭제하는 기능을 켰다. 심사에 올린 빌드가 그대로 출시되니까 이 둘은 미룰 수가 없었다. 앱 개인정보 라벨은 데이터 10종으로 적어서 게시했고(추적은 없음), 연령 등급은 한국 12세가 나왔다.
오후 4시 43분에 사고가 하나 있었다. 초안을 확인하다가 떠 있는 '제출 초안' 버튼을 눌렀는데, 그게 패널의 '심사를 위해 제출'로 이어져서 의도치 않게 제출이 돼 버렸다. 바로 취소했다. 남은 확인을 마치고 4시 58분에 1.0(빌드 6)과 인앱 상품 20종을 정식으로 제출했다. 이것도 처음 알았는데, 첫 소모성 인앱 상품은 앱 버전이랑 같이 제출해야 한다.
그날 밤엔 Android용 1.0(13) 비공개 테스트 빌드도 만들었다.
10월 23일, 출시
심사는 통과했고, 23일 아침 8시 39분에 출시 버튼을 눌렀다. 판매 지역은 대한민국 한 곳이다. 175개 지역 중 1곳만 켜 뒀다. 출시 직후엔 앱 이름으로 검색해도 안 나왔다. 앱 번호로 직접 조회하면 무료 1.0으로 보이는데, 검색 색인은 시간이 좀 걸렸다.
출시 첫날 고친 것: 광고와 1.0.1
출시하고 보니 광고가 하나도 안 나왔다. AdMob 계정이 아직 승인 전이었고, 광고 판매자 인증 파일(app-ads.txt) 확인도 스토어 정보와 "세부정보 불일치"로 실패하고 있었다. 파일 자체는 구글 검사까지 통과했는데 스토어 쪽 반영이 늦는 것 같았다.
이 게임의 광고는 전부 보상형이다. 보고 싶은 사람만 버튼을 눌러서 보고 보상을 받는다. 그 버튼이 계속 "지금은 광고가 없어요"만 띄우고 있었다. 처음엔 Unity Ads를 바로 붙이려고 했는데, 그 SDK는 2026년 1월 31일로 수익화 지원이 끝났다는 공지가 패키지에 있었다. 그래서 오전에 Unity의 광고 중개 서비스 LevelPlay를 두 번째 광고 공급원으로 붙였다. AdMob을 먼저 부르고, 광고가 없거나 오류가 나거나 6초 동안 답이 없으면 LevelPlay로 넘어간다. 11시 21분에 1.0.1(빌드 7)로 심사를 넣었다.
그 사이 버그 두 개를 더 잡았다.
- 대장간이 느렸다. 장비 500개를 가지고 탭을 바꾸면 카드를 전부 새로 만들어서 UI 오브젝트가 1만 개쯤 생겼고, 에디터에서 0.7~1.4초 멈췄다. 폰에서는 검은 화면이 한 번 번쩍했다. 보이는 줄의 카드만 만들어 두고 스크롤할 때 재사용하게 바꿨더니 탭 여는 데 28~67ms, 오브젝트는 430개 정도로 줄었다.
- 영업 실적 보고서를 영영 결재 못 하는 경우가 있었다. 결재를 안 하고 두면 보고서가 계속 합쳐지는데, 장비가 보관함과 우편함을 합친 것(500+100)보다 많아지면 결재 조건을 못 채웠다. 그러면 거기 묶인 골드랑 영혼석도 같이 못 받는다. 이제 재화는 항상 먼저 주고, 장비는 좋은 등급부터 자리 있는 만큼 넣는다. 결재할 때 일정 등급 이하를 자동으로 분해하는 설정도 넣었다.
두 개를 넣은 빌드 8로 심사 중이던 걸 바꿔 끼웠고, 업데이트 소개 문구를 고쳐서 한 번 더 냈다. 보고서 화면을 새로 그렸으니 스토어 스크린샷 7번도 다시 찍었다. 구글 플레이는 바로 바꿔서 검토로 보냈는데, App Store는 1.0.1이 심사 대기 중이라 스크린샷을 못 바꿔서 다음 버전으로 미뤘다. 1.0.1은 24일에 나갔다.

게임 현지화: 문자열 7,060줄을 영어로
23일 밤엔 영어판 설계 문서를 썼다. 세어 보니 화면에 나오는 고유 문자열이 6,100개쯤, 한국어로 23.8만 자였다. 스토리만 15.3만 자다. 문제는 이 글자들이 전부 코드 안에 한국어로 박혀 있다는 거였다.
24일은 하루를 통째로 이 작업에 썼다. 커밋이 20개다. 순서는 이랬다.
- 아침 8시 48분: 번역 기반(L0). 키로 문장을 찾고, 영어가 없으면 한국어로 보여 준다. 이때는 아직 아무 화면도 안 쓴다.
- 8시 58분: 코드에 있는 한국어를 전부 세는 도구(L1). 고유 문자열 6,215개가 나왔다. 그중 18개는 화면에 보이는 게 아니라 동작을 정하는 데 쓰이고 있었다.
- 오전: 데이터, 스토리, 직원 기록을 문자열 표로 옮기고(L2, L3), 단순한 문장 1,415개를 도구로 한 번에 바꿨다(L4).
- 낮: 조건에 따라 갈리는 문장 1,108개, 고정 목록, 튜토리얼 대사, 이어 붙여 만든 문장을 하나씩 정리했다(L5).
- 저녁: 세이브에 저장된 문장을 언어에 맞춰 다시 그리게 했다(L6). 그다음 용어집과 영어 스타일 가이드를 만들고 7,060줄 전부에 영어 초벌을 채웠다(L7).
번역은 AI로 했다. 직원 이름을 먼저 정하고, 그걸 용어집에 넣어서 직원 기록이랑 스토리 번역에 똑같이 쓰게 했다. 밤에는 스토리와 직원 기록 2,940줄을 AI로 한 번 더 검수해서 411줄을 고쳤다. 한국어 원문엔 인물 성별이 안 나와서, 영어에서도 he/she 대신 이름이나 역할, 단수 they를 쓰게 했다. 사람 검수는 아직 남아 있다.
개발자 노트현지화 구조: 키, 짝 조사, 세이브
원칙은 다섯 개로 정했다. 한국어 원문은 한 곳에만 둔다. 코드엔 키만 둔다. 한 문장은 키 하나다(번역된 조각을 이어 붙이지 않는다). 세이브엔 문장 대신 키와 인자를 저장한다. 키는 출시 후 바꾸지 않는다.
문자열 표는 언어별 파일이 아니라 한 줄에 key, ko, en을 같이 둔다. 원문과 번역을 한 줄에서 비교할 수 있고, 원문이 바뀌면 번역할 때 적어 둔 원문 해시가 안 맞아서 "재검수 필요"로 드러난다. 데이터 표의 이름 같은 건 원래 기획용 CSV에 그대로 두고, 가져올 때 문자열 표로 동기화한다.
한국어 조사는 은(는) 같은 짝 표기로 쓰고, 실제 값이 들어갈 때 받침을 보고 고른다. 판정을 못 하면 짝 표기가 그대로 나와서 문장이 깨지지는 않는다. 복수형은 plural 문법으로 영어 쪽에서만 갈린다.
제일 귀찮았던 건 한국어 문장을 비교해서 동작을 정하던 코드 18곳이었다. "골드"가 들어 있으면 이렇게 한다는 식의 비교라서, 영어가 되는 순간 조용히 망가진다. 전부 코드값이나 상태로 바꿨다. 파티 이름처럼 세이브에 한국어로 저장돼 있던 것도 한 번 읽을 때 토큰으로 되돌린다. 테스트 세이브 사본에서 장비 이름 37개가 바꾸기 전과 똑같이 보이는지 확인했다.
영어가 칸에 들어가는지
영어는 한국어보다 길다. 그래서 주요 화면 18개를 한국어와 영어로 각각 그려서, 잘린 글자나 줄 중간에 끊긴 단어, 남은 한국어가 있으면 실패하는 검사를 만들었다. 밤에는 전투, 결과 화면, 팝업 28종까지 넓혀서 100장이 다 통과했다. 38px짜리 권능 버튼에는 Rocks, Fear, Lock처럼 짧은 단어를 넣었다.

설정 맨 위엔 언어 버튼을 넣었다. 처음엔 한국 빌드는 무조건 한국어로 시작하게 막아 뒀는데, 2차 검수와 100장 검사를 마친 뒤 기기 언어가 한국어가 아니면 영어로 시작하게 켰다.
25일엔 남은 걸 정리했다. 오류 메시지 안에 숨어 있던 한국어를 옮겼고, 영어 글꼴을 Galmuri11 Bold로 바꿨다. 일반체의 라틴 글자는 획이 1px이라 어두운 패널에서 흐릿했다. Pixelify Sans, 네오둥근모, DotGothic16도 비교해 봤는데 네오둥근모는 V가 U처럼 보였다. 굵은체로 바꾸니 넘치는 라벨이 네 군데 생겨서 영어 문구를 줄였다.
영어 스토어 이름은 'Dungeon Division: Idle Defense'다. 게임 안 제목은 'Netherworld Inc.: Dungeon Division'인데 스토어 이름은 30자 제한이 있어서 따로 정했다. 영어 스크린샷도 새 글꼴로 다시 찍었다.

그날 밤 영어가 들어간 1.0.2를 심사에 냈다. 빌드 9를 올리고 16분 뒤에 영어 칸 맞춤 수정을 넣은 빌드 10으로 바꿨다. 이 글을 쓰는 10월 26일 기준으로 App Store 업데이트 소식에 "영어를 지원합니다. 설정에서 게임 언어를 바꿀 수 있어요."가 떠 있다. 판매 지역은 아직 대한민국 하나다.
2026.10.21~25 주요 커밋
- 출시 빌드 보상형 광고를 실광고로 전환
- 스토어 등록 정보 초안, 스크린샷 8장
- 게임 안 계정 삭제 켜기, TestFlight 1.0(6)
- App Store 심사 제출 기록
- Android 1.0(13) 비공개 테스트 빌드
- iOS 1.0 출시 기록
- LevelPlay 보상형 광고 대체 공급원
- 대장간 장비 목록 성능
- 영업 보고서 부분 결재, 결재 시 분해
- 1.0.1(8) 빌드
- 스토어 스크린샷 7번 교체
- 현지화 설계 문서
- L0 번역 기반
- L7 영어 초벌 7,060줄
- 현지화 브랜치 병합
- 기기 언어 따라가기, 2차 검수
- 영어 글꼴 Galmuri11 Bold
- 영어 스토어 등록 정보와 스크린샷
- iOS 1.0.2(10) 심사 제출
Android는 아직
구글 플레이는 아직 출시 전이다. 비공개 테스트용 빌드를 1.0(13), 1.0.1(14)까지 만들었고, 스토어 등록 정보도 한국어와 영어로 넣어 뒀다. 공개 날짜는 아직 못 정했다. 나오면 이 페이지의 버튼에 구글 플레이 링크도 붙인다.
출시하고 나서
출시는 끝이라기보다 고칠 게 실제로 보이기 시작하는 날이었다. 광고는 출시하고 나서야 안 나온다는 걸 알았고, 보고서 버그는 장비가 600개 넘게 쌓여야 나오는 거라 테스트에서 못 봤다. 그래도 둘 다 그날 고쳐서 다음 날 내보냈다. 남은 일도 적어 두면 이렇다. AdMob 승인과 스토어 연결, 영어 사람 검수, 실기기 영어 확인, 그리고 Android 출시.
이 게임이 처음 어떤 모습이었는지 궁금하면 1편부터 보면 된다. 메모 몇 줄과 체력 막대로 싸우던 프로토타입이었다. 출시 직전의 테스트 빌드 얘기는 11편에 있다.

NOW AVAILABLE
마계공단: 던전사업부
용사는 침입자, 몬스터는 직원. 폐쇄 위기의 제7던전을 살려 주세요.
스토어로 이동합니다. Android(Google Play) 버전은 준비 중이에요.