대상 코드 영역
auth 서비스
현재 문제점
현재 인증 및 관리자 권한 관리는 Keycloak을 기준으로 동작하고 있습니다.
관리자 여부는 KEYCLOAK_ADMIN_GROUP_PATH에 해당하는 Keycloak 그룹 포함 여부로 판단하며, 로그인 시 해당 값을 기반으로 ACC DB의 isAdmin 값을 동기화합니다.
하지만 기존 Google 인증 기반 BFF 구조에서 사용하던 SUPER_ADMIN_* 환경변수와 초기화 로직이 남아 있습니다. 이 로직은 애플리케이션 기동 시 user_detail, user_auth_detail에 기본 관리자 계정을 직접 생성/보정합니다.
현재 구조에서는 관리자 계정의 source of truth가 Keycloak이어야 하므로, ACC 서버가 별도의 SUPER_ADMIN 계정을 환경변수로 받아 DB에 시딩하는 흐름은 인증 모델과 맞지 않습니다.
또한 SUPER_ADMIN_KEYCLOAK_USER_ID, SUPER_ADMIN_KEYSTONE_USERNAME, SUPER_ADMIN_KEYSTONE_PASSWORD 등 여러 환경변수가 남아 있어 실제 필요한 설정인지 혼동을 만들고, 운영 환경 설정 복잡도를 높이고 있습니다.
리팩토링 제안
SUPER_ADMIN 관련 레거시 초기화 로직을 제거합니다.
작업 범위는 다음과 같습니다.
SUPER_ADMIN_* 환경변수 제거
SuperAdminProperties 제거
SuperAdminInitializer 제거
application.yml의 super-admin 설정 제거
BaseProjectInitializer에서 superAdminProperties.getUserId() 의존 제거 또는 적절한 값으로 대체
- 문서 및 Swagger 예시에서
SUPER_ADMIN_* 참조 제거
- 테스트 코드에서
SUPER_ADMIN 의존이 있다면 제거
기대 효과
- 인증/권한 관리 기준을 Keycloak으로 일원화할 수 있습니다.
- 불필요한
SUPER_ADMIN_* 환경변수를 제거하여 운영 설정 복잡도를 줄일 수 있습니다.
- ACC DB에 관리자 계정을 직접 시딩하는 흐름을 제거하여 인증 모델의 책임 경계를 명확히 할 수 있습니다.
- 신규 개발자가
OPENSTACK_BFF_*, KEYCLOAK_ADMIN_GROUP_PATH, SUPER_ADMIN_*의 역할을 혼동할 가능성을 줄일 수 있습니다.
- 관리자 계정 생성/관리 정책을 Keycloak 기준으로 유지할 수 있어 유지보수성이 개선됩니다.
리팩토링 범위
대상 코드 영역
auth 서비스
현재 문제점
현재 인증 및 관리자 권한 관리는 Keycloak을 기준으로 동작하고 있습니다.
관리자 여부는
KEYCLOAK_ADMIN_GROUP_PATH에 해당하는 Keycloak 그룹 포함 여부로 판단하며, 로그인 시 해당 값을 기반으로 ACC DB의isAdmin값을 동기화합니다.하지만 기존 Google 인증 기반 BFF 구조에서 사용하던
SUPER_ADMIN_*환경변수와 초기화 로직이 남아 있습니다. 이 로직은 애플리케이션 기동 시user_detail,user_auth_detail에 기본 관리자 계정을 직접 생성/보정합니다.현재 구조에서는 관리자 계정의 source of truth가 Keycloak이어야 하므로, ACC 서버가 별도의
SUPER_ADMIN계정을 환경변수로 받아 DB에 시딩하는 흐름은 인증 모델과 맞지 않습니다.또한
SUPER_ADMIN_KEYCLOAK_USER_ID,SUPER_ADMIN_KEYSTONE_USERNAME,SUPER_ADMIN_KEYSTONE_PASSWORD등 여러 환경변수가 남아 있어 실제 필요한 설정인지 혼동을 만들고, 운영 환경 설정 복잡도를 높이고 있습니다.리팩토링 제안
SUPER_ADMIN관련 레거시 초기화 로직을 제거합니다.작업 범위는 다음과 같습니다.
SUPER_ADMIN_*환경변수 제거SuperAdminProperties제거SuperAdminInitializer제거application.yml의super-admin설정 제거BaseProjectInitializer에서superAdminProperties.getUserId()의존 제거 또는 적절한 값으로 대체SUPER_ADMIN_*참조 제거SUPER_ADMIN의존이 있다면 제거기대 효과
SUPER_ADMIN_*환경변수를 제거하여 운영 설정 복잡도를 줄일 수 있습니다.OPENSTACK_BFF_*,KEYCLOAK_ADMIN_GROUP_PATH,SUPER_ADMIN_*의 역할을 혼동할 가능성을 줄일 수 있습니다.리팩토링 범위