2023 회고 - bitkunst편

블록체인을 사랑하는 back-end 개발자의 프로젝트 회고록
곽인구's avatar
Mar 04, 2024
2023 회고 - bitkunst편

The 회고록

 
2024년 새 해가 밝은지 어느덧 시간이 꽤 지났다. 그와 더불어 디벨로켓 역시 또 하나의 챕터인 KDC가 마무리되었다. 디벨로켓과 함께한 지난 1년의 시간을 되돌아 보자는 우리 팀장님(web7722)의 의견을 수렴하여 매우 기쁜 마음으로 회고록을 작성하고자 한다 ^-^
참고로 나는 스마트 교육 훈련 플랫폼 디벨로켓의 백엔드를 담당하고 있는 bitkunst이다!
notion image
 

그래서 디벨로켓이 뭔데?!

토이 프로젝트 같이 내가 만들고 싶은 것들을 개발할 때는 몰랐는데, 회사에 와서 개발을 하면서 도메인 지식의 중요성을 참 많이 느끼게 됐다. 특히 DB 스키마를 설계할 때, 도메인 지식은 그 빛을 발하게 된다.
디벨로켓은 K-Digital Training을 진행할 수 있는 스마트 훈련 플랫폼으로, 쉽게 말해 온라인 교육 플랫폼이다. 어찌보면 "교육 컨텐츠를 제공하는 단순한 사이트 아니야?"라고 할 수 있지만, 그 속을 들여다보면 생각보다 그 양이 방대하다. 교육 과정별로 존재하는 수많은 교육 컨텐츠들 그리고 각 컨텐츠 별로 존재하는 QnA, 레벨 테스트, 과제, TIL 등 단순히 두 세개의 테이블로 어찌해 볼 수 있는 수준의 사이즈가 아니었다. 교육 컨텐츠뿐만이 아니다. 해당 교육을 듣기 위해 지원한 사람들을 선발하는 프로세스 역시 DB 스키마의 복잡도를 올리는데 큰 몫을 했다.
교육 플랫폼에 관한 도메인 지식이 전무했던 나는 교육 신청 프로세스가 어떻게 돌아가는지, 어떠한 컨텐츠들로 교육이 구성되는지 등을 전혀 몰랐고, 이와 관련된 백엔드 API 제작과 더불어 DB 스키마를 설계할 때마다 많은 시행착오들을 겪어야만 했다.
notion image
 
(그래도 다행히 같이 머리 싸매고 고민해주신 팀장님 덕분에 결과적으로는, 괜찮은 스키마들이 나왔다😌)
나는 컨텐츠 팀과 진행하는 회의들을 통해 조금씩 도메인 지식을 쌓아 나갔고, 지금껏 개발 외적으로 도메인 지식을 쌓기 위해 투자했던 시간들이 결코 헛된 시간이 아니었음을 다시 한번 느낄 수 있었다. 그리고, 그렇게 수없이 많은 회의들을 거치며 하나씩 완성된 스키마들은 어느덧 디벨로켓을 담아낼 수 있는 그릇이 되어 갔다.
이 자리를 빌려 그간 동고동락하며 디벨로켓 런칭에 고생하신 김xx 조교님, 신xx 교수님께 감사인사를 전합니다 :)
 

개발자님, 이 기능 좀 추가해주세요😊

토이 프로젝트와 현업은 다르다.
당연한 얘기이겠지만 "확장성"이라는 관점에서 그 차이는 더욱 극명해지는 것 같다.
토이 프로젝트에는 끝이 존재한다. 물론 애정이 깊은 프로젝트의 경우 지속적으로 유지 보수를 할 수 있겠지만 대개의 경우 일정 기간 동안 어느 정도의 완성도를 목표로 프로젝트를 진행하게 된다. 하지만 현업에서는 회사가 망하거나 서비스를 종료하지 않는 한 그 프로젝트는 계속된다. 그렇기 때문에 확장성 있는 설계는 반드시 고려되어야 하는 요소가 아닐까 한다.
실제 디벨로켓 사이트 역시 그러했다. 어떠한 기능을 새로 만들었다면, 거기서 그치지 않고 만들어진 기능에 덧붙일 새로운 기능들이 또 다시 추가되거나 기존의 기능들이 수정되는 경우가 빈번하게 발생했다.
notion image
 
물론 기능 개발에 있어 목표로 하는 기능들이 충실히 수행됐다면 그것 자체만으로도 충분히 만족스러운 결과물이 아닐 수 없다. 하지만 향후 있을 버전 업데이트, 새롭게 추가될 기능들을 고려한 확장성 있는 설계는 안정감과 더불어 밀려드는 추가 요구사항들의 방파제 역할을 톡톡히 해낼 수 있다고 생각한다.
물론 모든 경우의 수를 고려한, 무한하게 확장 가능한 완벽한 설계란 존재하지 않는다. 하지만 적어도 어떠한 기능을 개발함에 있어서 어느 정도의 확장성은 무리없이 가져갈 수 있는 수준으로 설계를 해 나아간다면, 조금은 야근을 덜하게 되지 않을까,,라고 조심스럽게 얘기해보고 싶다 ^-^
 

유지보수라고 들어봤니?

언제나 그렇듯 유지보수는 참 어렵다. 어려운만큼 그 중요성 또한 굉장히 커서 많은 개발자들이 머리싸매고 고민하는 이슈들 중 하나라고 생각한다. (나 역시 그러했다,,,)
디벨로켓 백엔드 개발의 첫 삽을 뜨던 당시를 회상해보면 내 머리 속에는 오로지 한 가지 목표만이 존재했다.
" 구현, 어떻게 해서든 구현 "
이 말만을 되새기며 개발 자체에만 몰두했다. 실제 새로운 프로덕트의 개발을 진행함에 있어 첫 단계에서 MVP로 개발을 진행하는 것은 어떻게 보면 자연스러운 과정이다. 하지만 구현해야 할 기능의 양과 시간적 제약 속에서 오는 압박과 조급함은 코드의 퀄리티를,, 읍읍;;
notion image
 
프로젝트가 어느 정도 진행되었을 무렵부터는 조금씩 서비스 런칭 이후에 다가올 후폭풍이 두려워지기 시작했다.
(이 코드로 과연 유지보수를 할 수 있을까,,??)
결국 팀장님과 나는 조금은 시간이 걸리더라도 나중을 위해,, (마치 미래를 위해 마시멜로를 먹지 않고 참는 아이들처럼) 리팩토링을 진행해 나가기 시작했다!
지금 돌이켜 생각해봐도 리팩토링에 썼던 시간들이 아깝다는 생각은 전혀 들지 않는다. 유지보수성이 좋은 코드를 작성하는 것이 정말정말정말x10000000000 중요하다는 것을 다시 한번 기억 속에 새기게 되었다😎
 

마치며

고맙다는 인사와 함께 자랑스러운 우리 팀원들을 소개하면서 글을 마칠까 한다.
항상 뒤에서 든든하고 뚝심있게 버티고 있어주시는 우리 팀장님,, "월화수목금금금"으로 자리를 지키시며 우리 팀을 이끌어주셨기에 지금의 디벨로켓이 있지 않았을까 생각한다. (자주 징징돼서,, 안 죄송합니다 ^-^)
언제나 나의 정신적 지주가 되어주시는 우리 프론트엔드 주멘,, API 만들어놓으면 뚝딱뚝딱 잘 갔다 사용해줘서 너무너무 고맙고 영광이다! 주렐루야~!! \(^-^)/
프론트엔드 해결사 baekspace,, 프론트엔드쪽 이슈 트래킹은 이 분에게,, 못 하는게 없는 프론트엔드 척척박사!
구름의 마술사 cloudcoke,, IaC를 이 정도로 깊이있게 할 수 있는 주니어가 있을까 싶을 정도로 디벨로켓의 인프라는 이 분의 손으로 재구축되었다.
우리 팀에서 너무나도 고귀한 존재이신 디자이너님,, 디벨로켓은 이 분의 손 끝에서 다시 만들어졌다고 해도 과언이 아닐 정도로 너무나도 훌륭한 UI/UX를 만들어주신다!
마지막으로, 백엔드 API 공장장인 bitkunst,, (a.k.a 나)
많이 부족하고 배울게 많은 주니어지만 함께하는 좋은 팀원들이 있기에 견뎌낼 힘을 얻어가는 것 같습니다. 저 때문에 고생하시는 팀장님, 주멘, baekspace, cloudcoke, 디자이너님에게 고맙다는 인사를 전하며,,
notion image
회고록 끄읕!
 
Share article
Subscribe Newsletter
Stay connected for the latest news and insights.
RSSPowered by inblog