안녕하세요. 인프랩 데브옵스 인턴 포카입니다.

6주 동안 인프랩 데브옵스 팀으로써 일하면서 배운 것들 또는 경험한 것들에 대해 적어볼까 합니다.

인턴십 기간 동안의 목표와 고민

icandoit

인턴십을 시작하면서 가장 중요하게 생각했던 것은 ‘학교에서는 경험할 수 없는 것들을 경험하자‘와 ’내가 어떻게 해야 이 회사에 도움이 될 수 있을까‘라는 목표와 고민을 가지고 있었습니다.

지금 돌이켜보면 ‘학교에서는 경험할 수 없는 것을 경험하는’ 목표는 충분히 달성했다고 생각합니다.
하지만 ‘어떻게 해야 회사에 도움이 될 수 있을까’라는 고민에 대해서는 아직 확신이 들지 않았습니다.
내가 제대로 주어진 일을 한 게 맞는지, 아니면 오히려 일감을 늘린 게 아닌지에 대한 불안함이 시간이 지날수록 점점 커져 갔습니다. 회고록을 작성하고 있는 지금도 그 고민은 계속되는 것 같아요.

이 고민에 대한 답을 찾는 것이 올해의 주된 목표가 될 것 같습니다.

주요 업무 내용

제가 인턴으로 들어오고 진행하게 된 업무는 스팸 및 비속어 필터링 API 구축하기였습니다.

인프랩의 서비스인 인프런과 랠릿에는 블로그, 수강평, 자막 수정 제안 등 유저의 입력을 받아 서비스에 게시하는 기능이 다수 존재하는데요. 스팸성 게시물이 종종 발생하는 문제가 있었습니다. 그래서 이를 자동으로 필터링할 수 있는 솔루션을 구현하게 되었습니다.

diagram

해당 솔루션을 구현하기 위해

  • Python을 사용해 머신러닝 모델 구현
  • 스팸 확인 및 피드백을 위한 서버리스 함수 작성
  • Pulumi를 사용해 SNS, SQS, Lambda 등 인프라 구축

을 진행했습니다.

성취한 점과 어려웠던 점

성취한 점으로는 스팸 및 비속어 필터링 API를 구축하는 것이었습니다. 이를 구축하는 과정에서 각종 이슈들을 겪었고 해당 이슈들을 해결하는 과정에서 지금까지 공부해왔던 것들을 다시 상기할 수 있는 시간이었습니다.

예를 들어

  • SNS, SQS를 이어서 사용할 때 각 서비스에서 기본으로 제공하는 KMS 암호화 키인 alias/aws/sns, alias/aws/sqs를 적용했더니 SNS에서 SQS로 메시지가 전달되지 않는 문제

    • 서로 같은 Customer Managed Key를 사용하여 해결
  • ECS Task Definition에서 CPU 하드 리밋을 설정하는 대신 컨테이너의 CPU 리밋을 설정한 경험

    • 억지로 컨테이너 CPU 하드 리밋을 설정하기 위해 ulimits 파라미터를 사용하거나 등

등을 실제로 겪어 봤습니다.

이런 중요한 부분들에 대해 이전에는 주의 깊게 생각하지 않았지만 이번 인턴십을 통해 실질적으로 경험하고 해결해 나가는 과정에서 큰 성취감을 느꼈습니다.

wow

어려웠던 점은 사실상 모든 것이 처음이라는 것주어진 일에 대해 너무 자신만만하게 접근한 것이었습니다.

난생 처음해보는 머신러닝, 처음 사용해보는 Typescript로 작성된 Pulumi, 처음 경험하는 회사 생활,,, 인프랩에 와서 경험한 모든 것들이 새로웠습니다.

noreason

또한 처음 업무를 할당받았을 때 나름대로 근거없는 자신감이 있었고 실제로 “학교에서 파이썬으로 웹 API도 만들어봤고 문법도 쉬우니 금방 하겠지”라는 생각을 가지고 있었습니다.
하지만 실제로는 그렇지 않았고 이로 인해 일정 관리가 힘들어졌습니다. 제 생각보다 업무를 진행할 때 고려해야하는 부분이 많았고 이 부분들을 하나하나 신경쓰다보니 제가 생각했던 것보다 훨씬 더 많은 시간이 걸렸습니다.

배운 점과 성장한 점

now

인턴십을 진행하면서 가장 배우고 성장했다고 느끼는 부분은 문제(업무)에 대한 접근 방식 이라고 생각합니다.

기존에는 ‘문제 발생 -> 코드 작성 혹은 구글링’으로 문제를 빠르게 해결하기 위한 직관적이고 개별적인 방법을 선호했습니다. 성장한 이후의 프로세스는 ‘문제 발생 → 문제의 근본 원인 파악 → 문제 해결을 위한 다양한 방법 모색 → 내용 공유 → 가장 효과적인 방법 선택’ 하는 방식으로 진행하여 문제의 근본적인 원인을 파악하고 최적의 해결책을 찾아내는 방법으로 진행하게 됬습니다.
기존 프로세스보다는 조금 더 시간이 걸릴 수 있지만 장기적인 관점에서 보았을 땐 더욱 효과적인 해결책을 적용할 수 있어서 좋았던 것 같습니다.

앞으로의 계획

plan

인턴십이 끝난 후에는 이번 인턴십을 통해 얻은 지식과 경험들을 바탕으로 가능한 만큼 같은 학교 학생들에게 전염시킬 생각입니다. 올해 인턴을 나가지 않은 친구들, 아직 인턴을 경험해보지 못한 후배들에게 인프랩에서 무엇을 배우고, 어떻게 느꼈는지 등 제가 얼마나 값진 경험을 통해 얻은 성장을 함께 나누고자 합니다.

6주간 인턴으로 지내며

6주라는 시간이 너무나도 빠르게 지나간 것 같습니다. 그만큼 회사에 ’몰입했다‘라고 생각합니다.

덕분에 학교에서는 경험할 수 없는 값진 경험을 얻은 것 같습니다.
“인턴십을 위한 준비가 많이 부족하다”고 선비께서 계속 이야기하곤 하셨지만, 6주간 모두가 친절하게 도와주셔서 불편한 점은 없었습니다.
오히려 지금까지의 인프랩 DevOps 팀의 역사를 엿볼 수 있는 시간이었다고 생각합니다.

다시 한 번 모두 감사하고 올해 8월달에 정식으로 합류할 수 있으면 좋겠습니다!

긴 글 읽어주셔서 감사합니다 😊