Thursday, April 28, 2016

AngularJS와 NodeJS간 호출(통신)하는 예제(KAFKA)

NodeJS


본사에서 프로젝트를 하다 보니 화면 작업을
하고 있고, 어느 순간 AngularJS라는 것을
사용하고 있고, 또 그렇게 작업을 하다가
막히는게 있어서 찾아보니 AngularJS가
NodeJS를 기반으로 돌아가고 있다고 하네요.
전 뭐 AngularJS와 NodeJS를 같이 사용해야
되는 건가 보네.. 라고 막연하게만 생각하고
있었는데 그렇지는 않다고 하네요 ㅋㅋㅋ


또 오늘 마침 NodeJS 관련 기사가 있길래
읽어 보니 NodeJS가 주목 받는 이유 중에
하나가 프론트엔드와 백엔드 작업을 할 때
화면과 같이 눈에 보이는 부분은 JavaScript
로 작업을 하고, 눈에 보이지 않는 서버 관련
작업은 JavaScript로 하지 않아 이 두 작업이
서로 다른 기술을 필요로 했으나 NodeJS에서는
프론트엔드건 백엔드건 모두 JavaScript로
작업을 할 수 있게 해서라고 합니다.
기존 자바스크립트 개발자들은 물론 저와 같이
자바스크립트를 해보지 않은 개발자들까지
관심을 가질 수 밖에 없게 되는 것이죠~

어찌 되었든 이러한 이유로 AngularJS로
개발을 하고 있고 위에서 말한 것처럼 화면,
서버 둘 다 JavaScript로 개발을 하고 있습니다.
정확히는 AngularJS로 개발을 하고 있죠.
(AngularJS 자체가 JavaScript 기반)

닥치는 데로 하다 보니 오늘 하루종일 삽질을
하다가 저녁 먹고 와서 해결한 게 있어서
푸념 삼아 블로그에 올려 봅니다.

AngularJS로 개발하고

구동은 NodeJS로...


아직도 개념이 정확히 잡히지 않은 상태라
표현이 길고 투박합니다;;;;
화면 개발을 AngularJS로 하고 있지만
그 바닥에는 NodeJS가 있는게 당연한 거지만
막상 제가 개발하고 있는 프로젝트에 NodeJS
문법이 사용되고 있다는 건 오늘 알게 되었답니다;

 
프로젝트를 구동할 때에 위에
파일로 실행을 하는데 전 이유도
모르고 그렇게 저 파일을 NodeJS로
실행하면 된다고 하니 실행만 했죠..
그러다가 오늘 이 파일에서 문제를
해결해야 되는 case가 생겨서 
기존AngularJS 방식대로 작업을
하려고 하는데 아무리 해도 안되는
겁니다. 나용을 간단히 설명하자면

기존에 Controller나 $scope, factory 로
개발한 화면 부분과 저 위에 실행하는
파일 간 통신을 할 필요가 생긴 겁니다.
그런데 아무리 해도 이 두 개가 연결이
안되는 겁니다... 계속 찾다 보니 이 실행
파일은 NodeJS 문법으로 작성된 소스이고,
화면 부분은 AngularJS 부분이니 서로 
다른 언어 간 통신을 하겠다고 둘 다
AngularJS 관점으로만 접근을 하니
NodeJS 부분이 제대로 돌아갈 리가
없는 거죠.....  결국 30분 전에
방법을 찾았습니다. 결과 내용은
다음과 같습니다.

AngularJS의 Controller에서 버튼을 눌러
NodeJS 의 특정 함수를 호출한다!

참 이 거 할려고 정말 오늘 하루 종일
엄청난 시간을 할애 했습니다...

<View>

 
<controller>

<NodeJS 소스>

소스 내용도 길지 않고, 내용도 별거 없지만
그건 알았을 때 이야기이죠... 몰랐던 거
알게된 걸로 전 오늘 만족할랍니다~

아 간단하게 설명을 드리자면 View 부분에
html 소스에서는 버튼을 누르면 test()라는
함수를 호출하고 test() 함수는 controller에
구현되어 있습니다. 호출된 test() 함수에서는
/performbatch 라는 값으로 nodeJS 부분을
호출하고 있고, 제일 밑에 NodeJS의 소스를
보시면 /performbatch라는 글자를 찾으실 수
있으실 겁니다. 그 값 옆에 function이 호출된
겁니다. 이로써 JavaScript 기반의 화면에서
NodeJS 부분을 호출에 성공을 한 겁니다 ㅠ

No comments:

Post a Comment