티스토리 뷰

코틀린으로 구현하는 당신의 첫번째 Node.js app [번역] 


원문제목 : Your first Node.js app with Kotlin


노드는 자바스크립트 기반의 강력한 서버사이드 플랫폼입니다. 슬랙봇에서 부터 경량의 REST API 또는 파이어베이스 기반의 푸시 알림서비스까지 사용됩니다.


젯브레인사에서 개발한 코틀린은 차세대 언어로 안드로이드 개발 진영으로부터 자바를 대체할 언어로써 인기를 끌고 있습니다.


저는 왜 코틀린을 안드로이드 프로젝트에서 사용해야하는지를 이야기하진 않을것입니다. 다만, 자바스크립트를 대신해 코틀린을 사용한 노드 앱을 구현하는 방법에 대해 말하겠습니다.


이 가이드의 목적은 제가 슬랙 봇을 만든 경험을 토대로 노드 기반의 서버를 개발해 보고 싶은 안드로이드 개발자들에게 맞춰져 있습니다.


실습코드는 https://github.com/miquelbeltran/kotlin-node.js 에서 확인하실 수 있습니다.


Node.js


우선 노드를 당신의 PC에 설치하세요. 노드는 npm 이라고 불리는 패키지 관리자를 가지고 있습니다. 

설치가 되었다면, 아래와 같이 프로젝트를 구성하세요.


  • 우선, 빈프로젝트 폴더를 노드 프로젝트로 구성합니다.
npm init


  • 그다음 코틀린 패키지를 설치하세요.

    npm install kotlin --save


    • 마지막으로,  ExpressJS 를 사용한 작은 REST API 로 만들어질겁니다. 아래와 같이 ExpressJS 라이브러리를 추가해주세요.
    npm install express --save


    이제 노드 프로젝트 셋팅은 끝났습니다. 이제 코틀린을 적용해보겠습니다.


    Kotlin


    코틀린 프로젝트를 자바스크립트로 설정할경우 문서를 살펴보는 것은 항상 좋은 방법입니다. 
    개인적으론 IDEA 기반의 프로젝트보다는 그레이들을 추천하는데, 그 이유는 우린 이미 안드로이드 개발에 익숙하기때문에 그레이들이 낯설지 않을것이기 때문입니다.
    그레이들을 매뉴얼대로 설치해야하는것을 기억하세요.


    당신의 gradle.build 파일은 아래와 같아야 합니다.



    kotlinOptions은 꼭 필요합니다.  moduleKind에는 commonjs가 세팅되어있어야 하고,  outputFile에 들어갈 값은 쉬운 경로로 변경하길 추천합니다.


    당신의 코틀린 소스는 src/main/kotlin/에 위치해있어야 합니다.


    이제 첫번째 코틀린 파일을 만들어 보죠.



    이 예제에서 저는 서버 포트는 3000번 그다음 ExpressJS 라이브러리를 불러오고, "I am a beautiful butterfly"를 응답하는 GET 종단점을 만들었습니다.  



    Let’s run


    우선, 그레이들을 이용해 코틀린코드를 자바스크립트로 컴파일해야합니다.
    gradle build

    자바스크립트 파일은  node/index.js  에 생성될것이며 당신이 작성한 코틀린 코드가 자바스크립트로 컴파일되어 있을것입니다. 


    이제, 노드 서버를 시작해보죠.
    node node/index.js

    잘 동작합니다! http://localhost:3000 으로 접속하여 확인할수있습니다.



    In Summary


    코틀린은 자바스크립트로 컴파일가능한 유일한 언어는 아니지만, 안드로이드 개발자 사이에선 인기가 점점 높아지고 있는 언어입니다. 만약 당신이 이미 코틀린을 사용하신다면, 다른 용도로 사용해보지 않을 이유가 없습니다.

    당신이 독립적인 안드로이드 개발자라면,  마이크로 서비스를 신속하게 개발 할수 있는 능력이 어플리케이션을 발전 시키는데 큰 도움이 될것입니다.

    보신것처럼 작은 서비스를 만드는데 몇분밖에 걸리지 않았고, 당신에게 익숙한 IDE를 사용했으며 보일러 플레이트 코드는 거의 존재하지 않았습니다.


    'Kotlin' 카테고리의 다른 글

    코틀린으로 구현하는 당신의 첫번째 Node.js app [번역]  (1) 2019.03.04
    댓글
    댓글쓰기 폼