DevOps 인턴 면접

정지원·2021년 2월 8일
5

인턴이야기

목록 보기
1/2

내가 다니는 학교는 지역의 기업(스타트업, 중소기업, 공기업)과 연계하여 학생들에게 인턴십 기회를 제공한다. 방학 중에도 가능하고 학기 중에도 가능한데, 가장 좋은 점은 학점을 받으면서 실무 경험을 쌓을 수 있다는 것이다. 군 복무시절, 개발병으로 근무하며 경험의 중요성을 일찌감치 깨달았기 때문에 할 수 있다면 굉장히 좋은 기회일 것이라 생각했다.

인턴십의 종류에 따라 다른데, 내가 신청한 인턴십은 무려 18학점.. 학기 중에 18학점 들으려면 꽤 바쁜데 이걸 준다니 ㅠ 심지어 내가 속한 과는 학과내규에 의해 첫 번째 인턴십에 한하여 전공으로 인정해준다.. (사실 나는 미리 알고 4학년 1학기 인턴십을 위해 존버타고 있었다. 😎)

전공 18학점에 실무경험이라니 미친거아니냐

기업 리스트가 뜨자마자 일단 직무부터 검색하였다. 작년 여름쯤 백엔드 -> 데브옵스를 목표로 하기로 결정했었고(좀 일찍 정하지) 해당 키워드로 검색하니 2개 밖에 나오지 않았다.. 심지어 한 회사의 비슷한듯 다른 두 가지 직무였다.. 하지만 정말 다행이었고 오히려 행운이었는데, 내가 가장 가고 싶던 회사 중 하나 + a였기 때문이다!(+a는 비밀) 매년 기업이 바뀌지만 항상 or 주기적으로 인턴을 뽑는 기업들이 있었고, 그 중 개발 문화가 잘 정착되어 있거나 배울 점이 많은 기업은 소문이 나기 때문에 기업 리스트가 올라오기도 전부터 노리고(?) 있었다.

SIA의 백엔드 개발자 인턴으로 지원

지원 기간은 1월 28일까지였다. 그 당시 온라인 인턴십을 진행하고 있었고 한창 기능 구현에 바빠 잠도 제대로 못 자다가 마지막날 마감을 1분도 안 남기고 극적으로 제출했다...! 마감 3분 전, 자소서를 검토하다가 무조건 고쳐야하는 오류를 발견해서 '이렇게 내면 무조건 떨어진다'는 생각에 허겁지겁 심장이랑 손 떨려가며 고쳤던 것 같다.

그리고 4일 뒤, 포트폴리오를 요청받았다. 난 취준도 해본적 없고, 포트폴리오를 만들 계획만 있었지 만들어 놓은 것은 없었기 때문에 순간 당황했다. 하지만 언젠간 제대로 하나 만들어야겠다고 생각했기 때문에 이번 기회에 볼만하게 하나 만들기로 했다. 웹으로 만들 생각이었는데 당장 시간이 없었기에 새벽에 github에서 react로 만든 깔끔한 템플릿을 가져와 내용이랑 사진, 약간의 디자인만 수정하여 호다닥 배포까지 한 후 링크를 제출했다.

https://jivvon.github.io/portfolio/

다음날, 운이 좋게도 데브옵스 직무를 제안받았고, 면접을 진행하기로 하였다.

면접 준비

여유가 없어서 OS와 네트워크, 자료구조, 알고리즘, 디자인 패턴 등 기본적인 CS는 훑어보기만 했다. 그리고 포트폴리오에 적은 경험과 프로젝트를 중심으로, 특히 인프라나 아키텍처 부분을 중심으로 준비하였다.

  • aws - ec2, route53, dynamoDB, API Gateway, CloudFront, S3, Lambda, VPC, IAM, SQS 등 사용해본 것과 개념만 공부하고 도입하려 했던 것들 구분해서.
  • 아키텍처 - Redis(캐시), RabbitMQ(메시지 큐), Nginx(리버스 프록시), Gunicorn(WSGI 서버)
    • Redis vs Memcached : 자료구조 Set 이용 (add, find 하는데 O(1)밖에 안 걸리고 중복도 안 되니까 redis 사용)
    • Redis 있는데 굳이 RabbitMQ? : redis는 Dilivery Guarantee를 지원하지 않기 때문에 직접 구현할 수밖에 없었다. 제한된 시간에 새로운 기술을 학습하고 프로젝트에 적용해야 했으므로 예제가 잘 나와있는 RabbitMQ를 사용하였다.
    • PostgreSQL 사용한 이유? : 이미지의 정보가 들어간 단순한 모델 하나만 저장하면 되어서 뭐든 상관 없었다. 팀원들이 익숙한 RDBMS 중 오픈소스인 Postgres로 선정하였다. 지금 생각해보면 redis와 같이 사용하기 때문에 key value 형태의 NoSQL을 선택하는 것이 더 편했을 것 같다.
  • 모델 서빙? : 서빙 API 모듈(torchserve, tensorflow serving)을 사용하지 않고 컨테이너를 띄워 Message Queue에서 job을 가져가서 처리하도록 구현하였다.

면접(기술면접)

면접 끝

다음 날, 면접 합격 소식과 함께 자세한 내용은 메일로 전달해주신다는 전화가 왔다. 어찌어찌 마무리하여 합격하긴 했지만 절대 면접이 완벽하지 않았다. 다음번엔 좀 더 CS를 탄탄하게, 아는 내용이라 생각해서 넘어가지 말고 깔끔하게 설명할 수 있도록 연습해야겠다.

인턴 전까지 한 달 정도 남았다. 짧은 기간동안 많이 성장하려면 미리 준비 좀 해야할 것 같다.

준비하자

  1. 쿠버네티스 학습 + 프로젝트에 적용
  2. java - junit 사용해서 유닛 테스트에 익숙해지자. (테스트 하려는데 어차피 언젠가는 해야 할 자바로..)
  3. 가능하다면 테라폼도 한번 써보고..?
  4. 또 더 가능하다면 기존 프로젝트 서버리스로 lambda, sqs, s3, dynamoDB등 사용해서 aws에 올려보자

2개의 댓글

comment-user-thumbnail
2021년 2월 9일

1학기 화이팅!

1개의 답글