brunch

You can make anything
by writing

C.S.Lewis

by 풰르난뒤 Dec 29. 2018

SQL이 뭔가요?

무엇에 쓰는 물건인고?

데이터 추출을 내가 해야만 하는 이유


 직장에서 일하다 보면 감으로 결정하지 말고 데이터를 살펴서 근거 있는 판단을 하고 싶은 마음이 생기지요. 그래야만 다른 직군을 만나서 설득을 해야 할 때 나만의 취향 고백이 아닌 논거를 가진 주장을 펼칠 수 있게 되니까요. 꼭 그런 게 아니더라도 내 생각이 맞는지 스스로 확인할 방법이 있다면 고민할 시간을 짧게 만들어서 보다 더 효율적으로 일할수 있지 않겠어요?


 그래서 우리는 데이터 분석이라는 걸 좀 해봐야겠는데, 첫 번째 관문 - 데이터 가져오기- 에서 탁 걸려버립니다. 일단 데이터를 내 손에 쥐어야 이리 볶고 저리 지지고 해서 분석이라는 걸 해보기나 할 텐데, DBMS라는 무시무시한 녀석이 꼬~옥 품고 있는 데이터를 어찌하면 내 손으로 가져온단 말입니까? 개발자에게 요청하라구요? 진짜 그러면 되나요?


 개발자에게 데이터 추출을 요청하는 상황을 한 번 살펴봅시다. 머릿속에 떠오르는 상상 속 조건을 가장 친절하게 표현해서 개발에게 글로 설명을 합니다. 개발자는 무척 바쁘니, 짬이 날 때 요청 사항을 읽어보고 빠르게 추출해서 엑셀 파일로 담아서 전달해주지요. 다른 일을 하고 있던 기획자는 결과를 받아서 살펴보기 시작합니다. 보다 보니 이거.. 상상과 다르다는 것을 발견하게 됩니다. 추출 조건을 이렇게 저렇게 좀 바꿔서 다시 뽑아 보고 싶다.... 라는 욕망이 꿈틀거리지만, 다시 뽑아 달라고 하기가 꺼려집니다. 왜냐고요? 미안하니까요...


첫 째, 데이터는 내가 막 궁금해하는 바로 그 순간에 가질 수 있어야 합니다.


둘째, 내가 필요한 데이터는 절대 한 번에 뽑을 수 없습니다. 여러 번 시행착오를 거쳐야 해요...


셋째, 기획자가 하는 표현을 개발자가 이해해서 다시 코드로 옮기는 과정에서 여러 가지 오해가 발생됩니다.


 이런 이유들 때문에 데이터는 목마른 사람이 샘 파듯이 필요한 사람이 직접 뽑을 수 있어야 해요. 그게 안되면 데이터 분석이라는 건 물 건너가는 것이지요. 그리고 보통 먼저 가설이 생기고 데이터를 본다기보다는 평상시에 데이터를 즐겨 (재미 삼아) 관찰하다가 특이점을 발견하게 되어서 의미 있는 가설이 생길 때가 많아요. 즉, 자꾸 관찰하다 보니 뭔가가 얻어걸리는 거죠. 그.래.서. 스스로 뽑을 수 있어야 한다고요~~~


데이터는 어디에 들어있나요?


스스로 데이터를 추출하기로 마음먹었다면 이제 데이터가 어디에 들어 있는지 알아야겠지요. 데이터는 DBMS라고 불리는 제품들에 들어있어요. 그런데 DBMS는 제품 이름이 아니고 '휴대폰'처럼 품목 이름이지요. DBMS = 'Dasebase Management System'의 약자입니다. 실제 제품 이름은 'Mysql', '오라클' 같은 이름을 갖고 있어요. 휴대폰의 제품 이름이 아이폰, 갤럭시폰 같은 이름을 갖고 있듯이요. 함께 일을 하고 있는 개발자분에게 물어보세요. 우리는 어떤 DBMS 제품을 쓰고 있어요?라고 말이죠...~ 


자, 그럼 SQL는 뭔가요?


 DBMS 제품이 데이터를 갖고 있는 것까지는 알았잖아요? 그럼 데이터를 가져오기 위해서는 DBMS에게 명령을 내릴 수 있어야겠지요. 즉 DBMS가 이해하는 언어를 우리가 알아야 한다는 말입니다. DBMS 제품이면 무엇이든 이해하는 언어가 바로 SQL입니다. 그 제품이 오라클이든, Mysql이든 관계없이 SQL 문법으로만 명령하면 내가 필요한 데이터를 가져올 수 있어요. 왜냐하면 표준으로 지정되어 있거든요. 영어만 익히면 어느 나라에 가서도 대략 말이 통하듯이 SQL만 익히면 DBMS 제품과 대화를 할 수 있게 됩니다.


 SQL은 'structured query language' 의 약어이고요, 한글로 옮기면 '구조화된 질의 언어' 정도가 되겠습니다. 중요한 건 SQL은 언어라는 것이고, 그렇기에 SQL만의 단어가 있고, 문법이 있답니다. 그런데 영어 같은 진짜 사람들이 쓰는 언어에 비해서는 진짜 말도 안 될 정도로 단어 수도 적고 문법도 정말 간단해요. 해서 누구든지 이 SQL을 익히지 못할 아무런 이유가 없어요. 괜스레 개발자들이나 하는 기술이지... 라는 막연한 생각이 나를 가로막고 있을 뿐, 실제로는 아주 아주 간단한 녀석이에요. "여러분! 다들 해외 나가시면 영어로 스타벅스에 가서 커피 주문들 하시잖아요? " 그 어려운 영어로 외국인에게 커피 주문을 하실 수 있다면 SQL은 당연히 익힐 수 있는 정도랍니다.


자 이제 SQL이 무엇인지 어디에 쓰는 물건인지는 이해되셨죠? 그럼 다음 글부터 하나하나 차근차근 실습도 해가면서 익혀보아요~

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari