넘블은 쉽게 말해서 코딩 챌린지 플랫폼이다. 호스트 주관으로 챌린지가 하나씩 개설되는데, 예를 들어 웹소설 클론코딩 챌린지가 열리면, 유명 회사에서 일하는 개발자분들의 코드 리뷰를 받을 수 있는 기회가 주어진다. 단 결과물이 상위에 들어야 받을 수 있다. 하지만 상위 결과물이 받은 코드 리뷰를 같이 볼 수 있기 때문에 도움이 되는 건 마찬가지이다.
내가 도전한 챌린지는 네이버, 카카오, 문피아 같은 웹 소설 플랫폼을 백엔드 기반으로 클론코딩 해보는 것이었다. 아무 주제 없이 클론코딩을 해보는 것도 도움이 되겠지만, 특별히 호스트께서 여러가지 집중해볼만한 주제를 던져주셨다.
특히나 대용량 트래픽 환경에서 생길 수 있는 장애에 대해 집중할 수 있는 시간이었다. 이 외에 주어진 문제를 풀 수 있을만한 고민을 하는 시간도 갖게 되었다.
큰 틀만 제공되고, 실제로 세세한 정책에 대해서는 스스로 정해봐야만 했다.
ERD
글이 길어 링크로 첨부합니다.
먼저 새로운 접근을 할 수 있었던 점이 너무 좋았다. 처음에는 쉽게 프로젝트를 완성 시킬 줄 알았지만, 결과물을 보니 공부했던 부분들과 부족했던 부분들이 많았다. 테이블 설계부터 동시성 처리, 비즈니스 정책 확립 등 미흡한 부분이 많았다. 퇴근 후 학교까지 다니기 때문에 해당 프로젝트에 할애할 수 있는 시간이 그리 많지 않았다. 그래도 백엔드 개발을 하면서 성능이란 것에 대해 깊게 고민하고, 조금이라도 해결하는 유익한 시간이었던 것 같다. 결론적으로 내가 앞으로 무엇을 더 공부해야 하는지를 알 수 있어서 좋았다. 결과를 떠나서 다른 분들은 내가 고민한 부분을 어떻게 구현했는지를 통해 더 넓은 지식을 알아갈 수 있는게 좋은 것 같다. 실제로 대용량 트래픽 환경에서 개발을 한다면 신경써야할 부분이 한 두가지가 아닌 것 같았다. 이렇게 작은 프로젝트를 만드는데도 여러가지 상황을 고려하면서 개발했어야 하기 때문에 실제 업무라면 내가 지나친 작은 기능도 회사에 크리티컬한 피해를 입힐 수 있다는 점이 조금 무서운 것 같다.
앞으로도 꾸준히 공부하면서 많은 사람들이 이용해도 안정적인 서비스를 개발할 수 있는 개발자로 성장하고 싶다. 더 나아가 앞으로도 더 많은 넘블 챌린지에 참여하면서 끊기지 않는 토이프로젝트를 하고싶다.