💡 프로젝트 소개
· 회사: 영업, 마케팅을 위한 모바일 빌더 솔루션을 제공하는 SaaS
· 인원: FE:2명 / BE:3명
· 개발기간: • 2022.12.12 ~ 2023.01.05(4주)
· 기술스택: JavaScript, Node.js, Express.js, TypeScript, PostgreSQL, Sequelize
· 담당기능
<Admin 페이지 구현>
전체 사용자정보 조회 및 사용자 상세정보 조회,
관리자가 서비스를 이용 중인 회원들의 가입/로그인/제작/발송/결제 등의 정보를 확인하기 위한 페이지
힘들고 막막한 업무 환경, 어떻게 일해야 할까?🤔
영업, 마케팅을 위한 모바일 빌더 솔루션을 제공하는 SaaS를 서비스하는 기업에서 한 달 동안 기업 인턴십을 하게 되었다. 함께 인턴십을 진행하게 될 팀은 총 5명(FE: 2명, BE: 3명)으로 구성되었다. 개발자로서는 처음으로 기업에 나가 일을 하게 되는 거라 걱정도 되었지만 사실 걱정보다는 기대가 훨씬 컸던 것 같다. 실제 개발자들은 어떻게 일을 하고 실제 서비스들은 어떻게 구성이 될지, 또 어떤 내용들을 새롭게 배우게 될지 큰 기대를 안고 첫날 회사로 향했던 것이 기억이 난다.
🤯
대표님과 첫 미팅 이후 우리들의 상태는 “멘붕”이 되어버렸다. 기대하고 바라던 것과는 전혀 다른 것을 직면해서일까?…
Conditions
- 개발자 사수의 부재 ❌
- 사내에 직접적으로 함께 개발을 하거나 도움을 받을 수 있는 개발자가 없었다.(베트남 현지 개발자가 한분 있어서 메세지를 통해 연락할 수 있었지만 쉽지 않았다). 현지에 있는 개발자 외에는 개발에 관여하는 사람이 아무도 없었다. 사수와 함께 개발을 하고 코드리뷰도 받으며 배워나가는 업무환경을 기대했지만 전혀 달랐다.
- 복잡한 데이터베이스
- 여러명의 외주 개발자들을 거치면서 만들어진 데이터베이스라 그런지 매우 복잡했다. 테이블과 칼럼들이 아주 많았고 그 이름들을 가지고 정확하게 기능이나 사용처를 유추하기 힘들었다. 또한 현재 사용되고 있는 테이블과 칼럼이 어떤 것인지, 데이터들이 어떻게 연결되어 작동하는 것인지 확인하기가 어려웠다.
- 높은 자율성(공간, 시간)
- 업무의 출퇴근시간등 정해져있는 것이 없었기에 팀 내부적으로 정했어야 했다.
- 회사는 공유오피스 내에 있었고 회사내부에는 적절한 업무환경이 마련되어있지 않아 공유오피스의 라운지를 돌면서 일을 해야 했다.
- Team의 사기저하
- 기대하고 예상했던 상황과는 너무나 달랐기에 팀 내에서 인턴십을 그만두겠다는 의견과 하고 싶지 않다는 의견이 많이 나왔었고 다른 기업으로 인턴십을 갔었으면 이러진 않았을 거라고, 더 많은 것들을 배우고 경험할 수 있었을 것이란 불평과 불만들이 터져 나오기도 했다. 충분히 이해가 되었고 나 또한 그런 감정을 느끼지 않았다고 말할 수 없었다.
그럼에도 한 달이라는 기간을 이렇게 불평, 불만만 하며 보내기 싫었고 팀원들과 함께 어떻게 이런 상황에서도 업무들을 잘 진행해갈 수 있을지 고민하며 프로젝트를 진행하였다.
Solutions - 맨 땅에 헤딩하기
- 직접 개발자 사수가 되기
- 사수가 없다면 그 첫걸음을 우리 팀이 걸어가 보자는 마음가짐을 가졌다.
- 회사 깃허브를 보며 어떤 언어를 어떤 구조로 사용하는지 파악했다.
- 맨 땅에 헤딩하는 과정을 문서화하여 instructions을 작성하며 프로젝트를 진행하였다.
- 처음사용해 보는 typescript, sequelize, postgreSQL에 대해 구글링과 유튜브검색을 통해 사용 법을 익혀서 적용하였다.
- 데이터베이스 정리
- 개발페이지에서 회원가입부터 서비스이용을 하나하나 사용하며 어떤 테이블에 어떤 칼럼이 연결되어 있는지 확인하며 그 과정을 문서화를 통해 정리하였다. (이 부분에서 상당히 많은 시간이 소요되었기에 다른 개발자가 이와 같은 과정을 반복하지 않게 하기 위해 노력했다)
- 높은 자율성 이용하기
- 팀 회의를 통해 미팅시간, 업무집중시간등을 정하여 주어진 자율성을 최대한으로 이용할 수 있게끔 하였다.
- 분위기 만들기
- 이전 프로젝트에서 배운 것처럼 제일 먼저 긍정의 분위기를 만들기 위해 노력했다. 예전부터 같이 공부해 왔던 마음이 잘 맞는 동료 한 명이 이번 인턴십을 같이 오게 되었고 함께 힘을 합쳐, 우리의 처한 상황만을 바라보기보다 우리가 세운 목표를 바라보며 나가려 했다.
생각보다 너무나 많은 blocker들이 있어서 처음에는 포기하고 싶은 마음이 들기도 하였지만 마지막까지 팀이 하나가 되어 계획한 목표까지 마무리를 할 수 있어서 다행이었다. 물론 초반에 초기세팅을 하고 회사의 코드, DB를 파악하고 정리하는데 시간이 많이 소요되어 다양한 기능들을 구현하지 못한 것들에 대한 아쉬움이 큰 것도 사실이다. 하지만 어려운 상황 속에서 팀이 똘똘 뭉쳐 끝까지 문제를 해결해 나간 이 경험 또한 바꿀 수 없는 귀한 경험이었음이 분명하다.
아쉬운 마음은 다음에 업무를 맡아서 하게 될 개발자들을 위한 instructions을 만들며 달랬던 것 같다. 대표님과의 최종 미팅에서 최종 보고와 함께 instructions을 넘겨드렸고 그러면서 나름 뿌듯한 기분을 느끼며 프로젝트를 마무리했다.
대표님 曰 “그전에도 두세 번 인턴십을 진행했었지만 한 번도 이렇게 끝까지 팀이 하나 돼서 마무리한 적을 본 적이 없었다. 사실 그래서 다음번에는 인턴십을 두지 않으려고도 생각했는데 이번 기간가운데 생각을 바꾸어 더 인턴십을 진행하기로 결정했다.”
위의 칭찬(?)과 함께 다음 인턴십 인원들을 위한 인수인계를 부탁받아 인턴십이 끝나고 나서도 더 출근하여 끝 마무리 하며 기업 인턴십에 마침표를 찍었다.
마치며…
사실 기능적으로는 많은 것들을 구현 못했지만 특히 개발자의 커뮤니케이션 측면에서 많은 것들을 배운 것 같다. 특히 코드나 문서로 커뮤니케이션하는 것에 있어서 경험하며 배울 수 있었다. 왜 코드를 최대한 깔끔하게 가독성 있게 적어야하는지, 느낌대로 적어왔던 변수명이나 DB의 테이블명, 컬럼명들이 왜 중요하게 여겨지는지 등에 대해 뼈져리게 느꼈다. 가독성있게 코드를 작성하고 구성하는 게 얼마나 중요한지를 실무에서 직접 느껴버리니 반박할 수 없었다 🙅♂️
‘개발 실력이 뛰어난 개발자’가 되는 것을 바라는 것뿐만 아니라 ‘커뮤니케이션 역량이 뛰어난 개발자’가 되고자 하는 바람이 더더욱 생겨나게 되는 계기가 되었던 시간이었다.
'프로젝트' 카테고리의 다른 글
[기업 인턴쉽] 회고 - 기능 (0) | 2023.02.27 |
---|---|
[2차 프로젝트] 회고 - 4L (0) | 2023.02.27 |
[2차 프로젝트]회고 - 기능 (0) | 2023.02.27 |
[2차 프로젝트]회고 - 협업 (0) | 2023.02.27 |
[1차 프로젝트] 회고 - KPT (0) | 2023.02.27 |