[인턴log] 오늘의집 신입 개발자의 인생 첫 프로젝트 후기
'오늘의집 페스티벌' 진행 과정을 신입 개발자 관점에서 분석해본다면?
2021년 9월 6일렛시

안녕하세요. 오늘의집 플랫폼 팀의 소프트웨어 엔지니어 인턴으로 일하고 있는 렛시입니다👋

입사한지 2개월이 채 되지 않은 신입 개발자로서, 오늘의집에서 매년 진행하는 대규모 이벤트 '오늘의집 페스티벌'을 첫 프로젝트로 맡아 진행하게 되었는데요. 그동안 겪은 여러가지 일들에 대해 신입 개발자의 관점에서 되돌아보고자 합니다. 추후 해당 글을 되돌아보았을 때 힘들었던 점이 모두 개선되는 경험을 할 수 있기를 바라며 글을 작성해보겠습니다!


Chapter.1) 힘들었던 것

1. 다른 도메인

오늘의집 페스티벌은 기존 서비스와 도메인을 달리하여 새롭게 진행한 프로젝트입니다. 기존 서비스는 오늘의집이라는 도메인 내에서 동작하도록 되어있었고, 새로운 서비스 내에서 기존 도메인 컴포넌트를 활용하려고 하니 UI만 따와서 새로 만들거나, 기존 도메인 컴포넌트에서 사용하는 Util 함수를 분리하여 가져오는 방법이 있었는데요.

기존 코드를 분석해보니 기존 도메인 컴포넌트들이 서로 다른 도메인에 엮여 있는 게 많다 보니 짧은 일정 내에 코드 범위를 파악하고 이해하여 수정하는 데에 더 많은 시간이 들어갈 거라 생각하였고, 기존 코드를 바탕으로 새로 로직을 만드는 게 더 빠르다고 생각하였습니다.

이러한 상황은 곧 이후에 공통 컴포넌트 개발에 대한 필요성을 말해주기도 하였습니다.

2. 문서화의 어려움

오늘의집은 개발 문서로 사내 위키를 사용하고 있는데요. 특정한 경우에 문서로 정리되어있지 않거나, 최신화되어있지 않은 경우가 있었습니다. 또 기대한 키워드를 입력하였을 때, 검색 결과가 나오지 않는 경우도 종종 있었습니다.

프로젝트를 진행하면서 문서를 찾다가 포기하고, 사내 슬랙에 질문하였을 때 오히려 몇 분 안에 답을 얻을 수 있는 경우가 있었습니다. 다행히도 많은 분들이 자기의 일인 것 마냥 같이 적극적으로 찾아주셔서 빠르게 답을 얻을 수 있었습니다.

계속된 질문에는 서로 힘들어질 수 있는 만큼 문서로 정리하면 좋지 않을까 생각이 들면서도, 저 또한 문서 작성을 습관화하기가 쉽지만은 않다는 것을 느끼고 있습니다.

3. 완벽하기에 부족한 시간

개발 기간이 짧아서 처음 도입하는 기술들을 공부할 시간이 부족하였고, 충분히 해당 기술들의 장점을 활용하지 못하였습니다.

하나의 예로 개발 초반에 jest + testing-library를 활용한 TDD 개발 방식을 추구하다가 코드가 많이 변경된 중간 시점 이후로 포기하게 되었는데, 이후에 관련 이슈가 발생했을 때 만일 학습할 시간이 충분하여 TDD 개발을 고수했다면 이슈를 미리 잡아낼 수 있지 않았을까하는 아쉬움이 들었습니다.

4. 기획 한 줄이 개발 하루를 소요한다.

신입 개발자로서 특정 기획에 대해 어느 정도의 공수가 드는 지를 예측하기가 어려웠습니다. 만일 혼자 개발 범위를 결정했다면 추후 막막한 상황이 왔을 수도 있겠다고 생각합니다. 이번 프로젝트는 시니어 개발자 존님께서 가능한 범위로 잘 조정해주시고 태스크를 분배해주셔서 수월하게 처리할 수 있었던 것 같습니다.

Chapter.2) 그럼에도 불구하고

갖가지 힘들었던 점이 있었음에도 불구하고, 오늘의집 페스티벌이 저에게 남겨준 것은 매우 많습니다!

1. 기존 코드에 대한 이해

기존의 컴포넌트를 새로 구성하는 과정에서 코드의 구성과 여러 서비스에서 공통으로 사용되는 util 코드들을 파악하였고, 이후 발생 가능한 상황을 미리 마주할 수 있었습니다. 이후 진행할 프로젝트들에서 이번에 맞은 예방 주사의 효과를 톡톡히 볼 수 있겠죠?

2. 질문에 대한 빠른 피드백

기존 코드에 대해 모르는 것이 있을 때, 슬랙에 관련 질문을 올리면 많은 개발자분들이 곧바로 대답해주십니다.

그리고 항상 모든 분들이 하시는 말씀이 "편하게 물어보세요!" 였을 만큼 질문을 두려워 하거나 질책하지 않고, 오히려 편하게 유도하는 오늘의집의 개발 분위기 덕분에 질문에 대한 두려움을 없앨 수 있었습니다.

3. 새로운 기술도 겁내지 않기

처음 이벤트 서비스 요구사항이 왔을 때 어떻게 구현해볼 지에 대해 챕터 리드인 존님과 고민을 같이 해보았는데요. 이벤트 서비스는 그 특성상 특정 시점에 트래픽이 몰리는 경우도 있고, 또한 리소스가 많기 때문에 그 때 그 때 JS를 호출해서 서비스를 만드는 방식보다는 미리 사이트를 생성해두는 방식과 서버에서 그 때 그 때 데이터와 결합하여 HTML을 함께 생성하는 방식이 좋을 거 같다고 말씀을 주셨습니다.

기존에는 React를 이용해서 프런트엔드 개발을 해본 경험이 있었는데요. Next가 SSG와 SSR을 모두 지원하기도 하고, 사내 표준 스택에도 포함되어있었기 때문에 이번 이벤트 서비스에서는 Next를 사용하기로 하였습니다. 거기에 추가로 존님이 테스트 코드를 잘 작성하면 추후에 안정적인 서비스를 만드는 데 도움이 될 거라고 말씀 주셨기 때문에 Next 공식 문서를 보면서 Jest + Testing Library를 사용하였습니다!

기존에 알던 기술만을 계속 공부해온 저는 사실 익숙함에서 벗어나 새로운 기술을 배우기가 무서웠는지도 모릅니다. 이번 프로젝트를 진행하면서는 jest, next와 같이 새로운 기술들을 빠르게 배우고 적용해볼 수 있어서 좋았습니다. 익숙함을 경계하고 새로운 기술의 도입을 반기는 오늘의집의 개발자분들에게 동화되어가고 있다고 생각합니다.

(* 기술 과업 진행을 위한 시간 분배가 진행되는 버킷플레이스 개발문화가 궁금하다면? 링크)

4. 첫 프로젝트

첫 프로젝트로 자랑할 만한 프로젝트를 하게 되어서 행운이라는 생각이 듭니다. 원했던 만큼의 퀄리티가 나오지 못한 것은 아쉽지만 주어진 시간 내에서 최선을 다하였고 후회는 없습니다.

다양한 기획 및 개발 용어들을 익히는 것에서부터 개발에 소요되는 공수를 파악하는 일, 태스크의 우선순위를 매기는 일 등 어느 것 하나 쉬운 일이 없었지만 반드시 알아야 하는 것들을 빠르게 배울 수 있어서 좋았습니다.

Chapter.3) 오늘의집 페스티벌을 하며

신입 개발자로서 '오늘의집 페스티벌'이라는 큰 프로젝트를 진행하면서 많은 경험을 했습니다.

질문에 대해 긍정적이며, 새로운 것을 향해 끊임없이 나아가고 있는 오늘의집만의 분위기가 이젠 저에게도 조금씩 묻어나고 있다고 생각합니다. 오늘의집 페스티벌 준비를 끝내고 많은 구성원분들이 전해주시는 수고했다는 격려와, 많은 개발자분들이 짚어주시는 다음에 나아가야 할 방향은 앞으로 저의 행보에도 큰 도움이 될 것이라 믿습니다.

시간 가는 줄 몰랐던 한 달 간의 재밌는 프로젝트 선물 감사합니다, 오늘의집!🥳

오늘의집에서 당신을 찾고 있습니다!
Technical Lead & Manager, BackendTechnical Lead & Manager, FrontendTechnical Lead & Manager, AndroidSenior Software Engineer, BackendSenior Software Engineer, FrontendSenior Software Engineer, Machine LearningSenior Software Engineer, Machine Learning, XRSoftware Engineer, BackendSoftware Engineer, Backend, XRSoftware Engineer, Backend, AdsSoftware Engineer, DataSoftware Engineer, FrontendSoftware Engineer, Frontend, XRSoftware Engineer, Machine LearningQA Engineer, AutomationDatabase Administrator
목록으로 돌아가기