로그인/권한/어드민은 왜 항상 일정이 늘어나나
소프트웨어 외주 개발에서 로그인, 사용자 권한, 관리자 페이지 기능이 예상보다 일정이 늘어나는 구조적 원인과 이를 관리하는 방법을 설명합니다.
- •로그인·권한 시스템은 "간단해 보이지만" 보안, 예외 처리, 테스트 케이스가 많아 공수가 큽니다.
- •소셜 로그인 1개 추가에 1~2일, 권한 1단계 추가에 전체 테스트 케이스 2배 증가합니다.
- •관리자 페이지는 사용자 화면의 2~3배 화면 수가 필요하므로 초기 기획 시 범위를 명확히 하세요.
로그인이 복잡한 이유
"로그인은 간단하잖아요"라고 생각하기 쉽지만, 실제로 구현해야 할 것은 다음과 같습니다.
기본 로그인 기능만 해도:
회원가입 (이메일 인증, 약관 동의)
로그인 (세션/JWT 토큰 관리)
로그아웃 (토큰 무효화)
비밀번호 재설정 (이메일 인증 링크)
비밀번호 변경
회원 정보 수정
회원 탈퇴
소셜 로그인 추가 시:
카카오 OAuth 연동
구글 OAuth 연동
네이버 OAuth 연동
기존 회원과 소셜 계정 연결/해제
소셜 로그인 시 추가 정보 입력 (전화번호 등)
보안 기능:
비밀번호 암호화 (bcrypt/argon2)
로그인 시도 횟수 제한 (brute force 방지)
세션 만료 처리
동시 로그인 제한 (선택)
2FA 이중 인증 (선택)
"로그인 기능 하나"라고 말하지만, 위 항목을 모두 포함하면 최소 1~2주 의 공수가 필요합니다.
권한 설계가 일정을 늘리는 구조
권한 단계가 늘어나면 일정이 기하급수적으로 증가하는 이유를 구체적으로 설명합니다.
권한 2단계 (관리자/사용자):
메뉴: 관리자 메뉴 노출/비노출
버튼: 수정/삭제 버튼 노출/비노출
데이터: 전체 데이터 접근 가능
권한 4단계 (슈퍼관리자/관리자/매니저/사용자):
메뉴: 역할별 메뉴 구성이 다름
버튼: 역할별 버튼 노출/비노출 + 비활성 처리
데이터: 역할별 데이터 범위 제한 (내 팀만 / 내 지역만)
승인: 결재 워크플로우 (매니저 승인 → 관리자 승인)
위임: 권한 위임/대리 기능
테스트 케이스 폭발:
2단계: 화면 20개 × 2권한 = 40 케이스
4단계: 화면 20개 × 4권한 × 3시나리오 = 240 케이스
이것이 권한이 복잡해질수록 QA 기간이 늘어나는 이유입니다.
관리자 페이지의 숨겨진 공수
관리자 페이지를 "간단하게 넣어주세요"라고 요청하면, 실제로 필요한 기능은 다음과 같습니다.
기본 관리 기능:
| 관리 대상 | 기능 | 화면 수 |
|---|---|---|
| 회원 관리 | 목록/상세/수정/차단 | 3~4개 |
| 콘텐츠 관리 | 등록/목록/수정/삭제 | 4~5개 |
| 주문/예약 관리 | 목록/상세/상태변경 | 3~4개 |
| 통계/대시보드 | 일별/월별/차트 | 2~3개 |
| 설정 | 공지/약관/카테고리/배너 | 3~5개 |
| **합계** | **15~21개** |
사용자 화면이 10개일 때, 관리자 화면은 15~21개입니다. 관리자 페이지의 비용이 전체의 30~40% 를 차지하는 이유입니다.
일정 관리 방법:
1. MVP에서는 관리자를 최소화 (목록+상세만)
2. 엑셀 다운로드/통계는 2차 개발로 분리
3. React Admin 등 어드민 템플릿 활용으로 공수 절감
4. 통계 기능은 Google Analytics로 대체 가능
