[ Intern ] 백엔드 개발자의 첫 시작, 인턴 생활 회고

Youngseo Lee·2023년 1월 27일
1

2022년 12월, 한 달간 진행한 인턴 생활에 대한 회고를 남긴다. 해당 포스팅에는 각 Sprint별 요약, Blocker들을 어떻게 해결했는지 등에 대해 기록할 예정이다.

담당했던 역할과 어떻게 수행했는지에 대해서는😼 Github 를 참고!

🎯 목차


About Internship 📣

회사

  • 회사 명 : 배리 (Vary)
  • 서비스 : 모바일 빌더 Saas (이메일, 웹사이트)
  • 홈페이지 : https://www.vary.one/

내용

  • 협업 기간 : 2022.12.12 ~ 2023.01.06
  • 참여 인원 : 프론트 2명, 백엔드 3명
  • 담당 업무 : 사내 Admin 페이지 개발

Sprint 01

Sprint1 에는 회사에 적응하고 각 개발 파트가 초기세팅을 했던 시간이었다. 또한, 팀의 가장 큰 Blocker 😐를 발견하기도 했다.

DAY 1 : 대표님과 첫 회의 및 Planning Meeting 1

출근해서 어떤 파트를 담당하게 될지 그리고 업무 진행은 어떻게 해야할지에 대한 내용들을 전달 받았다.

대표님과의 미팅 후에 우리에게 무한한 자율성을 보장해 주셨다는 것을 깨닫게 됐다.(=Blocker😐) 이를 잘 관리하기 위해 그리고 팀 프로젝트를 잘 운영하기 위해, Team Notion 페이지를 만들었다.

DAY 3 : 베트남 개발자와 TeamViewer

VARY라는 기업의 특징은 개발자가 해외에 거주하고 있다는 점이다. 개발자와 영어로 소통할 수 있다는 장점도 있지만, 우리가 필요할 때 소통을 바로 할 수 없다는 점이 단점으로 다가왔다. ( =😐Blocker)

TeamViewer를 사용해서 개발자에게 궁금한 내용을 정리해서 물어보고 답변을 듣는 시간을 가졌다. 필요한 정보를 받는 것 이외에는 큰 도움을 받지 못해서 아쉬웠다 ( =😐Blocker)

DAY 4 : 대표님과 기획 회의

오전에 대표님과 페이지 기획(레이아웃) 및 기능에 대한 회의를 진행했다. 회의를 통해 전체 계획되어 있는 admin페이지 중에서 우리가 어디까지 할 수 있을지 실제적 목표를 수립했다.

기업 협업 전체 목표 🎯
사용자 전체 조회 페이지, 사용자 정보 상세 조회 페이지

DAY 5 : 회고 미팅

Sprint1을 마무리하며 팀원들과 KPT 방식에 따라 팀 그리고 개인의 회고 미팅을 진행했다.

Sprint 회고

1차 Sprint 에서 우리팀이 직면한 첫 번째 Blocker😐

  • 개발자가 베트남에 거주해서 인수인계(DB는 무엇을 쓰고, 각 테이블의 용도는 무엇인지 등)를 제대로 받을 수 없다. 즉, 프로젝트를 어떻게 시작해야할지 모르겠다.

이를 해결하기 위해

  • 기업 Github 코드를 보면서 주로 어떤 언어를 사용하고, DB는 무엇을 쓰며, ORM은 무엇을 사용 하는 지 등을 파악 했다.
  • 그래도 해결이 안돼서 부트캠프 멘토님께 SOS를 요청했다. 멘토님과 ZOOM미팅을 통해 어떻게 프로젝트를 시작하고 준비해야 할지 가이드라인을 잡을 수 있었다.

두 번째 Blocker😐

  • 정해진 자리가 없이 주어진 무한한 자율성을 만끽한 우리 였다. 지하 라운지에 있는 모든 시설을 잘 즐겼다..;;

이를 해결하기 위해 KPT 회고에서

  • 주어진 자유를 잘 관리 할 수 있는 규칙을 마련하기로 했다.
  • Sprint2 부터는 우리가 만든 규칙을 지키며 잘 관리해보자 다짐 했다.

VARY 팀의 규칙 Ver1. 📌

  • 회의 전까지 각자 스탠드업 미팅 내용 / 트렐로 정리하기
  • 점심시간: 11:30 ~ 13:00 / 업무집중시간 2:00 ~ 5:00
  • 출근시간: 10:00 ~ 10:10
  • Standup Meeting: 10:10 시작
  • 정시출근, 정시퇴근 지키도록

Sprint 02-03

인턴 기간 중 백엔드의 실제 업무들을 수행했던 기간이다. 이 기간 동안에도 여러 Blocker😐 들이 괴롭혔고, 이를 해결하기 위해 끊임없이 노력했다.

Sprint 2 : DB ERD를 보는 순간 멈칫..

대표님께서 상세 조회 API에 필요한 데이터들을 정리해 주셨다. 각 데이터가 DB내에 어떤 테이블에 위치해 있는지 파악하는 과정이 했는데, 기존에 설계되어 있는 DB ERD를 이해하는데 꽤 시간이 걸렸다 (=Blocker😐)

Sprint2 회고

Sprint1과 비교해서 새로 만든 팀내 규칙을 기반으로 팀의 업무 집중도는 향상 시킬 수 있었다. 특히 집중 업무시간을 잘 활용해서 각자의 업무 진행도를 높일 수 있었다.

Sprint2 에서 직면한 Blocker😐 였던 복잡한 DB 문제는,
우리 팀 만의 언어로 각 테이블과 컬럼명들을 정리하면서 시간을 들여 이해할 수 있었다.직접 만든 DB가 아니고 Modeling이 아니였기에 긴 시간이 드는 문제는 불가피 하다고 생각이든다.

두 번째로, KPT 회고 미팅을 통해 발견한 팀 전체의 Blocker😐"오전 시간 활용을 하지 못한다" 였다. 이 문제를 해결하기 위해 오전 시간을 각자가 어떻게 할애하고 있는지 이야기를 나눴고, 기존에 있던 Rule을 변경하기로 했다.

출근 후 1시간 정도 개인 업무를 진행한 후, 스탠드업 미팅을 진행함으로 오전 시간을 더 할애 할 수 있도록 조정했다.

VARY 팀의 규칙 Ver2. 📌

  • Standup Meeting: 오전 11시 20분
  • 업무 집중 시간 : 오후 2시 - 6시
  • 점심 메뉴는 본인 순서에 미리 정해오기

Sprint 3 : API 개발에 성공했습니다..!

데이터 정리하고 로직을 정리하며 API작업을 시작했다. 먼저 JavaScript로 개발하고 이후 VARY의 개발 언어인 TypeScript 변경하는 작업이 필요했는데,새로운 언어에 대한 학습이 추가로 필요해 API를 완성하는데 꽤 시간이 소요됐다. (=Blocker😐)

DAY4 : 대표님과 미팅 (3)

대표님께 그 동안 진행했던 내용들을 공유 드렸고, 앞으로 남은 기간까지의 목표도 보고했다. 또한, 페이지 기획 부분에서 사용자의 입장에서 어떤 레이아웃을 더 선호할 것인지에 대해 의논했다.

Sprint3 회고

지난 Sprint와 비교했을 때, 수정된 규칙 속에 업무에 대한 집중도와 효율을 높일 수 있었다. 주어진 환경 속에서 잘 버티고 적응해 가는 우리팀!

새로운 언어라는 Blocker😐 는 해결 방법이 딱히 없었다. 백엔드 팀원들과 기한을 정해 TypeScript라는 언어를 함께 공부했고, 차근 차근 적용해 갔다. 어렵고 이해가 안 되는 부분은 만인의 선생님 구글링을 통해 해결했다.


Sprint 04

마지막 Sprint에는 백엔드와 프론트엔드의 통신에 집중하고, 백엔드의 경우 리팩토링 작업을 진행했다. 또한 후임자들을 위한 문서화 작업에 집중했다.

DAY1 -2 : 리팩토링 그리고 Documentation

API에서 DB를 접근 할 때 ORM 문법을 사용해 보고 싶었다. 기존에는 raw query문을 사용했지만, 이번에는 차이점을 두고 해보고 싶었는데 잘 안됐다. 시도해 봤다는 것에 의의를 두고 남은 리팩토링 작업을 진행했다.

대표님께 후임자가 온다는 소식을 듣고, 그들이 어떻게 하면 이어서 업무를 잘 진행 할 수 있을까? 고민했다. 그 결과 Documentation(=인수인계서)를 작성하자고 결론을 냈다. 솔직히 문서화 작업은 크게 어렵지 않았다. 지난 두 번의 프로젝트에서 처럼 이번에도 역시 업무 기록을 Team Notion에 정리해뒀기 때문이다.

➕ 인턴십 이후, 후임자들에게 직접 인수인계 하는 시간을 추가로 가졌다. 잠시 잠깐 몸 담았던 회사에 도움이 되고 싶었다 라는 그런 마음..

DAY3 : 마지막 보고

대표님께 최종 보고를 드렸다. 보고를 드리며 인턴십을 진행하면서 어떤 어려움이 있었고, 개선 됐으면 하는 점들이 있는지 등에 솔직하게 말씀 드렸다.

DAY4 : 프론트와 통신이 왜 안되는..?

백엔드는 API를 미리 끝내두고 프론트와 통신을 기다리고 있었다. 드디어 통신을 할 수 있는가? 했는데 실패했다. 백엔드의 문제인가 검토했지만 이상이 없었고, 프론트 측에서 해결해야 하는 문제였다(=Blocker😐)

이를 해결하기 위해,
백엔드지만 지난 프로젝트에서 프론트와 통신을 했던 경험과 같은 언어인 JavaScript를 사용하고 있다는 장점을 활용했다. 결국 집단 지성으로 통신에 성공 할 수 있었다.

인턴십 결과물 🎥


회고록

매 Sprint에 그냥 넘어가는 일은 없었다. 항상 Blocker😐를 마주해야했다. 하지만 그 순간 마다 해결책을 찾기 위해 무던히 노력 했고 성장했다. 또한, 모든 팀원이 포기하지 않고 끝까지 완수 할 수 있었던 부분에서 크게 칭찬하고 싶다!

성장 포인트 ➕

  • 새로운 언어 TypeScript 를 배웠고, 새로운 DB PostgreSQL 을 사용해볼 수 있었다.

  • 이미 만들어진 DB를 이해하고 파악하는데 오랜 시간이 걸렸지만 동일한 환경이 주어지면 어떻게 대처할지 방법을 터득했다.

  • 기록과 정리는 개발자에게 꼭 필요한 역량이다. 이 과정을 통해 어떻게 하면 더 효율적으로 API를 만들까?를 고민하며 API를 구축했고, 팀원 및 대표님과 소통의 질을 향상 시켰다.

아쉬운 점 ➖

  • 대표님께서 많은 자유를 허락해 주셨는데, 이 자유에는 분명한 책임이 따르는 것 같다.

  • 개발자가 베트남에 거주하기에 많은 상호작용을 할 수 없었다. 사수가 있다면 조금 더 많은 것을 시도하고 배울 수 있지 않았을까? 하는 아쉬움이 남는다.

한줄 요약

어떤 환경이든 적응하고 문제 해결을 고민하는 개발자로 성장했다 🌱

profile
백엔드 개발자 영서뤼

1개의 댓글

comment-user-thumbnail
2023년 1월 30일

블로커를 해쳐가는 모습에 저 엄청 첼린지 되더라고요! 진짜 사막에서도 물을 파낼 사람들이예요!!!

답글 달기