Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

ki-sd 님의 블로그

[2026-04-29] 시스템 관리자(Admin) 백오피스 구축과 RBAC 권한 제어 시스템 본문

OracleStudy

[2026-04-29] 시스템 관리자(Admin) 백오피스 구축과 RBAC 권한 제어 시스템

ki-sd 2026. 5. 6. 19:34

일반 사용자를 위한 프론트 서비스 구현을 넘어, 서비스 운영의 핵심인 관리자 전용 시스템(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의 구조를 더욱 견고하게 설계하는 데 집중했다.