아하 REST API 서버 개발 (1)

finallee
aha.official
Published in
4 min readJan 17, 2019

왜 Node.js (Express) 인가?

Node.js 는 여러가지 웹 프레임워크를 지원하는데 그 중 가장 커뮤니티가 크고 활발히 진행중인 Express 로 Production Grade REST API 를 구현하는 방법에 대해 시리즈를 작성하고자 합니다.

저희가 서비스하는 지식커머스플랫폼 아하도 Backend 에서는 Express 로 동작하고 있습니다. (들어오셔서 회원가입도 좀 ^^ 소심히 광고…)

사실 저는 PHP 개발자였습니다.

세상에…PHP 개발자라니!….

저희 회사의 거의 모든 인프라 및 많은 서비스들을 Laravel 기반으로 개발, 배포했으며, 점점 성능도 사용성도 멋지게 업그레이드 되는 PHP 를 보면서 ‘오 역시 PHP 를 배우길 잘했어’ 라고 쓸데없는 자부심을 가졌던 것이 고작 8개월이 채 되지 않습니다.

사실 Node.js 가 굉장히 핫하다는 것은 여러 채널로 접하고 알고 있었지만 ‘서버가 자주 죽는다느니', ‘콜백이 너무 심하다느니…’ 등의 출처 없는 카더라 통신에 사로잡혀 쳐다도 보지 않고 있었습니다만…

블록체인과 결합하기 위해서는 Node.js 밖에는 답이 없다는 것을 알아서 이번 프로젝트에 눈물을 머금고 Node.js 를 배우기 시작했습니다.

결론은.

너 나하고 Node.js 하나 하자…

일단 익숙해지시면 다른 언어로 개발하시는 것보다 엄청나게 빠른 속도로 개발하실 수 있습니다. 그리고 테스팅 프레임워크가 이렇게 잘 되어있는 언어가 또 있을까 싶을 정도로 TDD 패러다임에 충실합니다.

Express 설치하기

본 매뉴얼 시리즈는 초보자 보다는 중상급자 이상 분들을 타게팅하여 제작되어질 예정입니다.

npm 과 node 가 정확히 무엇인지는 하기 링크를 통해 지식을 습득하시길 부탁드립니다.

첫번째로 express 는 최대한 express-generator 를 통해서 설치해주세요. 그렇지 않으면 정말 허허허허벌판에 서있는 듯한 황당함을 느낄 수 있습니다.

까꿍?
npm install -g express-generatorexpress restapi && npm install

위의 명령어를 통해 설치를 진행하시게 되면 일단 기본적인 express 를 사용할 준비가 된것입니다.

그럼 package.json 파일 잠시 볼까요?

scripts 부분에 start 가 있죠? 그럼 npm start 로 서버를 시작할 수 있다는 말이군요… 어서 시작해 보러 갑시다!

$ npm start
…..1 시간째…

엄청나게 드라마틱한 결과를 바랬는데 정말 좀 실망스럽긴하네요….

아무일도 일어나지 않은 것 같지만 express 서버는 현재 3000 포트에서 요청을 기다리고 있는 중입니다.

express 서버 설치 및 실행은 성공하였습니다.

그러면 다음 편에서는 실제로 요청과 응답을 보내보고 production grade 의 라우팅 구조를 작성해 보도록 하겠습니다.

--

--