설치하기

  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 부분에 아래와 같이 추가해준다. (버전은 참고사이트에서 최신 버전을 확인하자)

1
2
3
4
5
6
7
(defproject projectname "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :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. 준비 작업

1
2
3
4
5
6
(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


,

파이썬을 사용하여 텔레그램 채널에 메세지를 보내는 예제입니다.
<텔레그램 봇 토큰>과 <채널 ID> 부분은 아래 글에서 설명했던 값으로 바꿔줍니다.


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


Python 2 :
1
2
3
4
5
6
7
8
9
10
11
# -*- coding: utf-8 -*-
 
import requests
  
url = "https://api.telegram.org/bot<텔레그램 봇 토큰>/sendMessage"
headers = {"Content-type": "application/json"}
params = '{"chat_id": "@<채널 ID>", "text": "test string [한글]"}'
r = requests.post(url, headers = headers, data = params)
  
print(r.text)
print(r.status_code)
Python 3 :
1
2
3
4
5
6
7
8
9
10
11
# -*- coding: utf-8 -*-
 
import requests
  
url = "https://api.telegram.org/bot<텔레그램 봇 토큰>/sendMessage"
headers = {"Content-type": "application/json"}
params = '{"chat_id": "@<채널 ID>", "text": "test string [한글]"}'
r = requests.post(url, headers = headers, data = params.encode("UTF-8"))
  
print(r.text)
print(r.status_code)


참고 글


<테스트 환경>
 - OS : Windows 7
 - Python 버전 : 2.7, 3.6
,


기본 HTTP 요청하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import httplib
 
conn = httplib.HTTPConnection("httpbin.org")
 
conn.request("GET", "/ip")
r1 = conn.getresponse()
print r1.status, r1.reason
data1 = r1.read()
print data1
 
conn.request("GET", "/get")
r2 = conn.getresponse()
print r2.status, r2.reason
data2 = r2.read()
print data2
 
conn.close()
  • https 접속을 하려면, httplib.HTTPConnection 대신에 httplib.HTTPSConnection을 사용한다.

> conn = httplib.HTTPSConnection("httpbin.org")

  • 특정 포트 지정시는 아래와 같은 방법 중 한가지를 사용한다.

> conn = httplib.HTTPConnection("httpbin.org:80")

> conn = httplib.HTTPConnection("httpbin.org", 80)


POST 요청하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import httplib, urllib
 
conn = httplib.HTTPConnection("httpbin.org")
 
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
headers = {"Content-type": "application/x-www-form-urlencoded",
           "Accept": "text/plain"}
conn.request("POST", "/post", params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
print data
 
params = "test string"
headers = {"Content-type": "text/html"}
conn.request("POST", "/post", params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
print data
 
conn.close()


참고 사이트

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


<테스트 환경>

 - OS : Windows 7
 - Python 버전 : 2.7


,

사전 설치 요구사항

  • JDK 8
  • Eclipse EE버전


설치

  1. Eclipse를 실행한다.
  2. Help -> Eclipse Marketplace 메뉴를 실행한다.
  3. vaadin으로 검색한다.
  4. Vaadin Plugin for Eclipse를 설치한다.


프로젝트 생성

  1. File -> New -> Project 메뉴를 선택한다.
  2. Vaadin/Vaadin X Project 항목을 선택 후, 다음을 누른다.
  3. 프로젝트 명을 입력한다.
  4. 기본적인 예제 코드를 포함하는 프로젝트가 생성된다.


프로젝트 실행

  1. 프로젝트 오른쪽 클릭 후, Run As -> Run On Server 메뉴를 선택한다.
  2. Next 버튼을 누른다.
  3. 실행할 프로젝트를 왼쪽에서 오른쪽으로 이동 후, Finish 버튼을 누른다.


<테스트 환경>
OS : Windows 7
Eclipse 버전 : Mars
Vaadin Plug-in 버전 : 2.3.6
,


레퍼런스에 있는 내용이지만, 자주 까먹는 내용..


STL map 사용시, [] 연산자를 사용하여 참조를 할 때, 해당 엔트리가 없을 경우 엔트리가 추가된 후 NULL이 리턴된다.



map<A, B> some_map;


...


C = some_map[D];




엔트리가 추가되는 것을 원하지 않을 경우, find() 함수를 사용하여 미리 확인 후 참조하여야 한다.


if (some_map.find(D) != some_map.end()) {

  C = some_map[D];

}







,


참고 글


 - [Emacs] Emacs에서 package-install 기능 사용하기


 - [Emacs] Emacs에서 테마 적용 방법




Sublime Text 테마 적용하기


1) MELPA 서버가 추가된 상태에서, M-x를 누른 후, package-install을 입력한다.


2) 패키지명으로 monokai를 입력하여 설치한다.


3) M-x를 누른 후, load-theme를 입력한다.


4) 테마명으로 monokai를 입력한다.


5) .emacs 파일에 아래와 같이 추가한다.


(load-theme 'monokai)





<테스트 환경>

OS : Windows 7

Emacs 버전 : Emacs 24.3 윈도우


,

사전 준비사항

  1. 새로운 clojure 프로젝트를 생성한다.
  2. clj-http 모듈 사용을 위해서 project.clj 파일의 dependencies 부분에 아래와 같이 추가해준다. (버전은 참고사이트에서 최신 버전을 확인하자)
    1
    2
    3
    4
    5
    6
    7
    (defproject projectname "0.1.0-SNAPSHOT"
      :description "FIXME: write description"
      :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"] ])

기본 HTTP 요청하기 예제

1
2
3
4
5
(require '[clj-http.client :as client])
 
(client/get "http://httpbin.org/ip")
 
(println "done")

POST 요청하기 예제

1
2
3
4
5
6
7
(require '[clj-http.client :as client])
 
(println (client/post "http://httpbin.org/post"
  {:body "{\"text\": \"test string\"}"
            :headers {"Content-Type" "application/json"}}))
 
(println "done")

응답

  • client/get 혹은 client/post를 호출했을 때, 응답은 다음과 같은 형식이 되며 실제 HTML은 :body ~ 부분에 오게된다.

    {:orig-content-encoding ..,
     :trace-redirects ..,
     :request-time ..,
     :status ..,
     :headers
     {"Server" ..,
      "Via" ..,
      .. },
     :body .. }
    

  • :body 부분만 추출하기 위해서는 아래와 같이 호출하면 된다.

    1
    (:body (client/get "http://httpbin.org/ip"))

참고 사이트

<테스트 환경>
 - OS : Windows 7
 - Leiningen 버전 : 1.0.0
,