Tools

[Tool] Stackedit

Stackedit 사용기

Stackedit 는 크롬 어플리케이션으로 Markdown 문법으로 문서 작성시 유용한 도구 입니다. 크롬 어플리케이션으로 작성이 되다 보니 운영체제에 관련 없이 사용할 수 있습니다.

마크다운 문법

HTML 문법을 간단하게 사용할 수 있는 방법입니다. 마크다운 문법 및 일반 HTML 코드도 그대로 사용할 수 있기 때문에 강점이 있습니다.
최근에는 대부분의 개발 문서를 Markdown 문법으로 작성하면 소스 저장소에서 마크다운 문법을 HTML로 변환하게 보여주기 때문입니다. 또 한가지 강점은 개발 문서에는 코딩 문법이 들어간 경우가 많은데 Syntax Highlight이 지원되는 것도 아주 좋습니다.

장점

편집기에 충실하다 보니 기능이 아주 많은 편은 아니지만 기본 기능에 아주 충실합니다. Intellij, Atom, SublimeText3 등 개발도구와 텍스트 에디터에서도 플러그인 형태로 제공은 하는데 플러그인을 설치해야 하고 다른 기능을 사용하려면 또 다른 플러그인을 설치해야 하는데 그런 과정이 필요 없습니다.

1. 공유 기능

Stackedit에는 워드프레스, 구글드라이브, 블로거, 드롭박스등 여러가지 서비스에 직접 배포 할 수 있는 기능이 지원됩니다. 에디터에서는 별도의 플러그인을 설치하거나 지원되지 않는 기능이어서 강점이 있습니다.

2. PDF 변환 기능

위에서 설명 드린 것처럼 Markdown 문법은 HTML문법을 사용하기 쉽게 만든 문법입니다. 그래서 웹에 올리게 되면 HTML과 동일한 코드로 표시가 됩니다. 결국 HTML 코드를 PDF로 변환되는 것인데 아주 편리합니다.

3. 미리보기

Stackedit에서는 편집된 결과를 바로바로 확인할 수 있는 기능이 있습니다. 화면을 50/50으로 분할하여 직접작성된 결과를 확인 할 수 있습니다.

4. 문서관리

로컬 저장소가 별도로 있기 때문에 편집중인 문서가 자동으로 저장되고 편집이 완료된 문서도 관리가 가능하기 때문에 좋습니다. 텍스트 편집기처럼 폴더별로 직접 관리 해도 되지만 Markdown 으로 작성된 문법만 별도로 관리하는 방법이 조금 더 편리한 것 같습니다.

5. 단축키

저는 단축키를 많이 사용하는 편인데 Stackedit에서는 블럭을 설정한 후 진하게, 기울림체, 링크등을 간단한 단축키 조합으로 처리할 수 있습니다.

단점

단점은 기능이 아주 많은 도구가 아니다 보니 몇개 생각이 안납니다.^^

1. PDF 변환이 유료

Stackedit에서 장점으로 말한 PDF 변환 기능은 연 5달러를 결제해야 사용이 가능합니다. 저는 결제를 하고 사용하고 있는데 크게 부담이 없는 금액이지만 아무래도 무료로 제공하면 더 좋지 않을까 하는 생각입니다.

속으로는 1년에 5달러정도는 지불해야 개발자도 먹고 살지 않을까 하는 생각입니다.

2. 이미지 추가

이미지 추가를 Stackedit에서 하기가 쉽지는 않습니다. 장점에서 말한 문서관리가 별도의 저장소에서 되기 때문에 로컬에 있는 파일을 참조하기가 불가능합니다. 단 Google+나 하이퍼링크를 통해서는 삽입이 가능합니다.

마지막으로

Markdown을 주로 사용하면서 편집기에 플러그인을 통해 하는 것과 별도의 전용 편집기를 설치하는 것도 모두 해봤지만 결과적으로 편집할 때 사용하는 것은 Stackedit만 남은 것 같습니다. 지금은 미리보기 기능이 없어도 대충 어떻게 결과가 나오는지 알아 편집기 없이 작성은 하고 있습니다.

그렇지만 미리보기가 필요한 경우와 PDF로 변환 할 필요가 있는 경우에는 대부분 Stackedit를 활용하고 있습니다.

개인적으로 최근 크롬어플리케이션을 개발하고 있는데 정말 잘 만든 앱이라고 생각합니다..^^

기본
Programming, Tools

[Tool] atom editor

 atom editor 사용기

원래 저는 새로운 프로그램을 사용하는 것을 굉장히 즐겨합니다. 새로운 프로그램을 사용하게 되면 새로운 단축키, 친숙하지 않은 UI 그리고 새로운 기능들에 대해 적응 하는 것을 굉장히 즐겨하는 편입니다.

친해지는데 어려움이 있지만 친해지고 나면 왠지 기분이 좋은 느낌이 들어서 입니다.

제가 사용해본 텍스트 에디터는 아래와 같이 여러개가 있습니다. 윈도우에서 기본으로 제공하는 노트패드는 제외했습니다.

  1. notepad++
  2. Editplus
  3. UltraEdit
  4. EmEditor
  5. atom
  6. vim
  7. sublime3

대략 3달정도 사용한 것 같은데 현재는 사용하지 않고 있습니다. 사용하지 않는 이유는 단점 부분에서 말씀드리도록 하겠습니다.

장점

여러가지 좋은 기능이 있겠지만 제가 생각하는 장점입니다.

테마

다른 에디터에 비해 기본 테마가 아주 마음에 들었습니다. 솔직히 테마는 기능에 영향을 주는 것은 아니지만 툴에서 굉장히 중요한 부분을 차지한 다고 생각합니다. 프로그래밍 도구를 설치하면 저는 가장 먼저 하는 일이 폰트와 테마를 변경하는 것입니다.

어두운 계열의 테마가 저는 마음에 들었는데 문법 강조나 다른 색상들이 아주 마음에 들었습니다. 너무 많은 색상을 사용하지 않은 것 같으면서 많이 사용한..

플러그인

대부분의 에디터들이 플러그인을 제공합니다. 그렇지만 회사에서 제공하는 플러그인만 있는 것이 아닌 사용자가 필요한 플러그인을 오픈소스로 만들어서 제공하기 때문에 제가 필요한 플러그인 정보는 거의 있었습니다.

또한 플러그인 매니저를 통해 설치 과정도 쉽고 사용하기도 쉬운 편입니다.

크로스 플랫폼

개발 환경을 OSX, Windows를 사용하기 때문에 OS별로 에디터를 변경해서 사용하는 것은 제 생각에는 별로 좋지 않다고 생각합니다. atom 에디터의 경우 크로스 플랫폼을 지원하기 때문에 다른 OS에 가더라도 단축키가 헷갈리거나 기능이 헷갈리지 않습니다.

오픈소스

마지막으로 atom 에디터는 github 에 소스가 공개되어 있습니다. 참조
저도 개발을 하는 입장이지만 크로스 플랫폼 에디터의 소스를 볼 수 있다는 것은 큰 이점입니다.

아직 보지는 못했습니다.

단점

제가 생각하는 단점입니다. 성격이 별로 불평을 하지 않는 편이라 많이는 없습니다.

제가 현재 사용하지 않는 이유는 기동시간 때문입니다.

텍스트 편집기라는 것은 복잡한 파일에 대한 수정 보다는 간단한 파일을 수정하는 경우가 많은데 기동시간이 오래 걸린다는 것은 수정하는데 시간이 오래 걸린다는 의미이기 때문에 멋진 테마를 포기하고 구동이 빠른 EmEditor를 사용하고 있습니다.

기동시간

이것은 크로스 플랫폼을 지원해서인지 몰라도 구동 시간이 생각보다 오래 걸립니다. 제가 atom 에디터 이후 notepad++EmEditor를 사용했는데 둘 간에 비교를 해봐도 많은 차이가 납니다.

그리고 전체적인 동작이 조금 느린 것 같다는 느낌이 듭니다.

큰 파일

로그 파일 100MB 이상을 여는데 시간이 오래 걸립니다. 만약 더 큰 파일을 여는 경우 atom 에디터가 죽는 현상이 발생됩니다. notepad++EmEditor의 경우는 그러한 증상이 별로 발생하지 않았습니다.

이상으로 atom에디터에 대한 제 생각을 마치겠습니다.

기본
Programming, Tools

[Tool] ILMerge

DLLEXE를 하나의 실행 파일로 만들기

C#을 이용해서 네트워크 테스트용 프로그램을 만들었는데 log4net.dllini-parser.dll 을 참조해서 실행 파일 하나로는 안되는 상황..

테스트 과정을 예상하니

  1. 테스트 프로그램을 USB에서 PC로 복사한다.
  2. 압축된 프로그램을 해제한다.
  3. 해제된 프로그램을 실행한다.

너무 불편할 것 같다는 생각이 들었습니다.

만약 실행 파일만 있다면 2번 과정이 생략되니 훨씬 편할 것 같았습니다.

http://stackoverflow.com/questions/10137937/merge-dll-into-exe

stackoverflow에서는 커맨드라인을 활용한 방법을 소개했는데 만들어보니 정상적으로 실행은 됐는데 실행 파일이 생성되지 않는 증상이 나타났습니다.

결국 ILMergeGUI 버전을 받아 쉽게 처리했습니다.

https://ilmergegui.codeplex.com/

기본
Tools

[Git] 문서파일 비교

git 레포지토리에는 MS-OFFICE 문서 파일이 포함되는 경우가 많이 있습니다.

만약 본인 또는 다른 사람이 문서 파일을 변경한 경우 문서의 어떤 부분이 변경 되었는지 확인 할 수 있다면 보다 효율적으로 업무를 볼 수 있습니다.

해당 내용은 Pro Git 이라는 책에도 어느정도 설명이 된 부분이지만 실제로 테스트를 해가며 적용한 내용을 공유하고자 합니다.

DOC[X] 비교

문서 파일을 비교하는 것은 pandocApache Tika 를 사용하는 방법이 있습니다. 물론 이외에 여러가지 방법이 있습니다.

 

pandoc 적용방법

1. Git Config 파일 수정

아래의 내용을 `.gitconfig` 파일에 추가합니다. `USER_HOME` 디렉토리는 `C:/Users/로그인계정` 입니다.

[USER_HOME/.gitconfig]

[diff "pandoc"]
textconv=pandoc --to=markdown
prompt = false

[alias]
wdiff = diff --word-diff=color --unified=1

2. Git Repository 디렉토리에 .gitattribute 파일 추가

Git 레포지토리로 이동하여 .gitattribute 파일을 생성한 후 아래의 내용을 넣습니다.

*.docx diff=pandoc

3. 문서 변경 부분 확인

저는 임의로 `test.docx` 라는 문서를 만들고 테스트를 했습니다.
`test.docx` 라는 파일에는 애국가가 적혀 있습니다.

[test.docx]

동해물과 백수산이 마르고 닳도록 하느님이 보우하사 우리나라만세.

이후 무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세 라는 후렴부를 추가했습니다.
비교된 결과를 확인해보겠습니다.

$ git diff
diff --git a/test.docx b/test.docx
index 44c02f2..27dc279 100644
--- a/test.docx
+++ b/test.docx
@@ -1 +1,3 @@
동해물과 백수산이 마르고 닳도록 하느님이 보우하사 우리나라만세.
+^M
+무궁화 삼천리 화려강산 대한 사람 대한으로 우리나라 만세.^M

불필요한 글자가 출력되기는 하지만 수정된 내용이 표시되었습니다.
무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세 소절에서 화려강산 이란 단어를 삭제하였습니다.

$ git diff
diff --git a/test.docx b/test.docx
index 27dc279..71bbf31 100644
--- a/test.docx
+++ b/test.docx
@@ -1,3 +1,3 @@
동해물과 백수산이 마르고 닳도록 하느님이 보우하사 우리나라만세.

-무궁화 삼천리 화려강산 대한 사람 대한으로 길이 보전하세.
+무궁화 삼천리 대한 사람 대한으로 길이 보전하세.^M

변경된 라인이 모두 출력됩니다.


Tika 적용방법

Apache Tika 의 경우 PPTX 포맷과 DOCX 포맷을 모두 지원한다는 장점이 있습니다.

1. Tika 다운로드

https://tika.apache.org/download.html 에서 tika-app 항목을 다운로드 합니다. 제가 테스트 하는 시점에서 tika 버전은 1.12 입니다.

2. 환경 변수 설정

다운로드한 tika-app-1.12.jar 파일을 환경 변수에 추가하거나 저장 위치를 확인합니다.

3. 배치 파일 생성

배치 파일은 .gitconfig 에서 호출하기 위함과 파라미터를 받기 위함입니다. tika 를 실행할 때 사용하는 옵션에는 여러종류가 있습니다. (링크참조)

[USER_HOME/tika.bat]

java -jar [TIKA 저장경로] -t --encoding=UTF-8 %1

4. `.gitconfig` 파일 수정

위에서 `pandoc` 적용 방법에서 수정한 `.gitconfig` 파일을 다시 수정합니다.
아래 부분에서 `openxml` 부분이 추가 되었습니다. `textconv` 속성에 위에서 작성한 `tika.bat` 파일의 경로를 지정합니다.

[USER_HOME/.gitconfig]

[diff "pandoc"]
textconv=pandoc --to=markdown
prompt = false
[alias]
wdiff = diff --word-diff=color --unified=1
[diff "openxml"]
textconv=C:/Users/coozplz/tika.bat

5. Git Repository 디렉토리에 .gitattribute 파일 수정

위에서 설정된 .gitattribute 파일을 아래와 같이 수정합니다.

*.docx diff=openxml
*.pptx diff=openxml

6. 문서 변경 부분 확인

위에서 수정한 내용을 커밋한 상태가 아니기 때문에 동일한 내용이 다시 출력됩니다.

$ git diff
diff --git a/.gitattributes b/.gitattributes
index 51cead2..ef6a520 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1,2 @@
-*.docx diff=pandoc
+*.docx diff=openxml
*.pptx diff=openxml
warning: LF will be replaced by CRLF in .gitattributes.
The file will have its original line endings in your working directory.
diff --git a/test.docx b/test.docx
index 27dc279..71bbf31 100644
--- a/test.docx
+++ b/test.docx
@@ -1,4 +1,4 @@

-D:\temp>java -jar "C:\\Users\\coozplz\\tika.jar" -t --encoding=UTF-8 C:/Users/coozplz/AppData/Local/Temp/IjVuPa_test.docx
+D:\temp>java -jar "C:\\Users\\coozplz\\tika.jar" -t --encoding=UTF-8 test.docx ^M
동해물과 백수산이 마르고 닳도록 하느님이 보우하사 우리나라만세.
-무궁화 삼천리 화려강산 대한 사람 대한으로 길이보전하세.
+무궁화 삼천리 대한 사람 대한으로 길이보전하세

실행이 약간 느리기는 하나 문제없이 출력되는 것을 확인할 수 있습니다.

PPTX 변경 내용 확인

test.docx 문서와 마찬가지로 애국가 1절을 후렴부 없이 입력하고 커밋한 후 후렴부를 추가하였습니다.

$ git diff
diff --git a/test.pptx b/test.pptx
index 64fc17b..09ecd25 100644
--- a/test.pptx
+++ b/test.pptx
@@ -1,9 +1,10 @@

-D:\temp>java -jar "c:\\Users\\coozplz\\tika.jar" -t --encoding=UTF-8 C:/Users/coozplz/AppData/Local/Temp/F4N97a_test.pptx
+D:\temp>java -jar "c:\\Users\\coozplz\\tika.jar" -t --encoding=UTF-8 test.pptx ^M
애국가
1절
동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세.
+무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세.

PPT문서를 텍스트 형태로 비교하는 내용을 확인 할 수 있습니다.

위에서 언급은 하지 않았지만 xlsx 문서 및 이미지 파일 비교도 가능합니다.

해당 내용은 나중에 올리도록 하겠습니다.

기본
Programming, Tools

Jetbrains 개발툴 총정리

#Jetbrains 개발툴 총정리
Jetbrains 사에서 출시한 IntelliJ, WebStorm, Pycham, AppCode 를 사용해보고 느낀점을 요약해보았습니다.
(Android Studio는 홈페이지에 없어서 제외하였습니다.)

Jetbrains IDE 공통점

  • 자동완성 기능으로 코드 손실 위험 감소
  • AppCode 를 제외한 나머지는 단축키가 거의 동일
  • MAC, Linux, Windows에서 모두 사용 가능

1. AppCode

How?

우연히 IntelliJ를 다운받기 위해 접속한 에서 Objective-C 개발을 도와주는 툴이 있다고 해서 트라이얼 버전 다운로드.

Why?

Xcode는 이클립스와 ItelliJ, 기타 다른 자바 개발용 IDE와 유사하지 않은 동작 방식으로 업무 능률을 떨어뜨림. 예를 들면 클릭을 한번만 하면 편집중인 문서가 변경…문서를 여러개 띄울 경우 약간의 불편함..
마지막으로 개발자와 친근한 단축키가 별로 없음.

장단점

Xcode와 비교 했을때의 장, 단점입니다.

장점
  • 빠른 자동완성 (JetBrains사의 개발툴의 공통점), (Xcode 6 버전보다는 약간 느린거 같습니다.)
  • 테마 변경 가능(Dracula, Classic)등
  • 잘못된 Syntax 또는 최신의 문법을 사용하지 않았을 경우 알림과 리팩토링으로 자동으로 업데이트 해줌.
  • Surround With, Rename, Implements Method, Description등 많은 템플릿 완성 기능 제공
  • 버그 및 안티 패턴에 대한 사전 알림.
단점
  • Swift와 Objective-C를 함께 사용하는 오류로 인식되는 경우가 발생함. (향후 패치가 될거 같음)
  • 조건부 컴파일에 대한 메뉴가 없음.(사용한지 일주일 되었으나 아직 찾지 못함.)
  • 단축키가 다른 Jetbrains 사의 키와 다른.. 동시에 사용할 경우 혼란스러움.

결론

쓸수 있다면 무조건 사용하자. Objective-C 개발이 훨씬 쉬워질 것이다.

2. WebStorm

How?

온라인에서 다운받은 Node.js 강좌에서 사용하는 개발툴을 보고 처음 보는 개발툴이라고 생각했는데 찾아보니 Webstorm… 마침 HTML5를 개발해야 할 일이 생겨서 바로 사용

Why?

이클립스에서 보면 HTML 페이지나 자바스크립트는 쓸데 없는 오류가 많이 뜨는 경향과 페이지를 수정하는 경우 느리게 반응하는 것 같은 느낌이…

장단점

장점
  • 자바스크립트 라이브러리 함수까지 자동완성
  • 페이지 수정시 빠르게 반응함.
  • 크롬 브라우저를 이용한 디버깅 가능
  • Node.js도 사용 가능
단점
  • 유료 (만든 사람도 먹고 살아야 하니…)
  • 너무 많은 함수들이 Code Assist 로 출력됨

결론

호불호가 갈릴 것으로 예상됨. 기존 에디터에서 HTML을 코딩하시던 분들은 불필요하게 자동완성되는 것을 싫어하실수도 있을 수 있지만 한번쯤 사용해보는 것도 추천.

3. IntelliJ

How?

Android 개발툴이 Eclipse ADT 에서 Android Studio로 넘어가는 과정과 IntelliJ Community 버전이 풀리면서 사용해보자고 마음 먹고 사용.

Why?

Eclipse로 사용하면 가끔씩 느려져서 이클립스를 다시 시작해야 되는 경우가 발생이 되는데 IntelliJ는 그런 경우가 거의 없음.

장단점

장단점은 위의 두 AppCode, WebStorm과 거의 비슷함.

결론

이클립스만 사용하다 넘어오는 경우 단축키및 기능에 대해 확신이 안서 혼란스럽지만… 지금까지 사용해본 바에 의하면 이클립스에 있는 기능이 다 있다고 생각. 무료라는데(Community Version) 한번 써봐줄수 있잖아요..^^

4. PyCharm

How?

2014년 목표에 python으로 단위 모듈 만들기가 목표여서 python 공부를 하는데 IDE가 없이 예제나 다른 내용들이 CommandLine에서 동작하는 경우가 많음. 모든 함수마다 API 를 보면서 작성할 수 없기 때문에 IDE를 검색함. Jetbrains는 저의 기대를 져버리지 않았습니다..^^..

Why?

Community 버전은 무료.. 다른 IDE는 찾아보지도 않음.. 제가 필요한 모든 기능이 들어있음. IntelliJ와 AndroidStudio에 익숙해진 저의 손가락이 PyCharm을 강력히 요구..

결론

만약 자바를 메모장에서 입력하라면 주저 없이 입력할 수 있습니다. 제가 사용하는 주된 언어기 때문에 대략적인 API나 사용방법들은 익숙하기 때문입니다. 그렇지만 새로운 언어에 대해 메모장으로 작성하는 것은 어려운 일입니다. IDE를 사용하면 최소한의 버그나 Syntax 오류를 쉽게 예방할 수 있습니다.
그래서 사용하자.” 입니다.

기본
Tools

7Zip CommandLine 압축

데이터베이스 백업 batch 파일과 함께 이용하면 좋을듯합니다.

D:backup>7z a -bd 2012-02-15_134102.zip 2012-02-15_134102.sql
7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Scanning
Creating archive 2012-02-15_134102.zip
Compressing  2012-02-15_134102.sql
Everything is Ok
기본
Tools

빌드에서 제외하기

VisualStudio 에서는 환경설정 들어가면 빌드에서 제외하기가 바로 나와서 테스트 하기 좋았는데 이클립스는 조금 다른 방법입니다.
파일 우클릭 –> Resource Configurations –> Exclude from Build 체크 하면 해제 됩니다.

201202161224

기본