2020 AWS Certified Developer — Associate 를 취득하기까지
2020년 03월 12일, AWS dev associate 시험을 봤습니다. 자격증에 대한 정보는 생각보다 많아서, 개인적으로 자격증을 공부해가면서 그리고 시험을 보면서 느꼈던 개인적인 생각을 공유해볼까 합니다.
자격증 취득을 고려하기까지
- 작년부터 회사에서 프런트엔드 업무로부터 백엔드 업무로 업무로드를 서서히 옮겨갔습니다. 다방면에 있어 여러 공부가 필요했지만, 그중에서도 많은 시간을 할애해야 했던 것은 AWS 였습니다.
- 처음에는 회사에서 이미 구축된 시스템에 익숙해지면서 업무에 적응해나갔습니다. 직접적으로 필요한 부분은 사수에게 설명을 듣고, 또 수시로 물어보면서 차츰차츰 익숙해져 갔습니다. 또 업무에 필요한 부분들은 동영상 강의나 AWS 백서를 읽어가며 주먹구구식으로 공부했습니다.
- 그러다 올해 1월 신년 계획을 세우면서 자격증 공부를 시작하기로 했습니다. 먼저는 업무와도 충분한 연관성이 있으면서도, 객관적인 결과물을 얻을 수 있고, 또 자기 계발에 동기 부여가 될 수 있기 때문이었습니다. ( + CTO님의 입김도 작용했습니다 )
자격증 준비
- 올해 1월 둘째 주부터 3월 둘째 주까지 약 2달을 준비기간으로 잡고 공부했습니다. 준비의 중심이 되었던 소스는 Udemy의 AWS Certified Developer Associate 2020 ( Stephane Maarek )의 강좌였습니다.
2가지 강의를 통해 공부했는데, 각각 개념 강의와 연습문제를 모아놓은 강좌였습니다. 개념 강의는 전반적으로 특정 서비스에 대한 개념 강의 + 마무리 퀴즈로 구성되어 있고, 강의 후반에는 시험 팁과 같은 정보들이 제공되는 식입니다. 연습문제 강좌는 4개의 시험과 1개의 Extra Test로 구성되어 있었고, 시험 후 해설지도 제공되는 식이었습니다.
강의는 특정 서비스에 대한 기본적인 설명과 시험에 나오는 부분들을 짚어주며 넘어갔습니다.
- 각각의 강좌를 2 회독하면서 공부했는데, 강의가 전부 영어로 진행되는 만큼 한글로 나만의 자습서를 만든다는 형식으로 공부했습니다. 문제풀이 강좌를 통해서는 틀린 부분이나 확실히 이해하지 못한 부분을 집중적으로 공부했습니다. 1회독 때에는 1주일에 2 강의씩 듣고, 2회독 때에는 속도가 붙어 3~4강을 들었던 것 같습니다. 주말에 한 강의씩, 평일에는 1~2강의를 쪼개서 들었던 것 같습니다. 그리고 이렇게 만든 자습서는 출퇴근시 틈틈히 읽었습니다.
- 보통 업무중에 마주쳤던 부분들은 조금 더 쉽게 넘어갈 수 있었는데, Cognito, Kinesis, CloudFormation, ElasticBeanstalk 등 생소했던 분야들은 AWS 공식문서를 읽으며 조금 더 공부했습니다.
시험 후기
- 3월 12일 시험을 신청했고, 수수료까지 포함해서 20만 원이 조금 안 되는 금액을 결제했습니다. 결제 직후, 신분증 이름과 시험 등록 이름 스펠링이 조금 다르다는 걸 발견해 시험 대행사와 이메일을 주고받기도 했습니다. 다행히도 시험장에는 별 탈 없이 입장할 수 있었습니다. ( 유효한 신분증 있고, 스펠링이 달라도 결제 카드와 소지한 카드 넘버가 일치하면, 무난하게 입장할 수 있는 듯 합니다. )
- 시험 입장 전에는 소지품 검사를 철저히 했습니다. 핸드폰을 포함한 소지품을 전부 개인 케비넷에 둔 후 시험장에 입장했습니다.
- 한국어 지문 제공 옵션을 넣어서 시험을 치렀는데, 번역된 지문은 아무래도 의미가 좀 와 닿지 않아서, 거의 대부분의 문제를 영어로 바꿔가며 체크했습니다. 그래도 확실히 연습문제 때, 영어 지문을 읽으면서 느꼈던 피로는 없었어서 정말 좋았습니다.
- 이렇게 준비하고 본시험은 전반적으로 평이했던 것 같습니다. 대부분의 문제들이 익숙했는데, 어떤 문제는 Udemy 강좌에서 그대로 나오기도 했고, 비슷한 뉘앙스로 질문하는 문제들이 많았습니다. 그렇지만, 강의에서 아예 다루지 않았던 ( 제가 못 알아들었던가..) 문제들도 있었던 것 같았습니다.
- 비슷한 부분을 물어보는 질문이 자주 나오는 것 같았습니다. ( 제가 그냥 틀린 문제였을 수도 있지만.. ) 저 같은 경우에는 CodeCommit과 Memory-DB 문제를 꽤 자주 보았습니다. 반면에 Elastic Beanstalk은 본 기억이 없는 것 같습니다. ( 체감상, 모든 서비스 분야에서 골고루 문제가 출제되는 것 같지는 않았습니다. )
공부 준비와 실제 시험
- 1 회독 때에는 ‘이 서비스가 어떤 개념이고 무슨 목표로 활용되는지 파악하겠다’를 염두에 두고 공부했고, 2 회독 때에는 각 서비스들의 구체적인 수치나 예외 케이스 등을 외운다는 생각으로 공부했던 것 같습니다.
- 그런데 실제 시험에서는 지엽적인 부분에서 내는 문제가 적었습니다. ( 제가 본시험만 이랬을 수도 있으나 ) 일단, ‘DynomoDB unit 수치 계산’, ‘maximum size, default set’ 등 수치적 내용? 등 수치를 물어보는 문제는 EC2 custom metric 문제 하나 본 것으로 기억합니다. 그렇지만, ‘클라이언트 캐시 무효화 전략’ 등 개념적인 부분에서는 어느 정도 문제가 나왔습니다.
- 오히려, 특정 목표를 실현하기 위해 어떤 서비스를 혹은 어떤 서비스들을 조합을 활용해야 하나.. 이런 문제가 많았고, 좀 더 까다로웠던 것 같았습니다.
- 당연한 얘기일 수 있지만, 만약 준비 시간이 한정되셨다면 전체적인 개념을 잡으시는데 더 집중하시길 추천합니다. 서비스 용도에 더 익숙해지시면, 서비스를 조합해 어떤 목표를 달성할 수 있는지 ( 아키텍처를 구성하는지 )에 대한 문제에 좀 더 확신을 가지실 수 있고 찍으실 수 있을 것 같습니다.
마무리
결과적으로는 자격증을 취득했습니다. 시험을 보고 이틀 뒤인 토요일에는 자세한 결과를 받아볼 수 있었습니다. 저는 다음과 같은 3가지 이유로 자격증 취득에 도전하시길 추천합니다.
1. AWS에서 보증하는 자격증을 받는다는 것이 좋습니다. 준비를 하는 도중에는 스스로가 공부해야 하는 뚜렷한 목표가 생겨서 좋았습니다. 물론 시험을 보고 나서는, 이력서에 추가할 수 있는 한 줄이 생겼다는 성취감이 컸습니다.
( 개인적으로는 ) AWS 컨퍼런스에서 자격증 취득자를 대상으로 하는 라운지를 본 적이 있는데, 이제 이런 시설에 들어가 볼 수 있겠다 싶어서 더 설렜습니다.
2. 실제 업무에도 이런저런 도움이 되었다는 점도 정말 좋았습니다. 시험을 준비하시면서 더 느끼시겠지만, 시험 질문들이 단순히 특정 서비스 기능을 묻는데 그치지 않습니다. 실제로 현업에서 부딪힐만한 이슈를 어떻게 AWS 서비스를 조합해 처리하는지 묻는 문제가 많은데, 이런 고민은 분명 현업에 ( 특히 AWS를 활용하는 회사라면 더더욱 ) 도움이 될 것입니다.
개인적으로 저는 시험을 준비하면서 여러 생각이 문득문득 들었었는데.
가령, 당시에는 그냥 넘어갔지만 ‘왜 사수가 dynamic port mapping을 강조했는지’ 이해가 되기도 했고. 또 ‘지금 구조에 xx 서비스를 도입할 수 있겠다.’ 혹은 ‘어떤 형식으로 아키텍처를 짤 수도 있겠다.’ 등이었습니다.
실제로도 자격증 공부를 하면서 SQS-SNS Fanout 구조나, ‘serverless’를 활용해 ( 미안 SAM.. ) 서버리스 IaC를 구현 및 도입하기도 했습니다.
3. 무엇보다도 자격증 취득을 가장 추천하는 점은 비전공자인 제가 전반적인 백엔드 그림을 그려가는데 큰 도움이 되었다고 느꼈기 때문입니다. 단순히 AWS 서비스에 대한 내용도 있지만, 이를 넘어선 보편적인 정보들도 많았 던 것 같았습니다. 가령 어떤 전략에 따라 배포를 할지, MS를 구성할 때 어떤 점을 고려해야 하는지, 디비 캐싱 전략, 이벤트 드리븐 구조 등 하나하나의 AWS 서비스, 그리고 이를 조합한 아키텍처 공부를 해나가며 조금은 시야가 넓어진 것 같습니다.