여행을 개발하다
[SQLD] SQLD(SQL 개발자) 합격 후기, 학습 기간, 학습 방법 (2020년 11월 29일, 39회) 본문
다소 늦은 SQLD 개발자 합격 후기를 공유하고자 한다.
2020년은 자격증 시험 시행기관과 수험자 모두 힘들었던 한 해였다.
코로나 때문에 장소 섭외에서부터 정부의 거리 두기 지침, 방역수칙 등 고려해야 할 사항이 너무나도 많았다.
그래도 취득을 목표로 잡았으니!! 공부를 하고 2020년 마지막 회차에 응시를 했다.
1. 학습 기간
실 학습 기간은 2주일이었다(점수를 보면 그럴 수밖에 없다...).
2주일이라고 해도 하루 종일 계속 잡고 있었던 것도 아니었으며, 퇴근 후 혹은 주말에 잠깐씩 봤던 게 전부였다.
참고로 실무에서 SQL을 쓰고 있는 실무자이며, 수험서를 구입하여 처음 봤을 때도 내용이 완전히 낯설(?) 지는 않았다.
2. 응시 일시, 장소
2020년 11월 29일(일), 성동구에 있는 덕수고등학교에서 시험에 응시했다.
응시 장소는 덕수고 한곳이 아니었으며, 시험 접수 시 본인의 편의에 맞게 선택할 수 있다.
시험 지원 마감일 부근에는 접수가 몰려 서버를 여러 개로 나누어 받았던 것 같다.
그러므로 자격증 취득을 결심했다면, 되도록 빨리 접수하는 게 유리하다.
입실은 8시 30분부터 9시 30분까지였는데, 고사장 내 지리에 빠삭한 것이 아니라면 여유 있게 도착하는 것을 추천한다. 응시했던 날 덕수고에서는 ITQ 자격증 시험도 진행됐었는데, 고사장을 헷갈려서 계단을 오르락내리락 하기도 했다. 적어도 9시까지는 도착해서 고사장 분위기에 적응도 하고, 공부했던 것을 한 번씩 더 들여다보는 것이 승률을 높이는데 좋지 않을까 싶다.
3. 시험 후기
쉽지 않았다... 공부를 더 열심히 했더라면, 좀 더 수월하게 풀 수 있었을 것 같다.
1시간 30분(90분) 내 50문항을 풀어내야 하며, 대략 1문항에 1분 48초 정도 할당된다. 시간이 충분할 것이라고 생각했는데, 결국 종료 방송이 나올 때까지 풀다가 제출했다. 특히, 내가 적어낸 답에 확신을 가졌던 문제가 극소수였다. 웬만해선 한 문제 한 문제 풀어나갈 때마다 확실하게 검증하고 다음 문제를 풀어나가는 것이 좋다.
4. 공부 방법
① Study Plan
데이터베이스와 SQL에 대한 이해도에 따라 학습 기간이 달라진다.
* 이 분야에 문외하고, 처음 접한다 - 넉넉잡아 3개월 정도
* 전공자 혹은 실무자 - 지금까지 배우고 익혔던 부분을 복습한다고 생각하고 1개월 정도
② 교재
시중에 SQLD 문제집으로 나와있다고 하는 2권을 모두 구입하여 공부했는데, 장단점은 다음과 같다.
◇ 이기적 SQL 개발자 이론서+기출문제 국가공인자격검정 SQLD (이기적)
(+) 장점
- DBMS 설치에서부터 각종 이론에 대해 처음 보는 사람도 입문할 수 있게끔은 설명해 준다.
- 나름 복원(?)인듯한 SQLD 기출문제를 풀어볼 수 있다.
(-) 단점
- 책을 성의 없이 만들었다는 생각이 들었다(오탈자 등이 너무 많음)
- 공부를 하면서, 학습자 자신이 개념을 익혀가고 있는 건지 마는 건지를 정확히 판단할 수 없다.
- 문제마다 힌트가 달려있어서.. 해결 포인트가 잡히지 않으면 자연스럽게 눈동자가 굴러간다.
(공부를 대충 하게 되며, 정신승리만 하게 된다)
◇ SQL 자격검정 실전문제 (Kdata 한국데이터진흥원)
(+) 장점
- SQLD 사업기관인 한국데이터진흥원에서 직접 만든 교재라 적중률이 높으며 출제 동향을 파악할 수 있다.
- 시험을 치러본 사람으로서, 실전과 난이도가 매우 유사하다.
- 시험문제가 이 문제집에 수록된 문제와 똑같이 출제되는 경우가 많다(이번 시험에서도 마찬가지).
(-) 단점
- 말 그대로 문제집이기 때문에 입문자의 앞장에서는 이해하기 다소 부담이 되는 난이도이다.
(기본 개념을 조금 익히고 들여다봐야 이해하기가 좀 더 수월하다)
- SQLD 및 SQLP 시험문제가 한 권에 모두 나와있기 때문에, 몇몇 내용은 출제 범위를 벗어난다.
③ 학습 Point
- 머릿속으로만 이해한다고 생각하지 말고, 눈에 보이는 SQL을 직접 두드려보며 '원리'를 이해해야 한다.
- 'LAG 이 함수 알아 ㅋㅋ', '아 cube 통계? 그거 조합 가능한 모든 통계를 구해해주는 집계 함수잖아!ㅋㅋ'라고 개념만 정확히 알고 가면 낭패 당할 확률이 높아지는 시험이다.
- 1과목의 '과락'에 주의한다.
- 여러 DBMS가 있지만, 그중에서도 Oracle과 MS-SQL을 중심으로 공부한다.
1과목. 데이터 모델링의 이해
ㅁ 엔티티, 식별자, 정규화 등이 주 내용이 된다.
ㅁ 10문제 중 4문제 이하를 맞추면 과락이 되어, 2과목을 아무리 잘 푼다 한들 불합격하게 된다.
- 식별자(Identifiers)를 '구분 기준'에 따라 분류할 수 있어야 함.
- 정규화의 개념과 종류(문제에서 주어진 ERD를 보고 해당 테이블들의 정규형이 어떤 것이지, 후속적으로 진행해야 하는 정규화는 어떤 유형인지를 판단할 수 있어야 한다)
- ERD의 표시 방법 및 엔티티 간의 관계 해석(관계차수)
- 테이블의 수평, 수직분할의 의미
- 속성의 정의(기본, 설계, 파생 등)
2과목. SQL 기본 및 활용
ㅁ 반드시 소량의 데이터라도 SQL을 직접 수행하여 결과를 분석해볼 것(원리를 알아야 함).
ㅁ Oracle 기준으로 공부하되, 가끔 나오는 MS-SQL의 함수도 정리.
- DML, DCL, TML, DDL의 종류와 개념.
- DML, DCL, TML, DDL를 사용한 테이블 및 데이터의 CRUD, 문법.
- 윈도우 함수(PARTITION BY, ORDER BY, ROWS, RANGE, PRECEDING, UNBOUNDED PRECEDING, FOLLOWING, UNBOUNDED FOLLOWING 등).
- 순위 함수(RANK, DENSE_RANK)의 사용 및 원리.
- 집계 함수(ROLLUP, CUBE, GROUPING SETS, GROUP BY), 각 집계 함수로 SELECT 되는 결과가 어떻게 다른지 반드시 구분할 줄 알아야 함.
(다음과 같이 SUM, AVERGAGE와 같은 연산에 NULL인 레코드가 있을 경우 연산 과정이 어떻게 되는지 알고 갈 것)
- 실행계획(Execution Plan)에 대한 이해와 진행 순서 익히기.
- Join의 방식(Nested Loop, Hash, Merge)과 Join의 종류(Left, Right Outer Join, Inner Join).
- Oracle형 조인('(+)'을 사용한 조인) 방식.
- 계층형 쿼리(매우 중요), START WITH ~ CONNECT BY ~ PRIOR ~ ORDER BY SIBLINGS BY 구문을 정확하게 이해하고 갈 것.
5. 취득 후기
SQLD 90점 이상의 고득점자는 데이터베이스의 원리까지 깊이 이해할 수 있는 정도라 하니, 제대로 공부하고 치르면 실무 능력이 크게 향상될 수 있는 절호의 기회라고 생각한다.
나 또한 SQL이라면 기존에 쓰던 것만 썼는데, SQLD를 준비하면서 익혔던 집계 함수, 윈도우 함수를 실무에서 사용함으로써 가공할 수 있는 데이터의 범위와 시각도 넓어졌다. 운이 좋아 붙었지만, 떨어졌어도 깊이 있고 유익하게 다시 도전했을 것 같다(사실 진심은 반 정도...).
관련 실무자 혹은 전공자라면 한 번쯤 도전해봤으면 좋겠다. 수박 겉핥기 식이 아닌 데이터베이스의 개념과 원리에 무게를 둔 시험이라, 여러모로 실무를 함에 있어 큰 도움을 받았던 자격증 시험이었다.
(+) 작년에는 정보기술자격 취득에 집중했다면, 올해 상반기는 영어 등 외국어 공부에 집중해볼까 한다. 취업 준비를 함에만 필요한 줄 알았지만, 어찌 됐든 IT 분야도 영어와는 불가분의 관계인 것 같다(커리어에도 욕심이 있는 편이라...ㅎㅎ). 이것이 끝나면 이제는 SQLP에 도전할 것이다. 매우 큰맘을 먹고...
제 글이 SQLD를 취득하시려는 많은 분들께 도움이 되었으면 좋겠습니다.
감사합니다.
'자격증' 카테고리의 다른 글
[리눅스마스터 1급] 2차 시험 합격 후기, 학습 기간, 학습 방법 (2020년 8월 8일 특별 검정, 2001회) (7) | 2020.08.23 |
---|---|
[리눅스마스터 1급] 1차 시험(필기) 합격 후기, 학습 기간, 학습 방법, 시험 후기(2020년 6월 13일 정기시험, 2001회) (4) | 2020.08.13 |