Node.js를 선택하는 이유

Java Spring 과의 가장 큰 차이는 ‘쉽다’는 것이었다.

다양한 모듈과 패키지를 아주 간단하게 추가하거나 업데이트할 수 있고, 프로젝트를 생성하고 개발 환경을 구축하는 것 또한 매우 간단했다.

기존에 JavaScript를 공부했다면 프론트와 백을 하나의 언어로 개발할 수 있다는 것은 적은 학습 비용으로 풀스택 개발자가 될 수 있는 아주 큰 장점이라고 느껴졌다.

또한 비동기 처리의 장점으로 많은 요청이 한 번에 있을 때 병렬처리 하여 보다 빠른 속도로 요청을 처리할 수 있었다.

장점 뒤엔 Java Spring과 비교했을 때 단점인 부분도 많이 있는데, 가장 큰 점은 Java Script는 Type Safe를 하지 못한다는 것이지 않나 싶었지만 이러한 단점을 극복하기 위해 TypeScript 기반으로 개발하는 Nest.js가 요즘 떠오르는 기술이라고 한다.

Nest.js 기술도 사용해 보고 싶어서 메이플 길드 관리소 : 메소 Ver.2에 적용해 보려고 한다.

에러 처리의 중요성과 에러 로그 수집 시스템의 필요성

실제 서비스 운영은 처음이다 보니 실수가 많았는데 그 중 가장 크게 느꼈던 부분이 이것이다..

개발 단계에서는 보지 못했던 에러가 많이 발생하였고 심지어 서버가 닫히는 에러도 발생하였다.

사실 로직을 어떻게 하면 예쁘게 구현할지에 대한 고민이 주였지 에러 처리에 대한 고민은 크게 해 본 적이 없었는데, 서비스 운영을 하며 어쩌면 로직 보다 더 중요한 부분이 에러 처리와 로그 수집 시스템이 아닐까 생각하게 되었다.

에러 로그 수집 시스템의 구축 없이 AWS로 서버를 열어서 배포하였는데 이용자들이 꾸준히 있다 보니 에러가 발생해도 빠르게 지나가서 해당 에러 코드를 확인하는데 어려움이 있어서 문제 원인을 찾는 게 힘들었다. 그래서 트래픽이 집중되는 일요일 저녁부터 월요일까지는 밤을 새워 모니터링하며 서버가 닫히면 다시 여는 고생을 하기도 했다.

반드시 완벽한 에러 처리와 에러 로그 수집 시스템 구축이 선행되어야 좋은 서비스를 제공할 수 있다는 것을 느끼게 되었다.

이 부분은 실제 서비스를 운영해 보지 않았다면 스스로 절대 알 수 없었을 부분이어서 아주 소중한 경험으로 생각한다.

모바일 환경 고려

메이플 스토리 인 게임 내의 길드창을 PC로 캡처해서 첨부하는 것이 주요 기능인 서비스이기 때문에 PC 환경만을 고려하고 제작하였는데 실제 Google Analytics 데이터를 확인해 본 결과 모바일과 PC 이용 비율이 5:5로 나왔다.

입력은 PC에서 하더라도 간단한 조회를 위한 모바일 접속이 있을 수 있는 점에 대해 고려하지 못했던 것 같다.