ki-sd 님의 블로그
[2026-04-29] 시스템 관리자(Admin) 백오피스 구축과 RBAC 권한 제어 시스템 본문
일반 사용자를 위한 프론트 서비스 구현을 넘어, 서비스 운영의 핵심인 관리자 전용 시스템(Back-office)의 기반을 다지는 뜻깊은 시간이었다. 권한에 따라 접근할 수 있는 영역을 통제하고, 데이터베이스의 핵심 데이터를 직접 제어하는 관리자 기능을 구현했다.
1. 관리자 전용 백오피스(Back-office)의 역할과 RBAC 적용
- 쇼핑몰이나 웹 서비스가 정상적으로 운영되려면 상품을 등록하고 회원을 관리하는 이면의 시스템이 필수적이다.
- RBAC(Role-Based Access Control)의 도입: 시스템에 접속한 사용자의 역할(Role)을 식별하여 접근 권한을 제어하는 기법을 UI에 적용했다. 어제 로그인 로직에서 세션처럼 저장해 둔 isAdmin 변수값이 'y'인 경우에만 [관리자 페이지] 버튼과 관리자 전용 패널이 렌더링되도록 if-else 분기 처리를 확립했다. 클라이언트 단에서 1차적으로 비정상적인 접근을 차단하는 보안 아키텍처를 경험했다.
2. 쇼핑몰 카탈로그 관리: 상품 등록(INSERT)과 삭제(DELETE)
- 상품 등록 로직: 관리자가 UI 폼에 상품명, 가격, 카테고리 등을 입력하면 이를 GoodsVO로 패키징하여 DAO로 넘긴다. 내부적으로 INSERT INTO goods VALUES(...) 쿼리가 실행되며 새로운 상품이 카탈로그에 즉시 추가된다.
- 상품 삭제 로직: 판매가 중단된 상품을 데이터베이스에서 지우기 위해 DELETE FROM goods WHERE no=? 쿼리를 실행했다. 이때 자식 테이블(장바구니, 결제 내역 등)에서 해당 상품 번호를 외래키(FK)로 참조하고 있다면 무결성 제약조건 위배 에러가 발생하므로, 삭제 전 연관 데이터를 먼저 정리하거나 상태값(status)만 업데이트하는 논리적 삭제 기법에 대한 실무적 고민을 병행했다.
3. 회원 등급 전환(UPDATE)과 트랜잭션 처리
- 일반 사용자를 관리자로 승격(Upgrade)시키거나, 반대로 강등(Downgrade)시키는 권한 제어 시스템을 구축했다.
- 관리자 페이지의 회원 목록 JTable에서 특정 회원을 선택하고 등급 변경 버튼을 누르면, UPDATE member SET isAdmin='y' WHERE id=? 쿼리가 동적으로 실행된다.
- 이러한 핵심 비즈니스 로직들은 데이터베이스의 상태를 직접적으로 변화시키기 때문에, 에러가 발생할 경우를 대비하여 트랜잭션(Transaction)이 안전하게 처리되도록 JDBC의 구조를 더욱 견고하게 설계하는 데 집중했다.
'OracleStudy' 카테고리의 다른 글
| [2026-04-30] JTable 동적 렌더링과 콤보박스 기반 조건부 검색 연동 (0) | 2026.05.06 |
|---|---|
| [2026-04-28] Java JDBC 실전 2: 회원가입, 로그인 및 동적 권한 제어 시스템 구축 (0) | 2026.04.28 |
| [2026-04-27] 웹 아키텍처 총정리와 데이터베이스 ER 모델링 설계 로직 (0) | 2026.04.27 |
| [2026-04-24] Java JDBC 연동 실전: 음악 목록/검색/상세보기 시스템 구현 (1) | 2026.04.24 |
| [2026-04-23] PL/SQL 심화: 함수, 프로시저, 트리거의 완벽한 분리와 SQL 실전 총정리 (0) | 2026.04.23 |
