Disclaimer
이 글은 취업준비생 및 개발자지망생을 대상으로 하지 않습니다. (그들의 필요성은 제가 판단할 수 없음)
제가 이 자격증을 비추천하는 대상은 실무에서 SQL을 활용하고 있거나, 활용을 희망하는 비기술직군입니다.
서론
시험의 기본 정보에 대한 유용한 글이 많으니 생략하고자 한다.
왜 개발할 생각도 없는 직장인이 이 자격증을 땄는가? 에 대해서 간단하게 말하면 그냥...
회사에서 요즘 번아웃을 느끼고 있었고, 업무에서 성취감이나 자기효능감을 느끼지 못하고 있었다.
인생은 답이 없고 회사도 끝이 없는데 답도 있고 끝도 있는 시험 준비나 하면서 문제집에 똥그라미라도 치면 좀 정신건강에 좋지 않을까? 하는 생각으로 시작했다. (당시 판단력도 좀 흐려진 것 같다)
비추천 이유에 대해서는 후술하겠지만, 딱히 필요성을 느끼지 못하는 자격증을 준비했기 때문에 단점을 더 크리티컬하게 느끼지 않았을까?
- 시험 후기를 봤을 때 엄청나게 어려운 시험도 아니고,
- 나는 SQL을 실무에서 데이터 분석용으로 꽤 많이 써보았기 때문에 기본적인 것도 알고 있었고,
- 굳이 서비스기획/PM 쪽과 관련있는 자격증 하나를 뽑자면 SQL 쪽이기 때문에
자격증 하나 따서 링뜨인이나 꾸며줘야지~! 라는 나이브한 마인드로... 시작했다.
공부 방법 및 기간
사실 공부하는 것 자체가 목적이라서 효율적인 방법을 추구하진 않았고 굉장히 정석으로 공부했다. (전 취미가 공부에요 ^^ 사실 뻥임)
SQL 전문가 가이드라는 대학 교재같은 기본서를 예전에 나눔받아서 그 책을 활용했다. (비추천)
그리고 개념서보다가 앗 이러면 진짜 문제 못 풀겠는데? 하고 아찔함을 느껴서 3번째로 공부한 날 (시험 D-7) 후다닥 문제집을 주문했다.
내가 주문한 문제집은 이기적 SQL개발자 기출문제 500제인데, 굳이 모두가 고르는 노랭이를 택하지 않은 이유는...
yes24에 SQLD라고 검색했을 때 검색 결과에 노랭이가 안 나왔다... 지금 다시 봐야한다면 노랭이를 살 것... (문제집 퀄리티가 딱히 좋다고 느껴지진 않았음)
전체 배점을 봤을 때 데이터 모델링 개념보다는 SQL 쪽 비중이 훨씬 높기 때문에 2과목인 SQL의 기본과 활용부터 시작했다.
사실 개념서 공부 → 문제집 풀이 → 오답 개념 반복으로... 매우 정석적으로 공부했다.
- 총 공부 기간
- 책을 편 날이 딱 5일 (책을 편 날은 다 6시간 이상 공부했다)
- 1일째 (D-21)
- 아이패드 산 기념으로 손으로 정리하면서 공부했다. (손필기를 좋아함)
- 근데 너무 비효율적이라 2일째 부터는 메모장에 정리했다.
- 2일째 (D-8)
- select 부터 join까지 개념서 읽으면서 메모장에 정리
- 내가 모르거나 잘 안 써서 헷갈리는 함수들 위주로 유의해서 봤다.
(근데 그것들은 보통 오라클이어서 이 때부터 화가 났음)
- 3일째 (D-7)
- JOIN부터 2과목의 전 범위를 봤고 이 때는 거의 분노에 휩싸인...
정말 살면서 처음 보는 방식의 JOIN들을 외워야 한다는 사실이 나를 괴롭게 했다. - 너무 공부가 하기 싫어서 SQLD 공부를 하는 사람들이 모두 보는 유튜브 영상 몇개를 봤는데, 이렇게 공부하다가는 문제 정말 못 풀겠다~ 라는 생각에 얼른 문제집 구매 (위에 썼지만... 다른 분들은 노랭이를 구매하시길 바랍니다)
- JOIN부터 2과목의 전 범위를 봤고 이 때는 거의 분노에 휩싸인...
- 4일째 (D-2)
- 이제 제 1과목을 보게되었는데, 진짜 알아먹지 못하겠어서 좀 괴로웠다. 사실 환불할거야! 환불할래! 라고 주중에 난리치다가 시험 5일 전이 이미 지나가버려서 (꿀팁 : 시험 시행 5일전까지만 50% 환불 가능하다) 아 그러면 어쩔 수 없이 공부해야지.. 하고 열심히 공부함.
- 이 날 1과목 범위 한 번 다 보고, 문제집이 (150문제 + 모의고사 7회 : 50*7=350문제)로 구성되어 있는데 앞의 150문제 중에 한 50문제 정도만 건드릴 수 있어서 깔짝거렸다.
- 공부가 너무 하기 싫어서 SQLD 관련 유튜브 여러가지 찾아본 듯.
- 모의고사를 하나 풀어봤는데 70점을 넘어서 휴 붙긴하겠네~ 라고 생각했지만 1과목이 과락이어서 사실 탈락이었다 ㅋㅋ 전날 개념 열심히 외워가야겠다고 생각함.
- 5일째 (D-1 ~ D-day)
- 사실 4일동안은 그냥 전체 범위 개념서를 본 셈이었기 때문에 이 날 모든 역사가 이루어졌다.
- 그리고 시험날 아침에 일찍 일어나서 한 3시간 동안 풀집중으로 오답 위주로 마지막 정리하고 간 듯
- 그래서 시험 전체 500문제 중 400문제 이상은 다 풀고... 오답 쪽에 정리하면서 개념을 외웠다.
실제 쿼리에 관한 내용은 그냥 시간 들이면 풀 수 있을 것 같아서 개념 외우는 쪽에 시간을 투자했다.
시험이 끝나고..
문제를 풀다보면 대강 어떤 게 나올 지 감이 온다. 아무래도 문제은행 식 시험이기 때문에
많은 분들이 노랭이만 사서 공부했던데 그게 먹힐 수밖에 없다.
반대로 개념서만 보는 건 비추... 문제가 너무 없다.
효율적으로 공부하시는 분들은 요약노트를 외운 다음에 노랭이만 사서 풀거나, 아니면 노랭이조차 사지 않고 기출문제 복기된 것만 인터넷에서 찾아서 시험을 치시던데
나는 공부를 매우 비효율적으로 (좋은 말로는 정석적으로) 하는 타입이라서 다음에 봐도 그건 어려울 것 같다 ^_ㅠ
개념을 이해하지 않은 채로 외우는 건 나에게 너무 어려운 일이야...
실제로 시험 점수를 봐도 "데이터 모델링의 이해"하지 못함의 점수는 낮다. (이해하지 못한 채 외움) 과락이 아니어서 다행이야...
시험을 준비하면서 화가 났던 이유는
나는 데이터 추출이나 사용하는 함수면에서는 어느 정도 실무를 알고 있는데
실무와는 하등 상관없는 (내 기준에서는 평생 필요없는) 것들을 외워야했기 때문이다.
시험 준비를 시작하면서 내심 기대했던 것은, 내가 실무에서 SQL을 활용하기 위해 두서없이 배웠던 개념이 어느정도 차곡차곡 정리되는 그림이었던 것 같다. 그런데 기대와는 다르게.. 이번 시험에서 공부한 것 중 나와 관련있는 건 10%도 되지 않았던 것 같다.
시험 전날부터는 조금 초연해졌는데... 사실 자격증 시험이란 원래 실무와 동떨어진 것이었는데 내가 잘못된 기대를 했었다.
나는 원래 자격증을 부정적으로 생각해서 취준할 때도 컴활하나 따지 않았었고.. 토익도 만료되었는데 그냥 안 땄었다. (어차피 쓸모없으니까...) 이런 사람이 문제 은행식 자격증을 공부했으니 부정적으로 생각했던 건 당연한 일이었던 듯 하다.
그리고 시험칠 때, 마지막으로 이런 시험장에 왔었던 게 대기업 준비할 때 인적성 시험을 위한 것이었다는 기억을 떠올리자 SQLD에 대한 만족도가 급상승했다. 그 쓰잘데기없는 인적성에 비하면 이건 얼마나 실용적이고 실무적인 시험인가?
비추천하는 이유
이 시험을 비추천하는 이유는, 앞서 계속 얘기했듯 실무에는 무관하기 때문이다. (자격증에 그런 것을 기대한 것이 문제일 수 있지만)
내가 비추천하는 대상은
- 서비스 기업의 비개발직군(기획자, PM, 마케터, 운영 등등)인데
- SQL에 흥미가 있고 배워보고 싶다
- 배워보고 싶은 이유는 실무에 SQL을 활용하고 싶기 때문이다
(예외적으로 본인 기업에서 오라클을 사용한다면 말리지 않는다 / 취준생은 뭐라도 하고 싶을 것이라 말리지는 않는다 / 다만 오히려 정말 SQL을 사용하는 기업일수록 이 자격증을 중요하게 여기지 않을 것이라고 말하고 싶다 / 개발자는...내가 개발자에게 무엇이 필요한지 모르므로 말을 얹을 수 없다)
대부분의 서비스 기업은 오라클을 사용하지 않는다. (내가 말하는 서비스 기업은 IT 제품 위주의 기업들을 의미한다 / 자사 서비스를 보유하고 그 위주로 돌아가는 대부분의 기업은 오라클을 사용하지 않을 것 같다)
맥북엔 심지어 방법을 찾지 않으면 설치조차 할 수 없다. (도커...)
그런데 이 시험에는 오라클의 비중이 매우 높다.
만약 오라클에서 사용하는 함수 등의 여러가지 것들이 다른 SQL 기반의 환경에서도 호환이된다면 충분히 공부할 가치가 있겠으나 오라클에서만 동작하는 것들이 대다수이다.
당연하게 ANSI Join을 써왔는데 Oracle Join으로 작성 된 쿼리문을 해석해야 할 때의 나의 억장 와르르
또, 문제를 풀면서 느낀 건 "정말 실무에서 쓰지 않는 많은 것들"을 배운다는 것이다.
개발직군이 아닌 사람들이 쿼리를 사용할 때는 결국 데이터 추출 / 분석 쿼리를 많이 짜게 된다. 이 시험에서 그 비중은 꽤나 낮다.
결국 나는 이 시험을 통해 추가로 얻은 지식이 거의 없다. (그래도 window function 쪽은 좀 더 알고 싶었는데 그 점은 꽤나 잘 충족됨)
만약 실무 SQL이 배우고 싶다면?
- 재직 중인 기업에서 데이터 분석 권한을 어떻게든 얻어볼 것 (리대시나 메타베이스 등 BI 솔루션을 사용하고 있다면 쉬울 수 있다.)
- 본인이 궁금한 데이터를 설정해보고 기본적인 select 부터 join, sub query까지 공부해볼 것
- 좋은 연습 사이트를 찾았다! 아래를 참고하면 기본적인 SQL 문법을 익히기 쉬울 것 같다.
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit
개인적으로 실 데이터에 쿼리해보는 경험이 중요하다고 생각하는데, 실제 DB가 없으면 그런 경험을 하기가 쉽지 않다.
그래도 문법을 익혀두면 언젠가 도움이 될 것. (위의 사이트를 열심히 푸는 게 실무에서는 SQLD보다 백배 유용할 것 같다)
나는 예전에 이런 것으로 공부했다. 이것보다는 발전한 듯... 우리나라 사이트이기도 하구..
https://sqlzoo.net/wiki/SQL_Tutorial
그럼에도 불구하고 시험꿀팁
(1) 쿼리 실행 연습 (feat. ChatGPT)
오라클이든 뭐든 환경세팅이 너무 오래 걸린다. (예전 파이썬할 때 그노므 아나콘다를 한참 붙잡고 있던 기억 ㅡㅡ )
그래서 나는 챗 GPT에게 SQL 콘솔인 척 해달라고 했다.
일반 예제에서 쓰는 emp나 dept 테이블을 넣어달라고 했더니 모든 것을 넣고 세팅해준다.
(영어로 대답하시오는 Chat GPT 자동 번역기 지니를 사용했기 때문)
그래서 유사한 테이블의 더미데이터를 바탕으로 쿼리를 연습해볼 수 있다는 사실~
이렇게 쿼리문을 넣고 결과를 뽑아달라고 할 수 있다.
이해가 안 가는 것도 물어볼 수 있다.
꽤나 친절하게 대답해준다.
실제로 몇 번 정확하게 검색하기 귀찮을 때 (그리고 벼락치기 하느라 시간이 없었다) 물어보았고 나를 잘 이해시켜주었다.
단순 쿼리 러너로 쓰더라도 결과도 잘 보여줘서 만족 ^_^
(2) 시험날 문제 끝까지 풀기
이게 뭔소리인가 싶긴 해보이는데
시험장에서 일찍 퇴실할 수 있기 때문에 일찍 나가는 사람들이 정말 많다.
근데 만약... 점수가 불안하고 그렇다면 2과목의 SQL의 기본 및 활용을 정말 성실히 풀어볼 것을 권한다.
나는 사실 그냥 모든 문제의 테이블을 거의 다 직접 그려서 직접 뽑았다.
조인하는 경우에도 그냥... 직접 조인해줬다.
개인적으로 데이터 모델링의 이해를 이해하지 못한^^ 상태여서 2과목에서 점수를 잘 받아야한다는 생각이 있었다.
그래서 아는 것의 정답률을 최대한 높이기 위해서 암산은 전혀 안 하고 모든 걸 다 손으로 풀었다.
(그리고 이 시험은 그 노가다를 하기에 시험 시간이 정말 충분히 주어진다)
어차피 60점만 넘기면 되는 시험이니까 만약 점수가 조금이라도 불안하거나 고득점을 원한다면 한땀한땀 그려서 풀어보길 권한다.
시험장 일찍 나와서 뭐하나? 밥먹으면 물론 맛있겠지만 조금 늦게 먹어도 맛있당.
취준생에게는 말리지 않는다고 하긴 했지만, "데이터에 관심이 있어서 이런 자격증을 땄다"라고 말하기에는 사실 빈약한 근거이다.
만약 실제 쿼리를 해야하는 직무에 지원하는 경우 특히 더 그럴 것이다. 실제 SQL역량을 면접에서 확인하는 방식은 보통 어떤 데이터를 어떤 식으로 뽑아보았냐고 물어본다. 이 경우 SQLD는 정말 그 의미를 잃게 된다. 따라서 데이터 역량을 강조하고 싶다면, 곁다리로 하나 놓는 정량적인 근거 정도로만 생각하는 편이 좋을 것 같다. 지금까지 면접/재직했던 어떤 서비스 회사에서도 SQLD를 의미있게 쳐준 곳은 없던 것 같다.
어쨌든 시험을 준비하는 사람들에게는 행운이 있기를
'일하면서 필요한 공부를 해보자 > 데이터 공부를 해보자' 카테고리의 다른 글
[GA4] 구글 애널리틱스에 입문해보기로 결심... (1) | 2022.09.04 |
---|---|
[비개발자SQL] SQL로 하는 데이터 분석 (feat.코드잇 수강후기) (0) | 2022.08.08 |
[비개발자SQL] 효율적인 쿼리 짜기 : SARGable Query란? ( non-sargable query, SQL) (0) | 2022.08.08 |