운영자가 직접 관리하는 첫 관리자 콘솔
앱 운영에 필요한 배너, 이벤트, 미션, 알림을 코드 수정 없이 다루기 위해 관리자 콘솔을 만든 기록입니다.
Code notes
코드에서 확인한 구현 포인트
배포 기준 2026.01.02
관련 파일
apps/web/app/admin/page.tsxapps/web/app/admin/_components/AdminShell.tsxapps/web/app/api/admin/*구현 메모
관리자 화면은 기능별 페이지를 AdminShell 안에 묶어 같은 탐색 구조로 이동하게 만들었다.
각 관리 기능은 목록 조회와 저장 API를 분리해, 화면은 운영 흐름에 집중하고 서버 라우트는 데이터 검증과 저장을 맡는다.
공통으로 활성 상태, 정렬, 이미지 업로드, 링크 같은 운영 필드를 다루도록 맞춰 이후 기능 추가가 쉬운 구조가 됐다.
왜 관리자 콘솔이 먼저 필요했나
초기에는 기능을 하나 추가할 때마다 데이터도 코드나 SQL에 가까운 방식으로 다뤄야 했다. 하지만 앱이 조금씩 커지면서 운영자가 매번 개발 흐름에 끼어들지 않고도 화면에 보이는 콘텐츠를 바꿀 수 있어야 했다.
그래서 관리자 콘솔의 첫 목표는 화려한 대시보드가 아니라 반복 작업을 줄이는 것이었다. 배너를 등록하고, 이벤트를 켜고 끄고, 미션이나 알림을 조정하는 일을 한 화면 흐름 안에서 처리할 수 있게 만드는 데 집중했다.
처음부터 크게 만들지 않은 이유
관리자 도구는 욕심을 내면 금방 거대한 시스템이 된다. 그래서 처음에는 각 기능을 작게 나누고, 목록과 입력 폼, 활성 상태, 정렬값처럼 실제 운영에서 바로 필요한 요소만 먼저 넣었다.
이 방식은 나중에 기능을 붙이기에도 좋았다. 홈 배너, 샵 배너, 스플래시, 이벤트처럼 성격은 다르지만 운영 패턴은 비슷한 기능들을 같은 감각으로 관리할 수 있었다.
남겨둔 판단
관리자 콘솔은 내부 도구이지만, 사용자에게 보이는 앱 경험을 결정하는 출발점이다. 그래서 개발 편의보다 운영자의 실수 가능성을 줄이는 방향이 더 중요했다.
앞으로도 관리자 기능은 ‘많은 설정을 한 번에 보여주는 화면’보다 ‘지금 바꾸려는 항목을 확실하게 이해하고 저장하는 화면’에 가까워야 한다.