CS

코드 관리

soohykim 2025. 6. 27. 16:25
728x90
반응형

✅  업무 코드 vs 공통 코드 (NXL 코드)

 

🔹 업무 코드 (Business Code)

  • 특정 업무 도메인 전용 코드 목록
  • 예: “퇴직연금”, “외환거래”, “신용평가” 등 업무 영역에 따라 독립 관리
  • 일반적으로 코드명 + 값 + 설명 등으로 구성
  • 시스템 간 인터페이스 시 업무 문맥 해석 필요

🔹 공통 코드 (Common Code / NXL 코드)

  • 전체 시스템에서 공통으로 사용하는 코드 그룹
  • 예: “국가 코드”, “통화 코드”, “계좌 유형 코드” 등
  • N: Namespace, X: eXtended, L: List – 쉽게 확장 가능하도록 정의된 코드 집합
  • 코드 변경 시 변동이 잦아 코드 테이블 외부화 → 미들웨어적 로딩 구조로 관리됨
  • 시스템 전반에서 동일한 의미를 가지므로 재사용성이 높고 유지보수 용이
업무 코드 특정 비즈니스 처리 맥락에서 사용 결제상태(지급, 보류, 취소), 상품유형 등 업무 로직에 맞춰 시스템 내부적으로 관리
공통 코드 시스템 전반에서 공통으로 사용하는 분류 코드 국가, 언어, 화폐단위, 계좌유형 등 확장성·일관성·재사용성을 고려한 별도 코드 테이블 관리 (NXL 구조)

 


✅ 공통 코드(NXL)

  • 공통 코드(Common Code)는 전체 시스템에서 공유해서 사용하는 코드 집합입니다.
  • NXL은 공통 코드 설계 패턴 중 하나로, 보통 다음 구조로 분류됩니다:
    • N: Namespace (코드 그룹 식별자)
    • X: eXtendable (확장 가능 구조)
    • L: List (코드 목록)
  • 예시:
namespace code name description
CURRENCY USD US Dollar 미국 달러
CURRENCY KRW Won 한국 원화
COUNTRY KR Korea 대한민국
 

 

 

 코드 종류 (Classification)

🔹 공통 코드 (Common / NXL Code)

  • 시스템 전반에서 사용하는 코드 항목
  • 예: COUNTRY, CURRENCY, ACCOUNT_TYPE, LANGUAGE, STATUS

🔹 업무 코드 (Business Code)

  • 각 도메인이나 모듈에 특화된 코드
  • 예: 퇴직연금 INVESTMENT_PLAN, FUND_TYPE; 심사 시스템 LOAN_STATUS, RISK_LEVEL

🔹 에러 코드 (Error Code)

  • 예외 상황을 구분하기 위한 코드
  • 보통 E1001, E2002 같은 규칙적 번호를 사용해 에러 타입 식별

 코드 관리 및 분류 방법

🔹 공통 코드 (NXL) 관리

  • 중앙 코드 테이블 (COMMON_CODE), namespace로 그룹핑
  • 코드 관리 UI 제공 (테이블에 코드 추가/수정)
  • 캐싱 시스템 (배포 시 또는 주기적 로딩)
  • API 제공 (/api/common/codes?namespace=...)해 프론트/백엔드에서 조회 사용
  • 변경 시, 코드 사용 여부 파악 → 테스트 → 공통 코드 배포

🔹 업무 코드 관리

  • 각 모듈 BUSINESS_CODE 테이블에서 관리
  • UI나 API를 통해 모듈 내에서만 사용
  • 공통 코드와 구분되어 별도 관리

🔹 에러 코드 관리

  • 전사규모로 코드를 정의 (ERROR_CODE 테이블)
  • 예외 발생 시, 고유 코드와 메시지를 함께 처리
  • 로깅 시에도 식별 가능하도록 사용

 

공통 코드 시스템 전반 CURRENCY, COUNTRY 중앙 코드 테이블(NXL), 캐싱/API 제공
업무 코드 도메인/모듈 RETIREMENT_PLAN, FUND_TYPE 모듈별 코드 테이블, 모듈 내 UI/API 관리
에러 코드 예외 발생 시 사용 E1234, E2002 전사 에러 코드 테이블, 로깅/디버깅 목적 사용
 
 

“금융 SI에서는 ‘공통 코드(NXL)’를 통해 통화, 국가, 언어, 계좌 유형처럼 시스템 전체에서 일관되게 사용하는 항목을 중앙 코드 테이블로 관리하고, 필요시 캐싱 또는 API를 통해 공유합니다.
반면 ‘업무 코드’는 도메인 별로 특화된 항목(예: 퇴직연금 상품 유형, 대출 상태 코드)을 모듈 내부에서 관리하며, 변경 시 해당 모듈만 조정하면 됩니다.
마지막으로 ‘에러 코드’는 시스템 전반에서 발생하는 예외 상황을 코드화해 디버깅과 로깅 시 유용하게 사용됩니다.
이러한 구조는 유지보수, 확장성, 코드 일관성 측면에서 매우 효율적입니다.”





 역할 vs 권한 

🔹 공통점

  • 둘 다 접근 제어(Authorization) 목적
  • 시스템 자원에 대한 보안·통제 메커니즘
  • 금융 SI에서 보안 감사, 컴플라이언스, 역할 기반 접근 제어(RBAC)의 필수 요소

🔹 차이점

개념 직무・업무 단위로 묶은 권한 그룹 특정 기능 또는 리소스에 대한 개별 접근 권한
설정 단위 “운영자(Admin)”, “고객지원(Agent)” 등 "계좌조회", "출금", "리포트 생성" 등 세부 기능 단위로 제어
할당 수준 사용자에게 역할 할당 역할에 권한 묶어서 관리하거나 경우에 따라 개별 할당 가능
관리 편의성 역할만 바꾸면 권한도 변경됨 → 관리 용이 권한이 개별적이면 관리 복잡, 권한 누락/과다 발생 가능성 있음
 

→ 역할은 권한을 묶어놓은 컨테이너. 권한은 실제 기능 수행에 대한 액세스 단위입니다

 

🔹 역할과 권한 설계 방법

  1. 권한(Permissions)을 가능한 세밀한 단위로 파악
  2. 역할(Roles) 단위로 권한 묶기 — 예: “퇴직연금담당자” 역할에는 “가입조회”, “이체승인” 권한 포함
  3. 역할 계층 구조 정의 — 상위 역할은 하위 역할 권한도 포함
  4. 관리 포털에서 역할별 권한 부여/변경 가능하도록 UI 구성
728x90
반응형