1. core.clj에 (:gen-class) 구문 추가
    (ns <프로젝트명>.core
     (:gen-class))
    
  2. core.clj에 main 함수 추가
    (defn -main
     [& args]
     (<시작 함수명> <시작 함수 파라미터>))
    
  3. project.clj에 다음 구문 추가
    :main ^:skip-aot <프로젝트명>.core
    :target-path "target/%s"
    :profiles {:uberjar {:aot :all}}
    


    <테스트 버전>
    Eclipse 버전 : Mars
    CCW 버전 : 0.35.0.STABLE001
    Leiningen 버전 : 1.0.0
    
,

로그인 등에서 서버로부터 전달받은 쿠키를 유지해야하는 경우, requests 모듈을 사용하는 것이 낫다.


사전 설치 요구사항


requests 모듈 사용시, 추가적인 requests 모듈 설치를 필요로 한다.

pip install requests


기본 HTTP 요청

import requests
 
r = requests.get('http://httpbin.org/ip') 

print(r.text)
print(r.status_code)
 
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('http://httpbin.org/get', params=payload)
 
print(r.url)
print(r.text)
print(r.status_code)
  • https 접속을 위해서는 url 안에 직접 ’https://~’와 같은 형식으로 입력하면 된다.
  • 특정 포트 지정시는 아래와 같이 사용한다.
  • r = requests.get('http://httpbin.org:8080/ip') 
    


POST 요청

import requests

r = requests.post('http://httpbin.org/post', data = {'key':'value'})

print(r.text)
print(r.status_code)


헤더 추가

import requests
 
url = 'http://httpbin.org/get'
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get(url, headers=headers)


참고 사이트


<테스트 환경>
 - OS : Windows 7
 - Python 버전 : 2.7
,
  1. 다음 페이지에서 lein2-eclipse 플러그인 소스를 다운받는다.


  2. lein2-eclipse 소스 디렉토리로 이동한다.

  3. 소스를 빌드 후, 로컬 Repository에 설치한다.

    lein install
    

  4. Import할 프로젝트의 project.clj 파일에 다음 구문을 추가한다.

    :plugins [[lein2-eclipse "2.0.0"]]
    
    혹은
    
    :plugins [<기존 플러그인> [lein2-eclipse "2.0.0"]]
    

  5. Import할 프로젝트 디렉토리로 이동해서 다음과 같이 입력하면 .project 파일과 .classpath 파일이 생성된다.

    lein eclipse
    

  6. Eclipse에서 프로젝트를 Import한다.

  7. Configure -> Convert to Leiningen Project 메뉴를 실행하여 Leiningen 프로젝트로 변환한다.


<테스트 버전>
Eclipse 버전 : Mars
CCW 버전 : 0.35.0.STABLE001
Leiningen 버전 : 1.0.0


,

설치하기

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

  2. markdown-mode를 찾아서 설치한다.


사용법

  1. Markdown 모드로 전환 : M-x를 누른 후, markdown-mode를 입력한다.

  2. GitHub 스타일의 markdown 모드(GitHub Flavored Markdown, GFM)로 전환 : M-x를 누른 후, gfm-mode를 입력한다.


Markdown 요소 입력 단축키

  1. Markdown / GFM 모드에서 아래의 단축키들을 사용하여 Markdown 요소들을 한번에 추가/수정하는 것이 가능하다.

    - C-c C-t 1 : 1단계 제목 요소 입력
    - C-c C-t 2 : 2단계 제목 요소 입력
    - C-c C-s e : 이탤릭체 요소 입력
    - C-c C-s s : 볼드체 요소 입력
    - C-c C-s b : 인용 블럭 변환
    - C-c C-s c : 코드 블럭 변환
    - C-c C-a l : 인라인 링크 입력
    - C-c C-j : 리스트 아이템 입력
    - C-c - : 가로줄 입력
    - C-c C-k : 입력한 요소를 한번에 삭제
    
  2. 보다 많은 단축키에 대해서는 참고 사이트나 emacs 상의 Markdown 메뉴를 참고하도록 한다.


HTML 변환 관련 단축키


Markdown –> HTML 변환 기능을 지원하기 위해 다음 단축키들을 제공한다.

- C-c C-c m : 변환한 결과를 다른 버퍼창을 통해 보여준다.
- C-c C-c e : 변환한 결과를 HTML 파일로 저장한다.
- C-c C-c p : 변환한 결과를 브라우저를 통해 보여준다.

[참고] 많은 경우, 생성된 HTML에 charset 설정이 되어있지 않기 때문에 한글 사용시 제대로 보이지 않을 수 있다. <head>~</head> 사이에 아래와 같은 형태로 인코딩 지정을 추가하면 한글을 제대로 볼 수 있다.

<head>
...
<meta charset="utf-8">
</head>


외부 변환 프로그램 세팅


HTML 변환 기능을 사용하기 위해서는 외부 변환 프로그램 세팅이 필요하다. 변환 프로그램은 플랫폼의 종류에 따라 여러가지가 있지만 여기서는 윈도우 환경 등에서 사용할 수 있는 MultiMarkdown 프로그램을 사용하겠다.

  1. http://fletcherpenney.net/multimarkdown/을 방문하여 다운로드 페이지에서 프로그램을 다운받아 설치한다. (스페이스가 포함되지 않은 경로에 설치하여야 한다.)
  2. .emacs 파일에 다음과 같이 MultiMarkdown 실행파일의 경로를 추가한다.

    (setq markdown-command "C:/MultiMarkdown/bin/multimarkdown.exe")


Markdown Preview Mode 설치


수동으로 Markdown을 HTML으로 변환한 결과를 확인하려면 번거로운 점도 있고, 위에서 언급한 한글 인코딩 문제도 있기 때문에 markdown preview mode도 같이 설치할 것을 추천한다. 패키지 리스트에서 markdown-preview-mode를 검색해서 설치한다.


설치 후, Markdown 모드에서 M-x markdown-preview-mode를 입력하면 브라우저 창이 뜨고, 저장시 실시간으로 변환 결과를 확인할 수 있다. 물론 한글 문제도 없다.


Preview mode를 종료하려면, M-x markdown-preview-cleanup을 입력하면 사용된 웹서버가 종료된다.


참고 사이트


<테스트 환경>
OS : Windows 7
Emacs 버전 : Emacs 24.3 윈도우


,

사전 준비 사항


clj-http 모듈 사용을 위해서 project.clj 파일의 dependencies 부분에 아래와 같이 추가해준다. (버전은 참고사이트에서 최신 버전을 확인하자)

(defproject projectname "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]
                  [clj-http "2.2.0"]])


채널 포스팅


Clojure를 사용하여 텔레그램 채널에 메세지를 보내는 예제입니다.


<텔레그램 봇 토큰>과 <채널 ID> 부분은 아래 글에서 설명했던 값으로 바꿔줍니다.


–> 텔레그램 봇으로 채널 포스팅 - 1. 준비 작업

(require '[clj-http.client :as client])

(println (client/post "https://api.telegram.org//bot<텔레그램 봇 토큰>/sendMessage"
  {:body "{\"chat_id\": \"@<채널 ID>\", \"text\": \"test string\"}"
            :headers {"Content-Type" "application/json"}}))
(println "done")


참고 글


참고 사이트


<테스트 버전>

Eclipse 버전 : Mars
CCW 버전 : 0.35.0.STABLE001
Leiningen 버전 : 1.0.0


,