brunch

You can make anything
by writing

C.S.Lewis

by 신현묵 May 26. 2017

Node.js 기반 백엔드 시스템,#6

프론트엔드 개발, OS와 작업큐, 배포와 자동화

그렇다면, Node.js에서 프런트엔드 영역은 어떻게 개발될까요. 기술 스택을 보면 위와 같은 형태로 일반적으로 사용됩니다. JQuery는 너무도 당연합니다. 또한, Bootstrap 등이 가장 많이 사용됩니다.

Font Awesome은 다양한 폰트처리와 Bower, Less/sass, Angular.js는 복합적으로 많이 사용됩니다.


하지만, 아주 능숙한 자바스크립트 개발자가 아니라면 JQuery + AJax의 형태가 적당합니다. 특히, Angular.js는 기능 구사가 많은 웹앱이 아니고서는 큰 이익이 없을 것입니다.


MVC프레임워크에 대한 이해도가 떨어지고, 자바스크립트와 CSS/DOM과 같은 기초지식이 많이 부족하다면 Angular.js는 비추입니다.


그 이외에도 Node.js를 구성하는 서버 OS는 잘 모르면 우분투가 좋습니다. 관리하기가 가장 수월하기 때문에 적극 추천합니다. 다만, 보안이나 성능 이슈가 있다면 다른 배포판들을 고민해야겠죠.


웹서버나 Was에 대한 고민은 사실상 Node.js만 사용한다면 큰 고민거리는 아닙니다. Node.js의 내부에 탑재된 내부 http모듈로 충분하기 때문이죠.


하지만, 프로젝트가 Node.js로만 끝나는 것이 아니기 때문에 NginX나 Apache에 대해서는 같이 고민이 필요합니다.


순수한 웹페이지에 가까운 것들과 혼용하려면 Apache가 적합하고, RESTFull API 형태로만 혼용되려면 Nginx가 적합합니다.


그리고, 당연하게 이미지 서버에 대해서도 고민해야 합니다. 초기 개발할 때에는 사실 고민하지 말고, 현재 시점에서 가장 효과적인 AWS S3를 추천합니다. 고민할 필요 없이 하나의 서버처럼 다루고, 관리도 편하며, 성능도 고성능으로 보장됩니다.


다만, 가격 문제가 좀 고민이기는 합니다만. 이 문제는 실제 서비스가 어느 정도 정착된 다음에 CDN 서비스나 별도의 이미지 서버의 형태로 전환하는 것이 효과적입니다.


별도 이미지 서버를 만들 정도로 '대박'이난 다면 모를까요. 대부분은 CDN정도에서 타협이 됩니다.


그 이외에도 효과적인 작업 큐를 위한 고민이 따라갑니다. 쇼핑몰 구조에서 주문을 받게 한다던지, 비동기 작업에 대한 처리, SMS업체와의 연동 등을 위한 작업 큐에 대해서는 필수적으로 따라갈 것입니다.


또한, 배치 처리나 자동화를 위한 작업을 위해서 cron과 fabric 등의 배치작업에 대한 준비를 해야 하고, 배포 자동화를 위해서 chef나 puppet의 사용을 고민하게 됩니다.


Docker의 경우는 서버 관리자들이 고민을 많이 할 것이고, 개발자 관점에서는 CI/CD를 위한 고민을 우선적으로 하면 됩니다.


그 이외에 오픈소스나 무료 버전의 SMS인 Nagios나 Zabbix, zenos 등을 고민합니다. 사실, 이때에도 월 몇천 원 정도로 서버를 관리할 수 있는 와탭의 SMS 서비스를 고민하시기 시작해도 좋습니다.


와탭은 뒤에 설명할 콜백 지옥을 넘어설 Node.js기반의 APM과 SMS를 모두 갖추고 있으니까요.

http://whatap.io


매거진의 이전글 Node.js 기반 백엔드 시스템,#5
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari