IT 여러가지

IT: DBA?

dewstream 2025. 9. 13. 08:00
728x90

※ IT: DBA?

 

안녕하세요. 듀스트림입니다.

 

이직하고 3주가 지났습니다.

 

현재 저는 규모가 꽤 크고 운영 복잡도가 매우 높은 시스템의 DBA로 근무하고 있습니다.

 

이직 당시 선택지는 세 곳 정도 있었는데,

  • 하나는 포지션이 제게 맞지 않았고,
  • 또 하나는 안정적인 시스템 + 업무 대부분을 하청에 맡기고 관리만 하는 구조였습니다.

그리고 마지막 선택지가 지금 회사였습니다.

 

제가 이 회사를 선택한 가장 큰 이유는 인터뷰 당시 개선해야 할 것들이 정말 많이 보였고, 이러한 난제를 풀어보고 싶다는 도전 의식 때문이었습니다. (물론, 그 외에도 여러 가지 이유가 있었습니다.)

 

막상 현업에 들어와 보니 문제는 예상보다 훨씬 더 복잡하고 난해했습니다.

 

그래서 이번 포스팅에서는 DBA의 역할과 직무 그리고 업무 우선순위를 다시 한 번 정리해보고자 합니다.

이 글이 같은 고민을 하는 다른 분들에게도 도움이 되길 바랍니다.


DBA? 진짜 뭐 하는 사람일까?

DBA(Database Administrator)는 데이터베이스 관리자를 뜻합니다.


많은 사람들이 “DBA는 그냥 데이터베이스 관리하는 사람”이라고 단순하게 생각하지만, 실제로는 그 역할이 훨씬 광범위합니다.

특히 오픈소스 DB(PostgreSQL, MySQL, MariaDB 등)를 사용하는 경우에는 상용 DB에 비해 자동화 도구나 벤더 지원이 부족하기 때문에 DBA의 부담이 더 크고 직접 챙겨야 하는 일도 많습니다.

 

계속해서 DBA가 실제로 어떤 일을 하고, 어떤 업무를 수행해야 하는지 우선순위를 기준으로 정리해보겠습니다.


1. 최우선 과제: 안정성과 생존성 확보

가장 중요한 건 데이터가 유실되지 않고, 서비스가 멈추지 않게 하는 것입니다.

  • 백업 및 복구 전략
    • 정기적인 전체/증분 백업
    • WAL 아카이빙(PostgreSQL)이나 Binlog(MySQL) 관리
    • 복구 테스트(PITR: Point-in-time Recovery) 필수
  • 고가용성(HA) 및 장애 대응
    • Primary–Standby 구성
    • 자동 Failover / 수동 Failback 절차 문서화
    • DR(Disaster Recovery) 센터 운영
  • 보안 관리
    • 계정·권한 관리, 암호 정책
    • 네트워크 보안 (SSL/TLS, 접근 제어)
    • 보안 패치(CVE 대응) 직접 확인 및 적용
  • 모니터링 & 알림
    • CPU, 메모리, 디스크 I/O, 커넥션 수, Lock 현황 모니터링
    • 장애 발생 시 즉시 알림 → Root Cause 분석
DBA의 본질적인 사명입니다.
단 1분의 중단, 1건의 데이터 손실도 용납하지 않겠다는 마음가짐으로 임해야 합니다.

2. 서비스 품질 보장: 성능 최적화

서비스가 멈추지 않아도 느리면 의미가 없습니다.

  • 쿼리 튜닝
    • 실행 계획(EXPLAIN, EXPLAIN ANALYZE) 분석
    • 불필요한 풀스캔 제거, 적절한 인덱스 활용
  • 스키마/데이터 모델 관리
    • 정규화 vs 비정규화 균형
    • 적절한 데이터 타입 선택
    • PK/FK 제약 조건 관리
  • 인덱스 관리
    • 필요한 곳에만 생성 (중복 인덱스 제거)
    • Bloat 발생 시 재구축 (Rebuild)
  • Autovacuum/통계 관리 (PostgreSQL)
    • VACUUM 정책 조정
    • 통계 갱신(ANALYZE) 자동화
  • Connection Pool 운영
    • Pgpool-II, PgBouncer(PostgreSQL)
    • ProxySQL(MySQL) 등으로 커넥션 효율화
성능 튜닝은 서비스 체감 품질과 직결되며, 장애는 없지만 사용자가 불만을 가지는 상황을 막습니다.

3. 장기적 안정성: 운영 효율화

반복적인 작업을 줄이고 장애를 예방하는 단계입니다.

  • 자동화
    • 백업/복구 스크립트, 배포 자동화, 장애 감지 및 자동 조치
    • ETL/CDC 파이프라인 운영 자동화
  • 표준화 & 문서화
    • Naming 규칙, 권한 정책, 운영 가이드, Runbook
    • 신규 DBA/개발자 온보딩 시 즉시 활용 가능
  • 용량 계획 & 아카이빙
    • 데이터 증가율 예측 → Storage 계획
    • 파티셔닝, 콜드 데이터 분리
  • 업그레이드 & 패치 관리
    • PostgreSQL: pg_upgrade, Logical Replication 기반 업그레이드
    • MySQL: In-place 업그레이드 or Dump/Restore
    • 오픈소스는 특히 미리 테스트 후 적용이 중요
생산성을 높이고 장애 예방 효과를 극대화 하는 중요한 작업들입니다.

4. 비즈니스 가치 창출: 데이터 지원 & 컨설팅

단순한 운영자를 넘어, 데이터 기반 의사결정을 돕는 역할입니다.

  • 데이터 품질 관리
    • 중복·오류 데이터 클렌징
    • 데이터 무결성 보장
  • DW/BI 환경 지원
    • OLTP ↔ DW 데이터 파이프라인 최적화
    • BI 도구(Tableau, Power BI, Superset 등)와 연결 지원
  • 개발자 및 애플리케이션 지원
    • SQL Review, 스키마 설계 검토
    • 성능 관련 Insight 제공
  • 컨설턴트 역할
    • 오픈소스 선택/도입 전략
    • 클라우드 vs On-prem 비교
    • 아키텍처 설계 자문
이 영역은 위 3개 영역에 대한 경험이 충분하고 많은 공부를 해야 가능한 영역입니다.

DBA 업무 우선순위 정리

우선순위 업무 영역 주요 업무
1 안정성 확보 백업/복구, HA/DR, 보안, 모니터링 & 장애대응
2 성능 최적화 쿼리 튜닝, 스키마/인덱스 최적화, Autovacuum 관리, Connection Pool
3 운영 효율화 자동화, 표준화, 용량 계획, 업그레이드 & 패치 관리
4 비즈니스 지원 데이터 품질, DW/BI 지원, 개발자 컨설팅, 아키텍처 자문

DBA는 단순히 “DB만 관리하는 사람”이 아닙니다.


데이터 안전 → 성능 → 효율화 → 비즈니스 가치 창출이라는 단계별 우선순위를 따라 데이터가 끊임없이 흐르고 안전하게 보관되며 비즈니스 성장에 기여하도록 만드는 직무입니다.

 

특히 오픈소스 DB를 운영하는 환경에서는 자동화와 사전 점검 없이는 리스크가 크기 때문에 “문제 생기면 해결”이 아니라 “문제가 생기지 않게 미리 관리”하는 것이 DBA의 진짜 역할이라고 생각합니다.

 

오늘은 여기까지~

 

 

728x90

'IT 여러가지' 카테고리의 다른 글

RDBMS: FOREIGN KEY  (1) 2025.11.28
IT: RDBMS 테이블 설계 체크리스트  (3) 2025.07.16
IT: for Loop vs while Loop  (0) 2025.07.13
IT: RDBMS 스타스키마  (1) 2025.07.09
IT: RDBMS 반정규화  (2) 2025.07.08