181105
어떻게 하다 보니 MS-EXCEL의 조잡한 기술 몇 가지로 숫자 말아보는 게 먹고 사는 수단이 되어버렸다.
그래도 나름 IT업계에서 일한답시고 다뤄야 할 데이터의 범위가 108만 행을 초과해버리면서 엑셀의 테두리 안에서나 뱅뱅 돌던 그 기술이 어느 새 sql이라는, 제법 그럴싸한 '언어'에까지 이르렀다. 물론 '잘' 하는 건 아니다.
원래 '언어에 대한 감각'은 있는 편이라고 자부했지만, 그건 내가 문과였을 때에나 먹혔던 거고. 구조화된 조회용 언어(structured query language)에 적용되리란 기대는 없었다. 나는 논리보다 비약과 직관을 선호하는 인물이고, 학부시절 경영통계학 과목은 C+를 면치 못했기 때문이다. 자격증 같은 건 아직 없어서 내 스킬이 어느 정도인지 객관적으로 평가받진 못했지만, 이걸 토익시험으로 친다면 나는 한 5~600점 정도의 수준 아닐까 싶다.
처음엔 SAS를 쓰면서 sql을 접했는데 세상에! select, from, left join, where, group by 만 있으면 무슨 질문이든 답을 척척 내놓을 수 있었다. 영생의 비법마저 알아낼 수 있을 것 같았다. 가끔 select를 중첩해서 쓰는 게 헷갈렸고, left join과 join을 엄밀하게 구분하지 못할 때에는 엉망진창의 숫자를 뽑아내기도 했지만, 적어도 '잘 만들어진 DB'와 '그렇지 않은 DB'를 알아보는 시각은 생겼다. '보물을 찾기 위해선 삽질을 해야 한다'는 진리도.
소속이 바뀌면서 SAS 대신 hive를 쓰기 시작했는데 여긴 여기대로 또 새로운 세계였다. with 문을 알게 된 이후로는 더 이상 중첩 select 로 헷갈일 일이 없어졌다. 귀찮은 '내보내기' 대신 바로 다운로드하거나 임시 파일을 생성하거나 테이블에 insert하는 재미도 알게 되었다. (보통 select를 위주로 하다 보니 create나 drop이나 alter나 뭐 이런 건 잘 쓸 일이 없어서 교과서적인 순서와는 전혀 상관 없이 배우게 되었다;;)
회사에는 '제다이 마스터'라고 불러도 아깝지 않을 만큼 훌륭한 DBA 전문가분이 동료로 계셔서, 나는 금전적인 가치로 따질 수도 없을만큼 고퀄리티의 교육을 받을 수 있었다. 내가 아무리 세상 상멍충이 같은 실수나 오타를 내어도 '원래 이런 데서 제일 많이 틀립니다, 허허' 하면서 너그럽게 휴먼 에러를 인정해주시고, '역시 루나는 빨라요! 최고에요!' 라고 칭찬도 아끼지 않아주신다. 덕분에 나는 다크포스에 빠져들지 않고 언제나 즐겁게 빛과 희망의 쿼리를 짜고 돌리고 실패하지만 다시 일어서기를 반복할 수 있다. 언젠가 이분에게서 sql을 배웠노라고 당당하게 말할 수 있을 날이 오면 좋겠다. (지금은 그 분의 명성에 먹칠만 할 뿐이라...)
sql도 운동 학습처럼 약간 '계단식 성장'을 하게 되는 것 같다. 잘 이해가 안 되던 쿼리문들이 어느 순간 개안(開眼)하는 것처럼 한 눈에 들어오는 순간이 있다. 그리고 그 지점을 지나면, 두 발 자전거 타기를 배운 것처럼 쉽게 까먹지 않게 된다. 지난 2주간, 리포트를 하나 쓰느라 아주 힘들고 고난스러웠지만 sql과 함께라서 재밌기도 했다. 새벽 2시까지 테이블을 뒤지고 쿼리를 짜면서 끙끙대는 나를 지켜보던 신랑이 '너 지금 즐기는 거 같은데?'라고 말할 정도였다. 내가 어느 '지점'을 넘어섰기 때문이다.
그에 앞서 나는 어쩐 일인지 '크고 아름다운 DB'를 보면 막막하기 보다는 가슴이 떨린다. 빨리 저 컬럼들을 분해하고 이해하고 내가 원하는 정보로 만들어내고 싶다!는 열망에 가득찬다. 그리고 그 환희의 정점에서 가끔 이렇게 일기에 적는다.
'오늘도 엑셀이랑 싸워서 이겼다. 요즘은 하둡이랑도 싸운다. 물론 내가 이긴다.'
'꼭 짱이 돼야지, 짱이 돼서 맨날 sql만 하고, 데이터 다 패버릴거야.'