TOPIC/General

CKAD 시험 후기

H-Y-E-N 2024. 3. 4. 18:03

안녕하세요. HYEN입니다.

오랜만에 블로그에 글을 적는 것 같은데요. 😂

그동안 CKAD 시험을 준비하느라 블로그를 쓸 시간이 없었다는 핑계를 대며,, 시험 후기를 적어 보도록 하겠습니다. 


Contents

     

    1. CKAD (Certified Kubernetes Application Developer)란? 

    사실 CKAD가 무엇인지에 대해서는 이미 많은 블로그에서 정리를 잘 해 놓았기 때문에 굳이 정리하지 않으려고 하다가 그래도 해야 하지 않나 싶어서 정리해 보았습니다. (●'◡'●)

     

    Linux Foundation 홈페이지에는 CKAD에 대해 다음과 같의 설명하고 있습니다. 

    The Certified Kubernetes Application Developer (CKAD) exam certifies that candidates can design, build and deploy cloud-native applications for Kubernetes. 

     

    즉, CKAD는 Kubernetes를 위한 클라우드 네이티브 application을 설계하고 빌드하고 배포할 수 있는 능력이 있는지에 대해 검증하는 시험이라고 볼 수 있습니다. 

     

    현재 자격증의 유효 기간은 취득 후 36개월이지만 2024년 4월 1일부터 24개월로 변경되기 때문에, 혹시라도 시험 계획이 있으신 분들은 4월 1일 이전에 시험을 보시는 것을 권장드립니다. 

    자세한 내용은 링크 참고 부탁드립니다. (https://training.linuxfoundation.org/certification-policy-change-2024/)

     

    2. CKAD 시험 결제 및 예약 + Killer shell 

    사실 작년에 CKA를 이미 취득한 상태라 시험 결제 및 예약에 큰 문제는 없었으나, 그래도 혹시나 하는 마음에 정리를 해 보았습니다. 

     

    CKAD는 $395, 한화로 53만 5700원(글 작성일 기준)이라는 많은 비용이 드는 시험입니다. 

    2번의 기회를 주기는 하지만 그래도 여전히 큰 돈이죠. 🫠

     

    저는 작년 11월 경 50% 할인 쿠폰을 사용해서 미리 결제를 해 두었기 때문에 $197.50에 결제하였지만 그래도 여전히 비싸긴 합니다. ㅠ 

     

    매년 11월 Cyber Monday에 CKA나 CKAD 같은 시험에 대한 할인 voucher가 제공되고 결제 후 1년 이내에만 시험을 보면 되기  때문에 이때를 노리시는 것도 그나마 싸게 결제할 수 있는 방법입니다. 

    물론 이때 말고도 거의 상시 25~30% voucher는 존재하기 때문에 구글링을 통해서 voucher를 확인하시길 바랍니다. 

     

    결제를 하고 난 후, My Portal에 접속하시면 하기와 같은 화면이 나오는데요, 

    저는 이미 시험을 본 상태라 [View Certificate]이라고 표시되지만, 오른쪽의 파란색 버튼을 클릭하면 시험을 응시하기 위한 단계를 안내하는 페이지로 리다이렉트 됩니다. 

     

     

    각 단계별로 초록색 버튼이 될 수 있도록 안내되는 사항을 준수하시어 설정 또는 스케줄링을 완료하시면 시험 예약은 끝입니다. 

     

    Killer Shell은 CKAD 시험을 결제하게 되면 주는 시험입니다.

    이름부터 지독해 보이는데요.

    시험과 똑같은 환경을 미리 체험할 수 있는, 시험보다 난이도가 있는 모의시험이라고 생각하시면 됩니다. 

     

    3. CKAD 시험 준비 

    시험 준비는 모두의 바이블이죠.

    Udemy에 있는 "Kubernetes Certified Application Developer (CKAD) with Tests" 를 완강했습니다. 

     

    CKA도 "Certified Kubernetes Administrator (CKA) with Practice Tests" ← 이 강의를 다 듣고 시험을 응시했습니다. 

     

    Section 별로 명확하게 분리되어 있고 내용이 매우 알차기 때문에,  저는 단순히 시험 응시를 목적으로 이 강의를 수강했다기보다 Kubernetes에 대해 기초적인 지식을 전체적으로 정리하기 위한 목적으로 수강했습니다. 

     

    CKA와 겹치는 부분도 있기는 하지만 기본적으로 다루고 있는 범위가 완전히 겹치지는 않기 때문에 CKAD 강의도 다시 한번 수강했습니다. 

     

    CKA가 Kubernetes의 전반적인 부분을 다루고 있다면 CKAD는 그보다 좀 더 딥하게 일부를 본다는 느낌이 강했습니다. 

    또한 Application Developer가 갖춰야 하는 지식을 검증하는 시험답게 Docker나 Helm에 대해서도 다루고 있어서 저는 CKA보다 좀 더 어렵다는 생각이 들었습니다. (그렇다고 CKA보다 CKAD가 더 어렵냐? 하면 또 그것은 아닙니다.)

     

    정리하자면,

    CKA는 Kubernetes의 전반적인 요소들을 다루고 있어서 공부해야 할 범위가 넓어 어렵고, CKAD는 범위는 CKA보다 좁으나 Docker나 Helm 등 Kubernetes와 떼려야 뗄 수 없는 다른 tool까지 시험 범위에 포함되어 어렵습니다. (˘・_・˘) 

     

    Udemy 강의 + Section별 Kode Kloud 문제 풀이 + Mock Exam까지 끝낸 후 저는 시험 하루, 이틀 전에 Killer Shell의 문제를 활성화하여 마지막으로 시험에 대한 감을 잡을 수 있도록 했습니다.

     

    CKAD 시험 결제 후 제공되는 Killer Shell 문제는 2개의 Session이 제공되며 각각 36시간 동안 활성화 되어 있습니다.

    Session은 2개가 제공되지만 문제는 동일합니다. 

     

    36시간 동안은 몇 번이고 시험을 응시할 수 있으며, 해당 환경은 시험과 동일합니다. 

     

     

    저는 CKA 시험을 응시했을 때 한 Session을 활성화하지 않아서 아직도 Not Activated 상태로 하나가 존재하는데요.

    (CKAD는 시간 계산을 잘못해서 두 개의 Session을 활성화 했습니다. 36시간은 1일하고 12시간인데 3일로 생각해서.. 🫠)

    활성화 되지 않은 simulator을 클릭하면 하단에 Activate Session이라는 빨간 박스가 있고, 그걸 누르게 되면 그때부터 36시간 동안 Session이 활성화 됩니다. 

     

    시험과 환경이 동일하기 때문에 Killer Shell을 통해 해당 환경에 적응할 수 있도록 연습하는 것을 권장드립니다. 

    사실 Killer Shell의 문제는 반만 맞아도 시험에 합격하는데 전혀 문제가 없다고 할 정도로 난이도가 높습니다. 

    따라서 편한 마음으로 주어진 문제 중 반만 맞추겠다라는 마음으로 응시하셔도 된다고 생각합니다.

     

    단, 해설이 제공되기 때문에 시험을 본 후에 꼭 오답을 체크하시길 바라며, 

    저는 못 풀었던 문제까지 다 풀 수 있을 만큼 Killer Shell Session을 활용한 후에 시험에 응시하였습니다. 

     

    마지막으로, 

    노트북의 경우 저는 Surface Laptop으로 응시해서 화면이 매우 작았습니다.

    노트북 화면은 거거익선입니다! 무조건 큰 노트북으로 응시하시길 바랍니다. 

     

    4. CKAD 시험 응시 중 주의 사항

    저는 CKA나 CKAD 모두 시험 보다는 시험을 보기 전 체크인 과정이 더 힘들고 진이 빠졌던 것 같습니다. 

     

    시험 전 시험 환경 체크 과정이 굉장히 빡빡하게 진행되기 때문에 체크인 시간이 되면 바로 접속하시는 것을 추천드립니다.  (저도 이 30분을 다 쓸 줄 몰랐으나, CKA, CKAD 모두 거의 30분을 다 사용했습니다.)

     

    처음에 네트워크 및 마이크 등에 대한 환경 체크를 진행하게 되는데요, 저는 회사 와이파이를 썼음에도 네트워크 품질이 시험을 볼 정도로 좋지 않다는 결과를 받아서 ☠️ x 100000000 결국 핫스팟으로 진행했습니다. 

     

    체크인 과정과 시험 감독을 한 proctor가 진행하며 proctor와는 대화가 아닌 채팅으로 의사소통하게 됩니다. 

    생각보다 요구하는 사항들이 많기 때문에 최대한 책상에 아무것도 없고, private 한 공간에서 시험을 응시하는 것이 좋습니다.

     

    저 같은 경우, 천장을 보여달라고 해서 보여줬더니 비상구 사인을 다시 보여달라고 하면서 뭐냐고 물어보기도 하고, 

    시험을 보는 회의실에 있던 TV 모니터가 계속 꺼져 있다는 것을 증명하라고 해서 TV 모니터의 코드를 뽑기까지 했습니다. 🙃

     

    음료는 투명한 컵에 담긴 무색의 액체만 반입 가능하며 그 외에는 예외 없이 금지입니다. 

    카메라를 통해 책상 위, 아래, 천장 등 모든 곳을 보여주어야 하기 때문에 다시 한번 넉넉하게 체크인을 진행하시기를 권장드립니다. 

     

    여권으로 본인 인증을 했는데, 본인 인증을 하는 과정에서 여권 사진을 업로드해야 합니다.

    저는 처음에 핸드폰으로 여권 사진을 찍어서 본인 인증을 하기 위해 제공되는 QR 코드를 찍어서 여권 사진을 찍었는데요.

    뭐가 문제인지 업로드가 너무 오래 걸려서 그냥 노트북으로 사진 찍기를 눌러서 본인 인증을 진행했습니다. 

     

    이렇게 체크인 과정이 끝이 나면 바로 시험이 진행됩니다. 

    사실 체크인 과정에서 너무 진이 빠지다보니 저는 두 번의 시험 모두 시험 중에는 그렇게 떨리지 않았던 것 같습니다. 

     

    5. CKAD 시험 출제 내용

    사실 저는 Custom Resource Definition이나 Admission Controller가 출제 범위에 포함되어 있어 상당히 걱정을 많이 했었습니다.

     

    Udemy 강의를 들을 때에도 해당 부분은 처음 접하는 내용이라 집중해서 듣고 Kode Kloud 문제도 여러 번 풀었으나 아무래도 익숙치 않은 내용이라 나오지 않기만을 바랐는데,, 사실 후기를 찾아보니 아직까지 해당 부분과 관련된 문제가 나온 적은 없는 것 같습니다. 

     

    기억 나는 대로 시험 출제 내용을 적어보자면 총 16문제가 나왔고 문제는 하기와 같습니다. 

    1. Nginx ENV 등록하고 port expose
    2. Docker image build하고 OCI format으로 export하기 (tar 파일로)
    3. Canary Deployment
    4. Persistent Volume, Persistent Volume Claim 생성하여 Bound 확인
    5. 배포되어 있는 Network Policy 수정하지 않고 주어진 pod간만 통신하도록 Service랑 Deployment yaml file 수정 
    6. Deployement와 연결된 Service Name 수정하는 거
    7. container 수준에서 Security Context 추가 
    8. Namespace limit 확인하여 Namespace에 할당된 memory limit의 반을 Deployment 내 pod별 limit으로 지정 + memory request 지정 
    9. CronJob 생성
    10. Deprecated된 거 버전 변경
    11. Secret 생성한 후 Environment Variables 형태로 pod 내 container 단에 정의 
    12. Readiness Probe 생성
    13. rolling update 관련 설정 변경 및 image 버전 변경한 후 이전 버전으로 rollback 진행 
    14. Logging 관련 문제 

    시험이 끝난 후에 생각나는 것을 적었다 보니 두 문제 정도는 기억이 잘 나지 않는데 시험 합/불에 영향을 줄 만한 어려운 문제는 아니었던 것으로 기억합니다.

     

    2, 3이 사실 저는 제일 까다로웠고 이 외에는 크게 문제가 없었습니다. 

     

    2는 정말 보자마자 멘붕이었는데요. 

    image build까지는 크게 문제가 없었으나 OCI Format? tar file? 이라는 생각이 들면서 일단 flag를 걸어두고 다음 문제를 풀러 갔던 기억이 납니다. 시험을 본 후에 명령어를 찾아보니 docker save -o {tar file 이름} image:tag를 했어야 했던 것 같습니다. 🥹

     

    3은 Canary Deployment 자체를 어떻게 하는 것인지 이론적으로만 생각하고 있다가 직접 하라고 하니까 당황했었는데요. 그렇기 때문에 이 부분도 빠짐 없이 꼼꼼하게 공부하고 가시길 바랍니다. 

     

    한 가지 주의할 점은, 제가 Killer Shell 문제를 풀 때엔 제공되는 yaml file을 백업 없이 수정하면 오류가 났을 때 rollback하기 어려울 것 같아 문제 번호.yaml 과 같은 식으로 백업 파일을 생성한 후에 그 백업 파일을 수정하는 방식을 택했습니다. 수정한 백업 파일로 apply가 잘 되면 그 후에 cp 명령어로 제공되는 파일을 덮어쓰기 하는 식이었는데요. 그러다 보니까, apply가 성공하면 신나서 다음 문제로 넘어가서 cp 명령어를 하지 않을 때도 있었습니다.

     

    처음에 문제를 풀었을 때 생각보다 점수가 낮게 나와 놀랐는데 이 이유가 모두 위에 적은 방식으로 문제를 풀었기 때문이었습니다. 그래서 시험 중에는 백업 파일을 만들고, 제공된 yaml 파일을 수정하였습니다. 

     

    어찌보면 당연한 내용이기는 하지만, 맞은 문제도 이 때문에 틀리게 채점이 될 수 있기 때문에 혹시나 하는 마음에 적어 보았습니다. 

     


    저는 최종적으로 100점 만점에 91점으로 시험에 합격하였습니다. 

     

    여러 일이 겹쳐서 걱정이 많았던 시험이지만 그래도 결과가 좋아서 다행이라는 생각을 하며, 이번 글을 마무리 하도록 하겠습니다. 

     

     

    728x90
    320x100
    SMALL

    'TOPIC > General' 카테고리의 다른 글

    #01 Proxy(프록시) 서버란?  (0) 2024.07.31
    CDN(Content Delivery Network)란?  (0) 2024.07.01
    [경영정보시각화능력] 자격증 소개  (0) 2024.03.20
    SSL/TLS 알아 보기  (1) 2024.01.05