이 포스트는 2023.10.29일자로 AWS Certified Developer - Associate (2023 DVA-C02) 시험 응시에 합격한 후기입니다.
내가 회사에서 백엔드 엔지니어로서 맡는 직무는 크게 보아 3가지 정도인데, 애플리케이션, 데이터베이스, 인프라 부문이다. 이 3가지에서 역량을 키우고 싶었으나 인프라는 여의치 않았는데, 서버리스 인프라 플랫폼으로서 AWS는 실무에서도 많이 접하고 있으나 직책과 보안 정책상 한계로 직접 깊은 수준까지 다뤄볼 기회가 많지 않았다.
그래서 미리 공부를 해서 어떤 상황에서 어떤 서비스를 사용하는지 알아보고, 내친김에 자격증까지 취득해버리자는 생각으로 시험에 응시하였다. Solutions Architect나 DevOps Engineer 자격증, 기타 Specialist 등 많으나 전반적으로 수많은 AWS 서비스들의 개발자 수준으로서의 적재적소 사용을 목표로 하여 Certified Developer 자격 Associate 레벨을 선택하였다.
대강 1달의 기간을 목표로 하여 3주는 강의, 1주는 연습문제와 개념 리뷰를 계획으로 잡았다. 회사일을 하며 주경야독해야했으므로, 출퇴근 대중교통과 퇴근 후 밤+새벽시간을 이용하였다. 실질적인 공부시간은 2주가 안됐던 것 같다.
강의는 꽤 유명한 해외 강사인데, Stephan Maarek님의 강의를 검색 중 우연히 찾아 듣게 되었다. 섹션이 34개로 이루어져 있고, 섹션 내 모든 강의 수를 합하면 총 497개(!)로 어마어마하다.
이 497편을 출퇴근하는 지하철에서 보고, 점심시간 짬짬이 그리고 집에 와서 동영상 본 내용을 메모로 복습, 정리하였다. 재수 생활도 견뎌낸 본인도 쉽지 않은 여정이었다.
그래도 시험 문제가 공개되어있지않음에도 불구하고 이 강의만 보고 들어가도 반절은 맞출 수 있을 정도로 내용이 알차다. 개념 정리와 사용 예시, 실습, 그리고 섹션별 퀴즈와 마지막 실전 연습을 위한 모의 시험까지 있어 좋다. 개인적으로 추천하는 강의이다(단 Udemy쪽 강의가 가격이 싸진 않으므로 첫 가입 혜택 등 이벤트를 이용하자. 큰 할인을 받을 수 있다).
점수는 최대가 1,000점이고, 720점이 합격 기준이다. 나의 결과는 789였다. 준비기간이 더 길었으면 좋았을뻔했다.
시험은 온라인 화상을 통해 응시했고, 응시 준비에 들어가면 대기열을 기다린 후 외국인 감독관이 체크인 점검을 하고, 통과하면 시험을 볼 수 있다. 대기열이 거의 1시간을 넘어가 조금 불편했던 느낌말고는 순조로웠다고 본다.
결과는 credly 메일을 통해 온다. 오전에 응시하고 당일 저녁에 왔다. 생각보다 바로 나오진 않으므로 약간의 인내심이 필요할 수 있다.
계정을 등록할 때 한국으로 설정했다면, 시험도 한글로 나온다. 다만 한글이 구글 번역 수준이라 영문 번역본을 보는게 더 이해가 쉽다. 시험프로그램 상에 문제마다 원문 팝업 기능을 제공해서 한글 번역본이 나옴에도 불구하고 원문으로 봤다.
개인적으로 추천하지만 애초에 원문을 선택하는게 낫고, 이에 따라 강의도 영문으로 듣는게 훨씬 낫다. 실제 시험 문제와 강의에서 들은 용어들이 더 잘 연결되어 생각날 것이다.
강의 모의 시험과 비교하자면 체감상 반은 아는 문제, 반은 생소한 문제로 기억한다. 시험프로그램이 나중에 다시 풀 수 있도록 체크 기능을 제공하는데, 거의 절반은 체크했다가 다시 돌아와서 보았다. 준비 기간이 짧아 더 헷갈렸던 점도 있다.
대부분의 문제는 특정 상황에서 어떤 보기가 AWS 서비스를 적절하게 사용하는 보기인지 고르는 문제 또는 어떤 보기가 가장 권장하지 않는 보기인지 고르는 문제의 형태이다. 물론 가능한 보기를 모두 고르는 다중 선택도 있다.
이미 시험을 본 입장에서 출제자의 의도를 한마디로 정리하자면 다음과 같다.
최대한 서버리스를 지향한다.
직접 무언가를 하려고 하지말고 AWS 서비스를 사용하라는 뜻이라고 생각한다. 온프레미스보다는 클라우드를, 직접 관리형 인스턴스보다는 AWS 관리형 서버리스 인스턴스를, 저레벨 서비스보다는 고레벨 서비스를 지향하는 것으로 보인다.
물론 온프레미스를 사용하더라도 AWS의 일부 서비스와 연결할 수 있는 옵션을 제공하긴 한다. 하지만 문제에서 이를 권장하는 부분은 찾을 수 없었다. 아예 의도가 느껴지지 않는다고나 할까?
예를 들어 인스턴스에서 실행 중인 애플리케이션을 복제하기 위해서 애플리케이션을 하나 더 띄울지 인스턴스 자체를 복제할지 AWS에 물어본다면, 당연하게도 애플리케이션을 실행하는 인스턴스의 스냅샷을 하나 더 띄우라고 할 것이다(Auto-scaling Group과 같은 기능으로 말이다). 문제를 어렵게 한다고 취지에 맞지않는 문제를 내진 않는다.
이 시험으로 AWS 클라우드 서비스를 이용하여 나의 서비스를 배포/관리할 때, 서비스의 종류와 규모에 따라 어떤 AWS 서비스를 사용해야하는지 알 수 있어 좋다. 다만 Developer 수준임에도 서비스의 종류가 방대하여 실제로 설계하여 구축해보지 않으면 몸으로 깨닫기 어려워보인다. 미니 프로젝트로 실습을 반드시 해야할 것이고, 시험 후의 복습도 많이 도움이 될 것이다.
나는 이 시험을 준비하며 공부내용들을 따로 메모해놓았고, 이를 다시 한번 정리하여 포스팅할 예정이다. 합격 후 가물가물한 나의 기억을 되살릴 수 있어 좋을 것 같고, 이 시험을 준비하는 다른 개발자에게도 도움이 될 것이다.