Showing posts with label kafka. Show all posts
Showing posts with label kafka. Show all posts

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 부분을 호출에 성공을 한 겁니다 ㅠ