회사노하우

[신입개발자에게] 운영 DB 사용 할 때 주의할 점

짹과장 2022. 1. 2. 19:01
지금 내가 접속해 있는 데이터베이스 Connection 상태를 항상 확인해라.
운영 DB인지, 개발 DB인지 알고 있어야 한다.

 

database

 

개발 DB에서 개발을 끝내고, 운영 DB에서 통합 테스트를 하는 경우가 있다.

결국 개발자가 테스트 할 때는 운영 중인 데이터로 최종 확인을 해야 한다.

DB tool에서 접속을 해서 확인할 수도 있고, Application에서 connection 상태를 변경해서 확인할 수도 있다.

이때 내가 운영인지 개발인지 제대로 확인을 안 하고 테스트를 하다간 혼자서 감당하기 힘든 상황이 생길 수 있다.

 

우선 개발 DB에서는 사실 뭘 해도 상관없다. 개발이니까.

운영 DB에서 실행하려는 모든 작업을 개발 DB에서 문제가 없는지 확인 후 실행해라.

그러나 운영 DB로 직접 붙어서 테스트를 하거나, 쿼리를 직접 조회하는 경우라면 신경을 써야 한다.

 

그렇다면 운영 DB에서 주의해야 할 것은 무엇일까.

 

1. 부하를 주는 쿼리인지 플랜을 꼭 확인하자.

개발 DB와 다르게 운영 DB에는 데이터양이 많을 수 있다.

예를 들어 개발에는 1000건 정도가 있었는데, 운영에는 100만 건 정도 있을 수 있다.

이럴 때 개발에는 문제가 없었던 쿼리가 운영에는 문제가 될 수 있다.

검증되지 않은 쿼리라면 플랜을 확인하여 부하가 없는지 체크 후 실행하자.

이력을 쌓는 테이블이라면 꼭 조건에 시간 범위를 줘서 실행할 것을 권한다.

만약 내가 잘못 날린 쿼리로 인하여 DB 리소스를 많이 잡아먹는다면,

운영 중인 다른 부분에 영향을 미칠 수 있기 때문에 항상 주의해야 한다.

 

2. Delete, Update 할 때 조건을 주었는지 확인하자.

데이터를 업데이트 치거나 삭제할 때는 조건을 주었는지 꼭 확인해야 한다.

조건이 없으면 전체 데이터를 대상으로 업데이트 혹은 삭제가 되기 때문이다.

운영 중인 데이터를 전체 다 변경해 버리면 업무에 영향을 주기 때문에 절대주의를 요한다.

 

3. Commit, Rollback을 했는지 확인하자.

Commit은 변경 내용을 데이터베이스에 최종 반영하겠다는 명령어이고, Rollback은 원복 하겠다는 명령어이다.

Insert, Delete, Update 후 Commit이나 Rollback을 하지 않으면 변경하고자 하는 테이블에 락이 걸리게 되므로

꼭 commit 하는 습관을 들이자.

 

4. 운영 환경에 App 배포를 한다면, 운영 DB인지 확인하자.

소스상에서 DB connection 정보를 변경해주는 경우가 있다.

이럴 때 운영환경에 배포를 한다면 꼭 운영 DB로 연결되어있는지 확인해야 한다.

 

 

 

결론적으로 운영 DB를 사용할 때,

누군가 '이 쿼리 누가 실행한 거냐'라고 작업자를 찾고 있다면?

그럼 뭔가 잘못되었다는 것이다...