기본 HTTP 요청하기


var http = require('http');
var options = {
    hostname: 'httpbin.org',
    path: '/ip'
  };

function handleResponse(response) {
  var serverData = '';
  response.on('data', function (chunk) {
    serverData += chunk;
  });
  response.on('end', function () {
    console.log("received server data:");
    console.log(serverData);
  });
}

http.request(options, function(response){
  handleResponse(response);
}).end();



참고 사항


 - 접속 옵션 지정시, URL 중 호스트명은 hostname에, 세부 하위 경로는 path에 들어간다.


 - https 접속을 하려면, http 모듈 대신에 https 모듈을 사용하면 된다.


var http = require("https");


 - 특정 포트 지정시는 아래와 같이 추가한다.


var options = {

  ...

  port: '4242'

  };




POST 요청하기


var http = require("http");
var options = {
  hostname: 'httpbin.org',
  path: '/post',
  method: 'POST',
  headers: {
    'Content-Type': 'text/html',
  }
};

var req = http.request(options, function(res) {
  console.log('Status: ' + res.statusCode);
  console.log('Headers: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (body) {
    console.log('Body: ' + body);
  });
});
req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});

req.write(
    '{"text": "test string"}'
);
req.end();




참고 사이트


 - http://httpbin.org : 각종 HTTP 요청들에 대한 응답을 테스트할 수 있는 사이트



,


package-install 기능은 Emacs 24 이상 버전에 기본 내장되어있는 패키지 관리 기능이다.




MELPA 서버 추가


package-install 기능은 기본적으로 ELPA 서버로 세팅되어있으나, MELPA 서버를 추가하면, 매일 업데이트되는 좀 더 다양한 패키지를 이용할 수 있다.


.emacs 파일에 다음 내용을 추가한다.


(when (>= emacs-major-version 24)
  (require 'package)
  (add-to-list
   'package-archives
   '("melpa" . "http://melpa.org/packages/")
   t)
  (package-initialize))


MELPA stable 저장소를 추가하려면, '("melpa" . "http://melpa.org/packages/") 대신에 아래 내용을 추가하면 된다.


'("melpa-stable" . "https://stable.melpa.org/packages/")




사용 방법


1. M-x를 누른 후, list-package를 입력하면, 패키지 리스트가 나타난다.


2. 여기서 사용 가능한 주요 키보드 명령은 다음과 같다. (모든 명령을 보려면 M-x를 누른 후, describe-mode를 입력한다)


Enter : 해당 패키지에 대한 설명 페이지를 불러온다.
i : 설치를 하기 위해 체크한다.
u : 체크를 해제한다.
d : 언인스톨을 위해 체크한다.
x : 체크한 내용을 실행한다.
r : 서버로부터 리스트를 갱신한다.



패키지 명을 직접 입력하여 설치를 할 수도 있다.

1. M-x를 누른 후, package-install을 입력한다.


2. 원하는 패키지 명을 입력하면 바로 설치된다. Tab키를 누르면 입력가능한 목록을 확인할 수 있다.




패키지 업그레이드


패키지 리스트에서 U(대문자 u) 키를 누르면 업그레이드된 패키지에 i 체크가 되고 이전 패키지에 d 체크가 되어 한꺼번에 업그레이드할 수 있는 기능이 지원이 되나, 안정적이지 않아 하나씩 삭제 후, 다시 설치하는 것이 권장된다.




저장소 서버들


 - http://elpa.gnu.org/ : Emacs와 함께 배포되는 기본 저장소. Free Software Foundation에 의해 서명된 비교적 적은 수의 패키지를 보유.


 - http://marmalade-repo.org/ : 좀 더 많은 패키지를 보유하고 있는 저장소.


 - http://melpa.org/ : 매일 업데이트되는 가장 많은 패키지를 보유하고 있는 저장소.



참고 사이트


 - http://ergoemacs.org/emacs/emacs_package_system.html




<테스트 환경>

OS : Windows 7

Emacs 버전 : Emacs 24.3 윈도우


,

Vaadin은 일반적인 웹 프론트엔드 프레임워크가 Javascript로 되어있는 것과는 달리 Java를 사용하여 웹프론트엔드를 작성할 수 있는 프레임워크이다. (GWT 기반)


Java에 보다 익숙한 개발자가, 대용량 페이지가 아닌, 사내용의 싱글페이지 위주의 웹 프론트엔드 개발시에 적합하다.


사전 설치 요구사항

  • JDK 8

  • Maven


예제 프로젝트 설치

  • 7.x.x 부분에 실제로 사용할 Vaadin 버전을 넣어준다.

mvn archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=7.x.x -DgroupId=com.pany -DartifactId=project-name -Dversion=0.1 -Dpackaging=war


예제 프로젝트 실행

mvn jetty:run


참고 사이트



<테스트 환경>

OS : Windows 7

Vaadin 버전 : 7.7.5



,

텔레그램 봇은

  • 독립적으로 명령과 응답을 양방향으로 주고 받으면서 동작하거나,
  • 채널에 추가하여 채널을 업데이트하는데 사용될 수 있습니다. (공개 채널만 가능!)
여기서는 채널에 추가하여 채널을 업데이트하는 방법을 정리해보겠습니다.


텔레그램 봇 추가

  1. 봇의 아버님과 면담을 요청한다.(퍽!) 방법은 검색창에 @BotFather를 입력하고 친구추가를 한다.
  2. 봇을 추가하기 위해 /newbot을 입력한다.
  3. 봇의 이름을 입력한다. (디스플레이에 사용되는 이름이다)
  4. 봇의 사용자명을 입력한다. 마지막이 bot 혹은 Bot으로 끝나야한다. (봇 ID. 검색, 봇의 경로명에 사용된다)
  5. 봇이 생성되면, 아래와 같은 부분에 출력되는 텔레그램 봇 토큰을 잘 메모해둔다.
    Use this token to access the HTTP API:
    ......
    

텔레그램 채널 추가

  1. 채팅방 탭에서 아래와 같은 새 메시지 버튼을 누른다.
  2. 새 채널 항목을 선택한다.
  3. 채널명을 입력 후, 다음을 누른다.
  4. 텔레그램 봇을 사용하기 위해서는, 채널 종류는 공개를 선택해야 한다.
  5. 아랫쪽에 다른 유저들이 채널을 찾을 수 있는 채널 ID도 입력 후, 다음을 누른다.
  6. 다음을 눌러 채널 생성을 완료한다.

텔레그램 봇 채널에 추가하기

  1. 텔레그램 채널에 들어가면 사진 아이콘을 눌러 채널 정보로 들어간다.
  2. 관리자 항목을 선택한다.
  3. 관리자 추가 항목을 선택한다.
  4. 대화상대 선택화면이 나타나는데, 텔레그램 봇은 리스트에 나타나지 않지만, 4번에서 입력했던 텔레그램 봇의 사용자명을 검색창에 입력하면 추가가 가능하다. 텔레그램 봇을 추가한다.

텔레그램 채널에 메세지 보내기


이제 준비 작업은 모두 끝났다. 텔레그램 채널에 메세지를 보내려면, 어떤 수단을 사용해서든지(프로그래밍 언어, IFTTT 등) 아래 옵션으로 HTTP 요청을 보내면 된다. <텔레그램 봇 토큰>에는 5번에서 적어둔 내용이, <채널 ID>에는 10번에서 입력한 값이 들어간다.

URL : https://api.telegram.org/bot<텔레그램 봇 토큰>/SendMessage
Method : POST
Content : application/json
Body : {"chat_id": "@<채널 ID>", "text": "<보낼 메세지>"}
단, 이 방식을 사용하면 채널을 공개로 설정했기 때문에, 채널 ID만 알면 누구든지 채널에 올라가는 내용을 볼 수 있다는 점에 주의하도록 한다.


좀 더 구체적인 방법에 대해서는 다음 회에 계속~~


참고 사이트

  • 더 많은 텔레그램 봇 라이브러리들 : https://core.telegram.org/bots/samples


,

Node.js는 일반적인 자바스크립트가 웹 브라우저에서 구동되는 것과는 달리, 인터프리터 언어와 같은 방식으로 데스크탑 혹은 서버에서 자바스크립트를 동작시킬 수 있는 자바스크립트 런타임이다. Chrome V8 자바스크립트 엔진을 기반으로 하고 있다.


설치


1. https://nodejs.org 에서 최신 버전을 다운받아 설치한다.



테스트


1. 다음의 내용을 hello.js 파일로 저장한다.


console.log('Hello Node.js!');


2. 위의 파일을 실행해본다.


node hello.js



참고 사이트


 - https://nodejs.org/ko/


 - http://www.tutorialspoint.com/nodejs/




<테스트 환경>

OS : Windows 7

Node.js 버전 : v4.5.0 LTS



,


Hunchentoot는 Common Lisp로 쓰여진 웹서버이다.




설치


1. QuickLisp를 설치한다.


-> 참고 : QuickLisp 사용방법


2. 다음과 같이 입력하여, Hunchentoot를 설치한다.


(ql:quickload "hunchentoot")




테스트


1. 다음과 같이 입력한 후, http://127.0.0.1:4242/로 접속해보면 간단한 테스트 페이지를 볼 수 있다.


(hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242))



2. 약간 더 고급진(?) 테스트를 해보고 싶다면, 아래와 같이 입력한 후(1번 실행 후), http://127.0.0.1:4242/yohttp://127.0.0.1:4242/yo?name=Dude로 접속해보자.


(hunchentoot:define-easy-handler (say-yo :uri "/yo") (name)
  (setf (hunchentoot:content-type*) "text/plain")
  (format nil "Hey~@[ ~A~]!" name))



3. Hunchentoot에서 제공하는 예제를 설치하면, 좀 더 많은 예제 페이지를 볼 수있다. 아래와 같이 설치한 후(1번 실행 후), http://127.0.0.1:4242/hunchentoot/test로 접속해보자.


(ql:quickload "hunchentoot-test")




링크


- Hunchentoot 홈페이지 : http://weitz.de/hunchentoot/



<테스트 환경>

OS : Windows 7

SBCL 버전 : 1.2.7


Hunchentoot 버전 : 1.2.35




,


QuickLisp는 Common Lisp와 함께 사용될 수 있는 라이브러리 매니저이다.



설치 참고사항


- 지원 플랫폼 : Linux, Mac OS X, Windows

- 지원 Common Lisp 구현체 : ABCL, Allegro CL, Clasp, Clozure CL, CLISP, CMUCL, ECL, LispWorks, MKCL, SBCL, Scieneer CL



설치


1) QuickLisp 홈페이지상의 링크 혹은 다음 커맨드를 사용해서 QuickLisp.lisp 파일을 다운받는다.


홈페이지 : https://www.quicklisp.org/


curl -O https://beta.quicklisp.org/quicklisp.lisp



2) [선택사항] QuickLisp 홈페이지상의 링크 혹은 다음 커맨드를 사용해서 사인키를 다운받는다.

curl -O https://beta.quicklisp.org/quicklisp.lisp.asc



3) [선택사항] 다운받은 QuickLisp.lisp 파일을 검증한다.


gpg --verify quicklisp.lisp.asc quicklisp.lisp



4) QuickLisp.lisp 파일을 실행한다. (SBCL의 경우)


sbcl --load quicklisp.lisp



5) REPL 상에서 다음 커맨드를 입력하여 QuickLisp 설치를 진행한다.

(quicklisp-quickstart:install)



6) [선택사항] 다음 커맨드를 입력하여 다음 번 시작시에 QuickLisp가 자동 로드되도록 한다.


(ql:add-to-init-file)



사용 방법


1) 라이브러리 검색


(ql:system-apropos "vecto")



2) 라이브러리 설치 (혹은 이미 설치되어있을 경우, 로딩을 수행한다)


(ql:quickload "vecto")



기타


- (ql:add-to-init-file)을 실행하지 않았을 경우, 다음 번 실행시에 <사용자 폴더>/quicklisp/setup.lisp 파일만 로딩하는 것으로 QuickLisp 기능을 사용할 수 있다.


(load "~/quicklisp/setup.lisp")


- 런타임에 생성되는 파일은 <사용자 폴더>/quicklisp에 저장되니 언인스톨시 이 파일들도 지우도록 한다.



링크


- 홈페이지 : https://www.quicklisp.org/



<테스트 환경>

OS : Windows 7

QuickLisp 버전 : beta



,


SBCL과 함께 제공되던 Lisp 라이브러리 매니저인 asdf-install은 폐기되었습니다.


그 대체품으로 최근에는(?) QuickLisp가 쓰입니다.


-> 참고 : QuickLisp 사용 방법


,