전자금융감독규정, 개발자가 읽어야 할 조항은 따로 있어요
핵심 요약: 전자금융감독규정 전체를 읽을 필요 없어요. 개발/인프라 담당자가 직접 구현해야 하는 조항은 프로그램 통제(제29조), 보안성심의(제36조), 테스트 시스템 구축, 운영시스템 적용 승인 절차로 압축돼요. 이 글에서는 각 조항이 요구하는 기술적 구현 사항을 실무 관점에서 정리해요.
금융 SI 프로젝트에 투입되면 가장 먼저 받는 문서가 전자금융감독규정이에요. 문제는 분량이 방대해서 어디부터 봐야 할지 모른다는 거예요.
프로그램 통제는 공장의 품질관리(QC) 라인과 비슷해요. 코드가 운영 환경에 도달하기 전에 반드시 거쳐야 하는 검수 게이트가 있는 거예요. 개발자가 자유롭게 코드를 작성하되, 운영 환경에 배포되기까지는 정해진 절차를 통과해야 한다는 뜻이에요.
2025년 2월 전자금융감독규정 개정으로 행위규칙이 293개에서 166개로 줄었지만, 프로그램 통제와 보안성심의 관련 조항은 여전히 핵심으로 남아 있어요. 오히려 "원칙 중심"으로 바뀌면서 금융회사가 스스로 보안 수준을 판단하고 증명해야 하는 부담이 커졌어요.
이 글에서는 전자금융감독규정 중 개발/인프라 담당자가 직접 구현해야 하는 조항만 추려서, 실무에서 어떻게 대응해야 하는지 정리할게요.
전자금융감독규정에서 개발팀이 직접 구현해야 하는 조항은 무엇인가요
개발팀이 직접 구현해야 하는 조항은 크게 4가지 영역으로 나뉘어요.
전자금융감독규정은 총 7장 80여 개 조문으로 구성돼 있지만, 개발/인프라 담당자가 실제로 시스템에 반영해야 하는 조항은 한정돼 있어요. 나머지는 경영진, 법무팀, 보안팀의 영역이에요.
| 조항 | 영역 | 개발팀 구현 사항 | 검사 시 증적 |
|---|---|---|---|
| 제29조 (프로그램 통제) | 개발 프로세스 | 개발→테스트→배포 절차 내규화, CI/CD 파이프라인 통제 | 변경 이력, 승인 로그, 테스트 결과서 |
| 제36조 (보안성심의) | 보안 검증 | 신규 서비스 출시 전 자체 보안성심의 수행 | 심의 결과보고서, 취약점 조치 내역 |
| 제29조 6호 (운영시스템 적용) | 배포 관리 | 운영 환경 배포 승인 절차 설계 | 승인자 지정 내역, 배포 승인 로그 |
| 제14조 (가용성 확보) | 인프라 | 동시 최대 사용량 반영 테스트 환경 구축 | 부하 테스트 결과, 용량 산정 근거 |
운영하면서 계속 느낀 건, 이 4가지 영역이 서로 연결돼 있다는 거예요. 프로그램 통제 절차 없이는 보안성심의를 통과할 수 없고, 테스트 환경 없이는 운영시스템 적용 승인을 받을 수 없어요. 하나를 빠뜨리면 전체 프로세스가 막히는 구조예요.
프로그램 통제 가이드라인이 요구하는 개발 프로세스
프로그램 통제의 핵심은 "모든 프로그램의 등록·변경·폐기 절차를 내규에 반영하고, 그 절차를 준수했는지 분기 1회 이상 점검하는 것"이에요.
전자금융감독규정 제29조는 프로그램 통제의 큰 원칙을 정하고, 금융투자협회의 "프로그램 통제 가이드라인"이 구체적인 구현 방법을 제시해요. 이 가이드라인은 전자금융감독규정 제29조의 적용을 받는 모든 프로그램을 대상으로 해요.
내규에 반영해야 하는 절차
가이드라인이 요구하는 내규 항목을 정리하면 이래요.
| 절차 | 내규 포함 사항 | 실무 구현 |
|---|---|---|
| 프로그램 등록 | 신규 프로그램 등록 기준, 승인 절차 | Git 저장소 생성 정책, 코드 리뷰 필수화 |
| 프로그램 변경 | 변경 요청→승인→개발→테스트→배포 전 과정 | Jira 워크플로우 + PR 승인 정책 |
| 프로그램 폐기 | 폐기 기준, 데이터 보존 기간, 승인 절차 | 서비스 디커미셔닝 체크리스트 |
| 긴급 변경 | 긴급 상황 정의, 사후 승인 절차, 보고 체계 | 핫픽스 브랜치 정책, 사후 리뷰 의무화 |
여기서 주의할 점은 "긴급 변경 절차"예요. 실무에서는 장애 대응 시 긴급 배포가 불가피한데, 이때도 사후에 반드시 정상 절차를 밟아야 해요. 긴급 배포 후 사후 승인 없이 넘어가면 감사 시 지적 사항이 돼요.
분기별 점검 의무
가이드라인 제7조에 따르면, 금융회사는 분기 1회 이상 다음 사항을 IT감사자 또는 내부 감사자를 통해 점검해야 해요.
- 프로그램 등록·변경·폐기 절차 준수 여부
- 프로그램 등록·변경·폐기 내용의 정당성 검증 여부
- 프로그램 테스트 수행 절차 준수 여부
- 운영시스템 적용·배포 절차 준수 여부
실무에서는 이 점검을 자동화하는 게 핵심이에요. CI/CD 파이프라인에 게이트를 설정해서, 승인 없이는 배포가 물리적으로 불가능하게 만들면 "절차 미준수" 자체가 발생할 수 없어요. 처음에는 이렇게 생각했어요. "절차만 문서화하면 되겠지." 하지만 실제로 감사를 받아보니, 문서화보다 "절차가 시스템적으로 강제되는 구조"를 더 높이 평가하더라고요.
교육 의무
가이드라인 제8조는 프로그램 통제 절차를 연 1회 이상 교육하도록 요구해요. 대상은 프로그램 통제 절차 미준수자와 신입 직원이에요. 교육 이력도 증적으로 남겨야 해요.
테스트 시스템은 어떤 수준으로 구축해야 하나요
운영체제, 네트워크, 데이터베이스, 라이브러리를 포함하여 실제 운영시스템 환경과 유사한 환경의 테스트 시스템을 구축해야 해요.
프로그램 통제 가이드라인 제4조는 테스트 시스템 구축 요건을 명확하게 정하고 있어요. "유사한 환경"이라는 표현이 모호하게 느껴질 수 있는데, 실무에서는 다음 수준을 충족해야 감사를 통과할 수 있어요.
| 구성 요소 | 운영 환경 | 테스트 환경 요건 | 실무 구현 |
|---|---|---|---|
| OS/런타임 | Amazon Linux 2023 + JDK 17 | 동일 OS + 동일 JDK 버전 | Docker 이미지 공유 또는 동일 AMI |
| 네트워크 | VPC + 서브넷 + 보안그룹 | 동일 토폴로지 (IP 대역만 다름) | Terraform 모듈 재사용 |
| 데이터베이스 | RDS MySQL 8.0 | 동일 엔진 + 동일 버전 | 운영 DB 스냅샷 기반 복원 (마스킹 필수) |
| 외부 연동 | PG사 API, 은행 API | Mock 서버 또는 테스트 환경 API | WireMock + 계약 테스트 |
| 데이터 규모 | 수천만 건 | 동시 최대 사용량 반영 | 부하 테스트 시 운영 수준 데이터 투입 |
여기서 "동시 최대 사용량 반영"이 핵심이에요. 전자금융감독규정 제14조는 가용성 확보를 위해 동시 최대 사용량을 반영한 테스트를 요구해요. 단순히 기능 테스트만으로는 부족하고, 피크 트래픽 상황에서도 시스템이 정상 동작하는지 검증해야 해요.
테스트 자동화 솔루션 도입 의무
가이드라인 제5조 제2항은 "충분한 테스트 수행을 위하여 테스트 자동화 솔루션을 도입하여야 한다"고 명시하고 있어요. 이건 권고가 아니라 의무예요.
실무에서 자동화 솔루션의 범위는 이래요.
- 단위 테스트 자동화 (JUnit, pytest 등)
- 통합 테스트 자동화 (API 테스트, E2E 테스트)
- 회귀 테스트 자동 실행 (CI 파이프라인 연동)
- 부하 테스트 도구 (k6, JMeter, nGrinder 등)
실수하기 쉬운 부분이 있어요. "테스트 자동화 솔루션 도입"이 곧 "모든 테스트를 자동화해야 한다"는 뜻은 아니에요. 핵심은 반복적인 회귀 테스트를 사람이 수동으로 하지 않도록 도구를 갖추라는 거예요. 인수 테스트(UAT)는 여전히 현업 담당자가 직접 수행해야 해요.
테스트 시나리오 관리
가이드라인 제5조 제5항은 테스트 시나리오 및 결과서 작성을 의무화하고, "해당 프로그램의 개발자에 의해 테스트 시나리오가 임의로 변경·축소되지 않도록 조치"하라고 요구해요.
이건 개발자와 테스트 담당자의 역할 분리를 의미해요. 개발자가 자기 코드의 테스트 시나리오를 마음대로 줄이면 안 된다는 거예요. 실무에서는 QA 조직이 테스트 시나리오를 관리하거나, 최소한 테스트 시나리오 변경 시 별도 승인을 받는 절차를 두는 방식으로 대응해요.
보안성심의는 어떤 시점에 수행해야 하나요
신규 전자금융업무를 출시하기 전에 자체 보안성심의를 수행하고, 그 결과를 금융감독원에 제출해야 해요.
전자금융감독규정 제36조는 자체 보안성심의 대상을 "신규 전자금융업무"로 규정하고 있어요. 과거에는 금융감독원이 직접 보안성심의를 수행했지만, 현재는 금융회사가 자체적으로 수행하고 결과를 보고하는 체계로 바뀌었어요.
보안성심의 대상 판단
"신규"의 기준이 실무에서 가장 혼란스러운 부분이에요. 금융당국의 해석을 정리하면 이래요.
| 상황 | 신규 해당 여부 | 보안성심의 필요 |
|---|---|---|
| 전자금융업 최초 등록 + 서비스 출시 | 해당 | 필수 |
| 기존 서비스에 새로운 유형의 전자금융서비스 추가 | 해당 | 필수 |
| 동일 유형의 전자금융서비스 추가 출시 | 해당 | 필수 |
| 기존 서비스의 일부 변경/개편/기능추가 | 자체 판단 | 내규 기준에 따라 |
| 단순 UI 변경, 버그 수정 | 비해당 | 불필요 |
금융당국은 "자체 내규에 따라 신규성을 판단하도록" 유도하고 있어요. 핵심 기준은 "보안 관점에서의 신규성"이에요. 예를 들어, 조회 기능만 있던 앱에 이체 기능을 추가하면 보안 리스크가 증가하므로 신규로 판단해야 해요.
보안성심의 수행 절차
자체 보안성심의의 실무 절차는 이래요.
보안성심의 소요 기간은 서비스 규모에 따라 다르지만, 일반적으로 2–4주가 소요돼요. 대규모 서비스(신규 앱 출시, 결제 시스템 전면 개편 등)는 4–8주까지 걸릴 수 있어요.
원인을 추적한 끝에 발견한 건, 보안성심의가 지연되는 가장 큰 이유가 "취약점 조치"라는 거예요. 심의 과정에서 발견된 취약점을 모두 조치한 후에야 결과보고서를 제출할 수 있기 때문에, 취약점이 많으면 일정이 크게 밀려요. 서비스 출시 일정을 잡을 때 보안성심의 기간을 반드시 버퍼로 잡아야 해요.
결과보고서 포함 사항
보안성심의 결과보고서에는 최소한 다음 내용이 포함돼야 해요.
- 심의 대상 서비스 개요 및 아키텍처
- 보안 위협 분석 결과
- 취약점 점검 결과 및 조치 내역
- 잔여 리스크 평가 및 수용 근거
- 보안 통제 적용 현황 (암호화, 접근통제, 로깅 등)
운영시스템 적용 승인 절차 설계
운영시스템에 프로그램을 적용할 때는 사전에 지정된 책임자의 승인을 받아야 하고, 그 책임자를 임의로 변경할 수 없어요.
프로그램 통제 가이드라인 제6조는 운영시스템 적용 승인에 대해 상당히 구체적인 요건을 제시해요.
책임자 지정 및 관리
| 요건 | 내용 | 실무 구현 |
|---|---|---|
| 책임자 범위 정의 | 내규에서 승인 책임자의 범위를 정의 | 배포 승인 권한 매트릭스 문서화 |
| 사전 지정 | 적용 건별로 책임자를 사전에 지정·관리 | PR 생성 시 승인자 자동 지정 (CODEOWNERS) |
| 임의 변경 금지 | 개발자, 책임자, 현업이 임의로 변경 불가 | 승인자 변경 시 IT감사자 승인 필요 |
| 긴급 변경 절차 | 긴급 시 IT감사자 또는 IT개발 담당 임원 승인 | 긴급 배포 워크플로우 별도 설계 |
여기서 한 발짝 더 나아가야 한다고 생각해요. 단순히 "승인 버튼을 누르는 사람"을 지정하는 게 아니라, 그 사람이 실제로 변경 내용을 검토할 수 있는 역량과 시간이 있는지까지 고려해야 해요.
CI/CD 파이프라인에서의 구현
운영시스템 적용 승인을 CI/CD 파이프라인에 녹이면 이런 구조가 돼요.
# GitHub Actions 예시 - 운영 배포 승인 게이트
name: Production Deploy
on:
push:
branches: [release/*]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm test
- run: npm run test:e2e
approval:
needs: test
runs-on: ubuntu-latest
environment:
name: production
# GitHub Environment Protection Rules로
# 사전 지정된 승인자만 승인 가능
steps:
- run: echo "Approved by designated reviewer"
deploy:
needs: approval
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm run deploy:production
GitHub의 Environment Protection Rules를 활용하면 "사전 지정된 책임자만 승인 가능"이라는 요건을 시스템적으로 강제할 수 있어요. 승인자 목록 변경은 Repository Admin 권한이 필요하므로, 개발자가 임의로 변경하는 것도 방지돼요.
검증 담당 조직 구성 요건
검증 담당 조직에는 IT개발 경력 10년차 이상 인력을 포함해야 하고, 개발 조직과 독립적으로 운영돼야 해요.
전자금융감독규정은 프로그램 검증을 담당하는 조직의 구성 요건을 별도로 정하고 있어요. 단순히 "테스트하는 사람"을 두라는 게 아니라, 검증의 독립성과 전문성을 보장하라는 취지예요.
조직 구성 요건
| 요건 | 내용 | 스타트업 현실 |
|---|---|---|
| 경력 요건 | IT개발 경력 10년차 이상 인력 포함 | CTO 또는 시니어 엔지니어가 겸임 |
| 독립성 | 개발 조직과 분리된 검증 조직 | 소규모 조직은 역할 분리로 대응 |
| 권한 | 테스트 시나리오 승인, 배포 차단 권한 | QA 리드에게 배포 거부권 부여 |
| 책임 | 검증 결과에 대한 최종 책임 | 검증 결과서에 서명/승인 |
스타트업에게 "IT개발 경력 10년차 이상" 요건은 부담이 클 수 있어요. 실무에서는 CTO나 VP of Engineering이 검증 담당 책임자를 겸임하는 경우가 많아요. 핵심은 "개발한 사람이 자기 코드를 검증하지 않는 구조"를 만드는 거예요.
검증 조직의 역할
검증 담당 조직이 수행해야 하는 업무를 정리하면 이래요.
- 테스트 시나리오 검토 및 승인 (개발자 임의 축소 방지)
- 테스트 결과 검증 및 운영 적용 승인 판단
- 프로그램 변경 이력의 정당성 검증
- 분기별 프로그램 통제 절차 준수 여부 점검 지원
실무에서 자주 놓치는 포인트
감사를 받아보면, 규정 자체보다 "증적 관리"에서 지적을 받는 경우가 더 많아요.
증적이 없으면 안 한 것과 같다
금융감독원 IT 검사에서 가장 많이 나오는 지적 유형이에요.
| 지적 유형 | 원인 | 예방 방법 |
|---|---|---|
| 승인 이력 부재 | 구두 승인 후 기록 안 남김 | 모든 승인을 시스템(Jira, GitHub)에 기록 |
| 테스트 결과서 미작성 | 테스트는 했지만 문서화 안 함 | CI 파이프라인에서 결과서 자동 생성 |
| 긴급 변경 사후 처리 누락 | 장애 대응 후 정상 절차 미이행 | 긴급 배포 후 48시간 내 사후 리뷰 강제 |
| 교육 이력 미보관 | 교육은 했지만 출석부 없음 | LMS 시스템 또는 교육 이력 DB 관리 |
규정 준수 vs 빠른 배포, 트레이드오프
규정 준수를 위한 프로세스 오버헤드와 스타트업의 빠른 배포 문화 사이에는 분명한 긴장이 있어요.
금융 SI 프로젝트에서 겪었던 경험을 공유하면, 초기에는 "규정 때문에 배포가 느려진다"는 불만이 많았어요. 배포 주기가 주 3회에서 주 1회로 줄었거든요. 하지만 프로세스가 안정화된 6개월 후에는 장애 발생 건수가 월 4–5건에서 월 1건 이하로 줄어들면서, 장애 대응에 쓰던 시간이 개발에 투입되면서 전체적인 개발 속도가 오히려 빨라졌어요. 프로그램 통제 미준수로 인한 제재(과태료 최대 5천만원, 영업정지)를 고려하면, 초기 투자 대비 리스크 감소 효과가 훨씬 커요.
보안성심의 소요 기간(2–4주)을 서비스 출시 일정에 반영하지 않아서 일정이 밀리는 경우도 자주 봐요. 프로젝트 킥오프 시점에 보안성심의 일정을 먼저 잡고, 역산해서 개발 일정을 수립하는 게 현실적이에요.
이전 글에서 다뤘던 전자금융거래법 전체 그림에서 감독규정이 "시공 매뉴얼"이라고 설명했어요. 이 글에서 다룬 내용이 바로 그 매뉴얼의 핵심 챕터예요. 다음 글에서는 선불전자지급수단 시스템의 한도관리와 원장 설계를 다룰게요.
핵심 요약
- 전자금융감독규정에서 개발팀이 직접 구현해야 하는 조항은 프로그램 통제(제29조), 보안성심의(제36조), 운영시스템 적용 승인, 가용성 테스트 4가지로 압축돼요.
- 프로그램 통제 가이드라인은 모든 프로그램의 등록·변경·폐기 절차를 내규화하고, 분기 1회 이상 점검하도록 요구해요. 테스트 자동화 솔루션 도입은 의무예요.
- 보안성심의는 신규 전자금융업무 출시 전에 수행해야 하고, 소요 기간은 2–4주예요. 취약점 조치까지 포함하면 더 길어질 수 있어요.
- 운영시스템 적용 승인 책임자는 사전에 지정해야 하고, 임의 변경이 불가능해요. CI/CD 파이프라인의 Environment Protection Rules로 시스템적으로 강제할 수 있어요.
- 검증 담당 조직에는 IT개발 경력 10년차 이상 인력이 포함돼야 하고, 개발 조직과 독립적으로 운영돼야 해요.
FAQ
Q. 전자금융감독규정에서 개발팀이 직접 구현해야 하는 조항은 무엇인가요?
프로그램 통제(제29조), 보안성심의(제36조), 운영시스템 적용 승인 절차, 가용성 테스트(제14조)가 핵심이에요. 프로그램 통제는 개발→테스트→배포 전 과정의 절차를 내규화하고 시스템적으로 강제하는 것이고, 보안성심의는 신규 서비스 출시 전 자체 보안 검증을 수행하는 거예요.
Q. 보안성심의는 어떤 시점에 수행해야 하나요?
신규 전자금융업무를 출시하기 전에 수행해야 해요. "신규"의 기준은 보안 관점에서의 신규성이에요. 기존 서비스에 새로운 유형의 기능을 추가하거나, 보안 리스크가 증가하는 변경이 있으면 보안성심의 대상이에요. 소요 기간은 일반적으로 2–4주이고, 취약점 조치 기간까지 포함하면 더 길어질 수 있어요.
Q. 프로그램 통제 가이드라인에서 테스트 자동화 솔루션은 의무인가요?
의무예요. 금융투자협회 프로그램 통제 가이드라인 제5조 제2항은 "충분한 테스트 수행을 위하여 테스트 자동화 솔루션을 도입하여야 한다"고 명시하고 있어요. 단위 테스트, 통합 테스트, 회귀 테스트 중 반복적으로 수행되는 테스트를 자동화하는 도구를 갖추면 돼요. 모든 테스트를 100% 자동화해야 한다는 뜻은 아니에요.
Q. 검증 담당 조직의 IT개발 경력 10년차 요건은 어떻게 충족하나요?
스타트업에서는 CTO나 VP of Engineering이 검증 담당 책임자를 겸임하는 경우가 많아요. 핵심은 "개발한 사람이 자기 코드를 최종 검증하지 않는 구조"를 만드는 거예요. 외부 전문가를 자문위원으로 위촉하거나, SI 파트너사의 시니어 엔지니어를 검증 조직에 포함시키는 방법도 있어요.
