누가 묻는다. 'SQL 작성 가이드'는 누가 내는 거냐고. Data Modeler? DBA? SWA? 선임 개발자? 서로들 자기일이 아니라고 하는 경우를 상상해보자. 그리고 생각해보자.
SQL은 설계자 또는 개발자가 작성한다. 그리고 이 SQL을 어느 단계에서 작성하는가? 당연히 개발단계일 것이다. (설계단계에 초안을 만들어둘수는 있겠지만 최종 작동되는 SQL은 개발단계일 것이다.) 이때는 DBMS 선정이 끝나고 이미 개발 DBMS까지 구축된 이후이다. SQL에는 다양한 DMBS의 Object(Table 뿐 아니라 View, Sequence, Function, Procedure 등)가 포함되고, 그 DBMS특징에 맞춰 성능까지 고려하여 작성할 부분이 있다.
그러면 이러한 것을 누가 제일 잘 알까?
그걸 제일 잘 아는 사람이 역할자가 작성해야지 않을까?
당연히 DBA다.
그런데 DBA가 못하겠다고 한다? 바쁘다는 핑게 또는 하기 싫어하는 경우라면... DBA라는 그의 고유 역할도 맡길 수 있을지 심각하게 고민해야 봐야한다. 그러한 마인드로 어떻게 운영DB까지 관리한다는 말인가? 정말 바빠서 못하겠다면 DB Administration도 일이 많다는 의미이므로 DBA를 추가로 뽑고 그 사람을 통해서라도 가이드 작성하고 교육하도록 해야한다.
단순히 DBA가 ‘자기일이 아니다’, ‘바쁘다’ 등의 이유를 들어 차일피일 미루고, 나 몰라라 한다면, 그래서 관리자가 Data Modeler나 SWA에게 그 가이드를 맡긴다면, 반쪽짜리 가이드일 뿐이다. 또는 보나 마나한 가이드일 뿐이다. 이후에 재작업이 많을 것이고 그러는 중에 누가 왜 이렇게 가이드를 부실하게 작성해서 이렇게 혼란스럽게 하느냐라는 이야기도 나올 것이다. 지금 당장일을 미룬다고 해결되지 않는다는 뜻이다.
이게 SQL 작성 가이드, 그리고 Data Modeler와 DBA만의 문제일까? 다른 역할자들과 여러 단계/Task에 걸쳐 이와 비슷한 애매한 상황과 작업에 대해 적당히 넘어가는 경우가 많다. 반드시 기억해야한다. 이렇게 저렇게 적당히 넘어간 일들은 이후 바쁘고 정신없는 막판에 외나무 다리에서 만나게 된다는 것을…