슬리드 팀에서의 4개월의 인턴십을 마치고_인턴 회고록

Slid
12 min readDec 31, 2021

--

안녕하세요! SLID 백엔드 및 DevOps Hacker로 인턴십을 진행한 Haley 입니다. 지난 4개월 간 제가 어떤 업무를 해왔는지 회고를 해보려고 합니다. 편하게 읽어주세요 :)

1. 입사 계기

- 지원 동기

사실 제가 박정현 대표님(Junghyun)을 만난 것은 우연에 가깝습니다. 신촌 연합 IT 창업동아리에서 해커톤을 진행했었는데 우연히 우리 조가 시간이 남아 해커톤 멘토로 참여하신 Junghyun과 대화할 수 있는 기회가 있었습니다. Junghyun의 이런저런 이야기를 듣다보니 Junghyun이 굉장히 넓은 세계를 경험하셨다고 느꼈고 그런 Junghyun이 하시고 있는 사업이 궁금해졌습니다 ㅎㅎ

그로부터 일주일 후에, Junghyun이 개발자 모집 공고를 올리셨고, 아직 학기가 2학기가 남았고, 졸업 프로젝트로 휴학을 할 수 없는 상황이었던 저는 정규직으로 지원하기 부담스러웠습니다. 많은 고민 끝에 말이라도 해보자는 마음으로, 파트타임 인턴으로 참여할 수 있겠냐고 제안을 드렸습니다.

- Coffee Chat

Junghyun과 커피와 함께 간단한 이야기를 나누는 시간이었는데 그렇게 부담스럽지 않았고, 그냥 제 최근 관심 분야 회사에서 요구하는 부분과 일치하는 지를 확인하는 것 같았습니다.

- 면접 (feat. 4시간+영어)

이후 면접 일정이 잡혔습니다! 백엔드 개발자가 외국인이라는 이야기를 미리 들었기 때문에, 영어 면접인 것을 감안을 하고 갔지만 영어보다 면접의 난이도가.. 제 기준 가장 극악이었습니다ㅠㅠ

  • Resume + Github

면접 화면에서 Github를 같이 들어가서 코드를 함께 보는 시간이 있었습니다. 정말 부끄러웠지만 그래도 직접 작업했던 내용이었기 때문에 대답하기에 어렵지는 않았던 것 같아요. 주로 특정 기능을 어떻게 구현했는지, 왜 CBV를 사용했는지 ( SLID에 들어와보니 FBV를 사용하고 있었습니다), 특정 라이브러리나 모듈은 무엇을 사용했는지 등등을 아주 꼼꼼히 보셨습니다. 제가 기능을 구현했기 때문에 쉽게 대답할 수 있었지만 만약에 버스를 탄 프로젝트거나 단순 클론 프로젝트라면 대답을 못했을 듯 하네요.

  • 웹 개발 지식

쿠키, 세션의 정의, 사용자가 사이트에 접속하며 이루어지는 과정, http와 https, Rdbms와 nosql, 서버사이드 랜더링 등등 웹 개발자가 당연히 알아야 하는 기본 소양 질문을 많이 하셨습니다. 그런데 저는 공부가 아예 되어있지 않은 상황이었고, 경험해본 것 위주로만 대답을 드렸습니다. (여기서 탈락 할 줄 알았어요..)

  • 문제에 대한 해결 방안 제시

정기 결제를 어떻게 구현할 것인가에 대한 질문을 받았고 이에 대한 대답을 했습니다. 우선 제가 django의 background tasks 모듈을 사용해 본 경험이 있기 때문에 이 모듈을 사용하여 주기적으로 결제 요청을 하겠다고 대답을 드리자 꼬리 질문이 계속 나왔습니다.

- 날짜는 어떻게 계산할 것이냐 ( 예 2월은 30일 31일이 없는데 이때 결제한 사람들은 2월에 언제 결제 할 것인지)

- 모델(DB) 에는 어떤 필드가 추가 되어야 할까

- 만약에 결제가 작동하지 않으면 어떻게 tracking 할 것이냐 등등

하지만 압박 면접 같은 느낌은 아니었고 같이 토의하는 느낌이 강해서 편하게 대답할 수 있었던 것 같아요.

- 합격

영어 면접이기도 하고 너무 오랜 시간 면접을 보다보니 무슨 말을 했는지도 잘 기억이 안나는 상태에서 면접이 끝났습니다. 하지만 웹 개발 지식에서 대답을 못한 게 너무 크리티컬 했다고 생각해서 불합격되어도 담담히 받아드릴 준비로 기다리고 있었습니다.
그리고 며칠 뒤, !합격했다는 메일!과 함께 면접 피드백이 함께 왔습니다. 면접을 보면 영문도 모르는 채로 낙담하기 쉬운데 SLID는 면접 피드백을 주는 게 지원자를 향한 애정이 느껴졌습니다 ㅎㅎ

반겨주었던 제 명함과 복지카드 그리고 mac pro 16인치ㅎㅎ

2. 월 별 인턴일지

- 9월

  • ERD, AWS architecture diagram 정리

SLID에 들어와서 처음 맡은 업무였습니다. 당시 SLID 는 ERD 가 업데이트가 오랜 기간동안 되지 않았고, 모델의 구조를 알려고 시작했다가 결국 ERD 를 새로 그렸습니다. 이와 더불어, AWS 의 architecture 가 어떻게 되어있는지 공부하면서 architecture diagram 도 그렸고 같은 백엔드 Hacker 파트인 동료 Adriel의 도움으로 이때 AWS 의 전체적인 구조를 배울 수 있었습니다.

+) 참고로 AWS architecture diagram은 Cloud Mapper 라는 툴이 있어서 굳이 안그려도 알 수 있어요 (당시에는 몰랐음)

  • back office issue 해결

9월에는 Adriel의 업무를 함께 하며 업무를 파악하는 게 대부분이었습니다.하지만 back office issue는 당시 Adriel이 다른 업무가 있었고, 급한 issue였기 때문에 제가 맡게 되었습니다. 문제는 django admin page 에서 검색이 안되거나, 상세 페이지가 안들어가지거나, 리스트가 보여지지 않는 문제들이었고, test server에서 하나씩 테스트해가며 고칠 수 있었습니다.

  • test tool research 및 Pytest 도입

DevOps part로 SLID에 온 것이기 때문에 백엔드 업무를 하면서도 계속 Test tool을 리서치하였습니다. 이때 제가 찾은 test tool은 unit test 와 pytest 였는데 이 중 함수형으로 간단하게 test code 작성이 가능한 pytest 를 우리의 testing tool로 선정하였습니다. 이후 개발 프로세스가 TDD로 변경되었고 쭉 Pytest 는 유용하게 사용되었습니다.

- 10월

  • 새로운 Login API 설계 및 개발

10 월부터 본격적인 Sprint 에 참여하며 로그인 api 개선 업무에 참여하였습니다. SLID 에는 원래 로그인을 하지 않아도 슬리드 기능을 사용할 수 있는 Temp user 가 있었는데. Temp user 를 없애고 기존의 temp user의 db를 로그인 하면 로그인 한 user의 db 로 옮기는 작업이었습니다. 이를 위해 user의 상태를 나누고, 각 상태 별로 다르게 대응하는 api를 제작하였습니다.

- 새로운 기기에서 회원 가입하는 사용자

- 새로운 기기에서 로그인하는 사용자

- Temp user JWT를 가지고 회원가입 하는 사용자

- Temp user JWT를 가지고 로그인 하는 사용자

그리고 각 경우 별로 edge case가 없는지, 프론트엔드의 legacy 코드에서도 문제가 없을지 등을 꼼꼼히 체크하였습니다.

제가 생각하는 SLID 의 장점은 개발자들이 모두 진심을 다해 고민한다는 것입니다. 특히 Adriel에게도 많이 느꼈지만, 제가 무언가를 설명하면 그걸 단순히 받아드리기 보단, 왜 그렇게 했는지, 그게 최선인지를 끊임없이 고민하여 항상 제 판단보다 더 나은 성취를 만들어낼 수 있었습니다ㅎㅎ

  • 새로운 기기를 사용하면 로그인이 자꾸 풀리는 이슈 해결

새로운 Login API 를 만들며 기존 JWT의 발급 방식의 문제를 알게 되었고 (Token이 새로 발급되며 이전의 Token이 만료되어 로그아웃이 되는 상황) 이 문제를 해결하기 위해 가지고 있는 Refresh Token 이 저장된 Refresh Token 과 일치한다면 Token을 재발급해주는 API를 만들어 해결하였습니다.

  • CI / CD tool research 및 도입

효과적인 배포를 위해서 많은 tool을 찾아보았고, 그 중 github PR 을 trigger로 설정할 수 있는 github Action을 사용하여 자동 test 를 돌릴 수 있도록 하였습니다.

  • Postman 도입 및 API document 정리

효과적인 API testing을 위하여 postman을 사용하자고 제안하였고 받아드려졌습니다. Postman에서 Collection을 설정하고 api를 정리하였으며, 프론트엔드 파트가 쉽게 확인할 수 있도록 각 응답코드 별 example을 저장해두었습니다. 이 후, postman만 api document로 활용하는데에는 한계가 있다고 느껴, notion의 새로운 페이지를 만들어 api document 를 정리하였습니다.

11월

  • Email Template 변경

AWS Lambda function을 이용하여 email을 전송할 수 있는 함수를 만들고 이 함수를 cognito의 email trigger 에 등록하여, 사용자가 email로 회원가입을 할 때 인증코드가 custom email로 갈 수 있도록 하는 함수를 만들었습니다.

  • login edge case 정리

SLID 는 AWS Cognito 기능을 사용하여 로그인 기능을 만들었는데, 이렇게 로그인을 할 때 우리가 만든 장고 서버에서 응답이 오는 것이 아닌 AWS에서 바로 응답을 해주니 문제를 예측하기 어려웠습니다. 따라서 저는 Cognito 공식 문서를 보며, 우리의 바뀐 login system에서 어떨때 어떤 에러코드가 발생하는 지, 그리고 각 에러 상황에서는 어떻게 대처해야 하는지 정리를 하였습니다.

정리를 하다보니 백엔드에서 제공해야하는 API 가 무엇인지 명확해질 뿐만이 아니라, 프론트엔드는 언제 어떤 상황에서 어떻게 서버와의 통신을 해야하는지, 그리고 어떤 페이지로 이동해야 하는지를 알 수 있었고, 디자인은 사용자 관점에서 어떻게 화면이 이어져야 자연스러울지를 설계할 수 있었습니다.

3. 회고..

- 적극적으로 수용하는 SLID 문화

저도 제가 파트타임 인턴으로 이렇게 많은 기여를 할 수 있을 것이라 생각하지 않았습니다. 하나의 스프린트도 온전히 완성할 수 있을까 싶었는데, 인턴 기간동안 세번의 스프린트 참여와, 틈틈히 backoffice issue해결이나 github action 도입 등을 해낼 수 있었습니다! 이렇게 파트타임 인턴이었던 제가 적극적으로 업무에 참여할 수 있었던 이유는 바로 적극적으로 수용하는 SLID의 문화 때문이라고 생각해요.

SLID에 처음 들어가면 팀 문화에 대해 설명을 해주시는데 그중 1번이 다른 사람은 개개인으로 존중하는 것입니다. 팀 문화에 따라, SLID 팀원들은 저를 한명의 프로로 인정해주고, 제가 하는 모든 일을 존중+수용해주셨기 때문에 더 두려움없이 일을 시작할 수 있었던 것 같아요. 만약 업무 지시를 받고 보고를 하고 허락을 받는 그런 시스템이었다면 이렇게 많은 일을 못했을 것입니다.

한가지 예를 더 들자면, 제가 postman을 사용하자고 제안을 했을 때, 바로 괜찮은 아이디어라고 인정을 해주셨고 제안을 한 저보다 백엔드 해커 Adriel이 더 열심히 사용하는 모습을 보며 제안을 하길 잘했다는 생각과 함께 다음번 제안도 더 두려움없이 할 수 있었습니다.ㅎㅎ

- 마무리

SLID 에서 근무하며 모르는 것 투성이인 근무 환경에서 정말 많이 배울 수 있었습니다. 처음에는 EC2와 RDS만 알던짧은 AWS 지식이었지만, 사용하는 AWS가 점점 많아지며 Cloud watch, lambda, S3, Cloud Front, IAM, Cognito 등등 수많은 aws의 기능을 사용해 볼 수 있었습니다. 그리고 Adriel의 덕에 너무 즐겁게 배웠던 이 경험은 제가 DevOps, 클라우드 개발자가 되기로 마음먹게 된 계기가 되었습니다. Sprint를 진행하며 실패도 하고 성공도 하며, 손에 셀 수 없을만큼 정말 많은 경험을 하였고 많이 배울 수 있었어요.

이 외에도 철저한 gitflow와 PR, 꼼꼼한 코드 리뷰 등은 지금까지 어영 부영했던 제 개발습관을 바로잡는 계기가 되었습니다. (SLID에서 근무를 하고, 우리 졸업프로젝트 깃을 보는데 그렇게 답답한 감정이 들더라구요..ㅎㅎ) 다시는 예전의 더러운 깃으로 못 돌아갈 것 같습니다. 함께 근무했던 Adriel에게 특히 많이 배웠는데, 변수명 하나도 함부로 짓지않는 Adriel을 보며 많은 반성과 깨달음을 얻었습니다. SLID에서 근무한 후 조금 더 차분한 개발자가 될 수 있었던 것 같아요.

이번 학기 학교와 SLID 인턴까지 정말 숨쉴틈 없이 달려왔던 것 같습니다. 4개월간 SLID에서 정말 많이 성장했고 많은 경험을 했으며 SLID와 함께한 4개월은 정말 알찼다고 말하고 싶네요..! 슬리드 짱.. 슬리드가 구글이 되는 그날까지!

영원히 제 기억속에 SL ID가 남아있을 것 같습니다.

제 이야기를 읽어주셔서 감사합니다 :D

Special Thanks to Adriel!

p.s. SLID와의 소소한 추억

계단 크루로 데뷔한 Haley
TM으로 승진
사진을 엄청 잘찍는 Justin
크리스마스 파티와 옴청난 선물들
갬블러 SOMI
제나랑 커플룩 >-<

그럼 정말로 끝! :D

--

--

Slid
Slid

Written by Slid

We empower lifelong learners by building a personal learning space. This is how 👉 https://slid.cc

No responses yet