코드프레소 백엔드 개발자 양성 과정
아마존 클라우드 공인 개발자 자격증
코로나 바이러스 확산으로 인해 학습과 업무에 차질이 많은 요즘, 집에 있는 시간을 이용해 AWS Certified Developer Associate 시험을 준비해 왔다. 올해 초에 코드프레소 교육생 동기들과 같이 공부하던 것을 프론트엔드 등 다른 주제를 다루다가 이제서야 마저 돌아오게 된 것이다. 어제 시험을 통과하고 따끈따근한 후기를 남긴다.
시험 개요
아마존 자격증 시험은 보통 클라우드 컴퓨팅 입문자나 현업 종사자들이 AWS에 관한 전문성을 증빙하기 위해 치룬다. 이미 아는 것을 확인하는 좋은 기회가 될 수도 있고, 미처 알지 못했던 기술을 보완하는 기회가 될 수도 있다.
관건은 학문적인 시험이 아니라 기술 자격증이라는 점이다. 그래서 아래 예제에서 다루듯, 가격, 성능 등 사업적 요소를 기술적 요소와 융합하여 총체적으로 적용할 줄 알아야 한다.
시험은 아래와 같은 종류와 경로로 나뉜다. 내가 응시한 단계는 중급에 해당하는 Developer Associate이다. 아마존 클라우드로 서비스를 개발하고 배포한 경험이 최소 일 년은 되는 종사자에게 적합한 난이도로 분류된다.
시험 형식은 조직이 이루고자 하는 목표나 맞닥뜨린 문제가 주어지면 그에 맞는 최적의 조언이나 적절한 코드, 명령문을 고르는 식이다. 그 외 형식은 다음과 같다.
- 총 문항 수 : 65 개
- 시험 시간 : 130 분 (영어가 모국어가 아닌 사람에 한해 30 분 연장 시간 미리 신청 가능)
- 형식 : 기본적으로 사지선다, 다섯 개 중 두 개나 세 개를 고르라는 문제도 등장
- 합격선 : 비공개, 비고정, 난이도와 통계적 분석을 이용하여 조정
시험 준비
시험 준비는 유데미에서 스테판 마렉(Stephane Maarek)이라는 강사의 온라인 강좌를 듣고 약 한 달간 진행했다. 유데미 강좌 중에 평가가 높아 선택했지만 시험을 치루고 돌이켜 보니 꼭 이걸 고집하지는 않을 것 같다. 대안책으로는 클라우드 구루, 아마존 공식 트레이닝, 리눅스 아카데미, 혹은 유데미에 등록된 다양한 강좌가 있다.
강사는 열정적이고 설명도 자세히 해주는 편이다. 개념을 설명하고 콘솔창에서 직접 시범을 보여주는 식으로 구성되어 있다. 가끔은 시험 범위에 속하지 않을 것도 설명하는데, 그런 내용은 선택적으로 듣도록 충분히 경고해 준다. 필수 요소만 들어도 강의를 모두 듣고 소화하고 암기하는 데 한 달 중 3 주가 넘게 걸렸다.
난 원래 뭐든지 손으로 쓰면서 공부하는데, 간략히 정리해도 아래와 같은 책자 형태로 72 쪽이 나올 정도로 양이 방대하다.
이전에 취득한 아마존 클라우드 공인 종사자(AWS Certified Cloud Practitioner) 단계에서 난이도가 급격히 상승한다고 느꼈다.
시험 난이도와 특징
이제 모의 고사의 문제를 예시로 실제 시험과 비교해본다.
앞서 언급했듯, 문제를 풀 땐 개발이나 배포가 주 내용이긴 하지만 같은 기능에서도 어떻게 하면 최저 비용으로 최고 효용을 얻어낼 수 있는지 실무적 뉘앙스까지 알아야 한다. 위 문제에서도 캐싱할 정보를 RDS나 DynamoDB에 저장해도 작동은 한다. 하지만 해당 기업은 애플리케이션의 (i) 지연 시간을 낮추는 (ii) 인메모리 캐시 서비스를 필요로 하니 답은 ElastiCache가 된다.
이 외에도 전 단계 시험에 비해 어려웠던 것은 호출부터 응답까지, 혹은 개발부터 배포까지 여러 서비스가 어떻게 연동되는지를 정확히 알아야 한다는 점이다. 예를 들어, 람다 함수의 로그를 남기기 위해서는 CloudWatch Events를 사용해야 하는지 S3를 사용해야 하는지나, DynamoDB 호출이 막히면 어떻게 해소해야 하는지 등의 문제가 있다. 위 필기에서와 같이 그림을 그려가며 도식화하면 서비스 간의 상호 작용을 이해하는 데 큰 도움이 된다. 인강도 이 점에서 유익했다.
혹시라도 위 강사의 모의 고사를 같이 구매하게 된다면 다음을 주의하자.
- 내 경험상 실제 시험과 형식이 조금 달랐다. 실제 시험에서는 상황을 설정하는 글이 위 모의 고사에서처럼 저렇게 길지 않고 보기가 이렇게까지 뻔하지 않다. 모의 고사가 훨씬 쉬우니 방심해선 안 된다.
- 이번 회차 시험과 모의 고사가 중점을 두는 내용이 매우 다르다고 느꼈다. 양이 방대해서 공부했는데 아예 출제되지도 않는 단원이 있는 건 어쩔 수 없는 것 같다.
- 코드로 서비스를 설정하기 위한 JSON 형태의 설정 파일이나 CLI 명령문을 직접 읽고 이해해야 하는 문제가 종종 나와 당황스러웠다. 그런 것은 실제 사용 경험에 비춰야만 풀 수 있는 것 같다. 하지만 코드프레소 과정 정도의 개발 경험이 있다면 모르는 코드나 헤더값이 나와도 침착하게 접근해 볼만은 하다.
- 같은 맥락에서, 강의 내 실습을 따라해 보는 게 이해에는 도움이 되지만, 출제되는 문제 상황을 커버하기에는 턱없이 부족하다. 따라 실습하려면 하되, 어차피 그대로 나오지 않기 때문에 하나하나 외우지는 않고 익히고 넘어가도 될 듯하다.
결과와 느낀 점
어쩌다 보니 결과는 합격이다. 준비를 열심히 한 건 사실이지만, 모두 마치고 합격창이 뜨는 게 믿기지 않을 정도로 까다로운 시험이었다.
자격증은 자격증일 뿐이다. 아직 개발 초보인 나에겐 이게 끝이 아니라 시작을 알리는 것이다. 흔히 개발자라고 하면 개발 언어를 사용하여 코딩만 할 것이라고 생각하기 쉽상인데, 이번 기회를 통해 배포, 유지 보수, 오류 해결, 최적화, 보안, 연동 등 웹 서비스의 큰 흐름을 익힐 수 있어서 좋았다.
이런 기회로 인도해 주시고 질문 받아주신 동훈 대표님께 감사하고, 앞으로도 자격에 걸맞는 실력을 갖추도록 공부해야겠다. 훗날 응시하실 분들도 건승을 빈다.