2022년 12월, 한 달간 진행한 인턴 생활에 대한 회고를 남긴다. 해당 포스팅에는 각 Sprint별 요약, Blocker들을 어떻게 해결했는지 등에 대해 기록할 예정이다.
담당했던 역할과 어떻게 수행했는지에 대해서는😼 Github 를 참고!
Sprint1 에는 회사에 적응하고 각 개발 파트가 초기세팅을 했던 시간이었다. 또한, 팀의 가장 큰 Blocker 😐
를 발견하기도 했다.
출근해서 어떤 파트를 담당하게 될지 그리고 업무 진행은 어떻게 해야할지에 대한 내용들을 전달 받았다.
대표님과의 미팅 후에 우리에게 무한한 자율성을 보장해 주셨다는 것을 깨닫게 됐다.(=Blocker😐
) 이를 잘 관리하기 위해 그리고 팀 프로젝트를 잘 운영하기 위해, Team Notion 페이지를 만들었다.
VARY라는 기업의 특징은 개발자가 해외에 거주하고 있다는 점이다. 개발자와 영어로 소통할 수 있다는 장점도 있지만, 우리가 필요할 때 소통을 바로 할 수 없다는 점이 단점으로 다가왔다. ( =😐Blocker
)
TeamViewer
를 사용해서 개발자에게 궁금한 내용을 정리해서 물어보고 답변을 듣는 시간을 가졌다. 필요한 정보를 받는 것 이외에는 큰 도움을 받지 못해서 아쉬웠다 ( =😐Blocker
)
오전에 대표님과 페이지 기획(레이아웃) 및 기능에 대한 회의를 진행했다. 회의를 통해 전체 계획되어 있는 admin페이지 중에서 우리가 어디까지 할 수 있을지 실제적 목표
를 수립했다.
기업 협업 전체 목표 🎯
사용자 전체 조회 페이지, 사용자 정보 상세 조회 페이지
Sprint1을 마무리하며 팀원들과 KPT 방식에 따라 팀 그리고 개인의 회고 미팅을 진행했다.
1차 Sprint 에서 우리팀이 직면한 첫 번째 Blocker😐
는
이를 해결하기 위해
두 번째 Blocker😐
는
이를 해결하기 위해 KPT 회고에서
VARY 팀의 규칙 Ver1. 📌
- 회의 전까지 각자 스탠드업 미팅 내용 / 트렐로 정리하기
- 점심시간: 11:30 ~ 13:00 / 업무집중시간 2:00 ~ 5:00
- 출근시간: 10:00 ~ 10:10
- Standup Meeting: 10:10 시작
- 정시출근, 정시퇴근 지키도록
인턴 기간 중 백엔드의 실제 업무들을 수행했던 기간이다. 이 기간 동안에도 여러 Blocker😐
들이 괴롭혔고, 이를 해결하기 위해 끊임없이 노력했다.
대표님께서 상세 조회 API에 필요한 데이터들을 정리해 주셨다. 각 데이터가 DB내에 어떤 테이블에 위치해 있는지 파악하는 과정이 했는데, 기존에 설계되어 있는 DB ERD를 이해하는데 꽤 시간이 걸렸다 (=Blocker😐
)
Sprint1과 비교해서 새로 만든 팀내 규칙을 기반으로 팀의 업무 집중도는 향상 시킬 수 있었다. 특히 집중 업무시간
을 잘 활용해서 각자의 업무 진행도를 높일 수 있었다.
Sprint2 에서 직면한 Blocker😐
였던 복잡한 DB 문제는,
우리 팀 만의 언어로 각 테이블과 컬럼명들을 정리하면서 시간을 들여 이해할 수 있었다.직접 만든 DB가 아니고 Modeling이 아니였기에 긴 시간이 드는 문제는 불가피 하다고 생각이든다.
두 번째로, KPT 회고 미팅을 통해 발견한 팀 전체의 Blocker😐
는 "오전 시간 활용을 하지 못한다" 였다. 이 문제를 해결하기 위해 오전 시간을 각자가 어떻게 할애하고 있는지 이야기를 나눴고, 기존에 있던 Rule을 변경하기로 했다.
출근 후 1시간 정도 개인 업무를 진행한 후, 스탠드업 미팅을 진행함으로 오전 시간을 더 할애 할 수 있도록 조정했다.
VARY 팀의 규칙 Ver2. 📌
- Standup Meeting: 오전 11시 20분
- 업무 집중 시간 : 오후 2시 - 6시
- 점심 메뉴는 본인 순서에 미리 정해오기
데이터 정리하고 로직을 정리하며 API작업을 시작했다. 먼저 JavaScript로 개발하고 이후 VARY의 개발 언어인 TypeScript
변경하는 작업이 필요했는데,새로운 언어에 대한 학습이 추가로 필요해 API를 완성하는데 꽤 시간이 소요됐다. (=Blocker😐
)
대표님께 그 동안 진행했던 내용들을 공유 드렸고, 앞으로 남은 기간까지의 목표도 보고했다. 또한, 페이지 기획 부분에서 사용자의 입장에서 어떤 레이아웃을 더 선호할 것인지에 대해 의논했다.
지난 Sprint와 비교했을 때, 수정된 규칙 속에 업무에 대한 집중도와 효율을 높일 수 있었다. 주어진 환경 속에서 잘 버티고 적응해 가는 우리팀!
새로운 언어라는 Blocker😐
는 해결 방법이 딱히 없었다. 백엔드 팀원들과 기한을 정해 TypeScript라는 언어를 함께 공부했고, 차근 차근 적용해 갔다. 어렵고 이해가 안 되는 부분은 만인의 선생님 구글링
을 통해 해결했다.
마지막 Sprint에는 백엔드와 프론트엔드의 통신에 집중하고, 백엔드의 경우 리팩토링 작업을 진행했다. 또한 후임자들을 위한 문서화 작업에 집중했다.
API에서 DB를 접근 할 때 ORM 문법을 사용해 보고 싶었다. 기존에는 raw query문을 사용했지만, 이번에는 차이점을 두고 해보고 싶었는데 잘 안됐다. 시도해 봤다는 것에 의의를 두고 남은 리팩토링 작업을 진행했다.
대표님께 후임자가 온다는 소식을 듣고, 그들이 어떻게 하면 이어서 업무를 잘 진행 할 수 있을까?
고민했다. 그 결과 Documentation(=인수인계서)를 작성하자고 결론을 냈다. 솔직히 문서화 작업은 크게 어렵지 않았다. 지난 두 번의 프로젝트에서 처럼 이번에도 역시 업무 기록을 Team Notion에 정리해뒀기 때문이다.
➕ 인턴십 이후, 후임자들에게 직접 인수인계 하는 시간을 추가로 가졌다. 잠시 잠깐 몸 담았던 회사에 도움이 되고 싶었다 라는 그런 마음..
대표님께 최종 보고를 드렸다. 보고를 드리며 인턴십을 진행하면서 어떤 어려움이 있었고, 개선 됐으면 하는 점들이 있는지 등에 솔직하게 말씀 드렸다.
백엔드는 API를 미리 끝내두고 프론트와 통신을 기다리고 있었다. 드디어 통신을 할 수 있는가? 했는데 실패했다. 백엔드의 문제인가 검토했지만 이상이 없었고, 프론트 측에서 해결해야 하는 문제였다(=Blocker😐
)
이를 해결하기 위해,
백엔드지만 지난 프로젝트에서 프론트와 통신을 했던 경험과 같은 언어인 JavaScript를 사용하고 있다는 장점을 활용했다. 결국 집단 지성으로 통신에 성공 할 수 있었다.
매 Sprint에 그냥 넘어가는 일은 없었다. 항상 Blocker😐
를 마주해야했다. 하지만 그 순간 마다 해결책을 찾기 위해 무던히 노력 했고 성장했다. 또한, 모든 팀원이 포기하지 않고 끝까지 완수 할 수 있었던 부분에서 크게 칭찬하고 싶다!
새로운 언어 TypeScript 를 배웠고, 새로운 DB PostgreSQL 을 사용해볼 수 있었다.
이미 만들어진 DB를 이해하고 파악하는데 오랜 시간이 걸렸지만 동일한 환경이 주어지면 어떻게 대처할지 방법을 터득
했다.
기록과 정리는 개발자에게 꼭 필요한 역량이다. 이 과정을 통해 어떻게 하면 더 효율적으로 API를 만들까?
를 고민하며 API를 구축했고, 팀원 및 대표님과 소통의 질을 향상 시켰다.
대표님께서 많은 자유를 허락해 주셨는데, 이 자유에는 분명한 책임이 따르는 것 같다.
개발자가 베트남에 거주하기에 많은 상호작용을 할 수 없었다. 사수가 있다면 조금 더 많은 것을 시도하고 배울 수 있지 않았을까? 하는 아쉬움이 남는다.
한줄 요약
어떤 환경이든 적응하고 문제 해결을 고민하는 개발자로 성장했다 🌱
블로커를 해쳐가는 모습에 저 엄청 첼린지 되더라고요! 진짜 사막에서도 물을 파낼 사람들이예요!!!