728x90

Sublime Text 에디터는 패키지(Package)를 이용하여 기능을 지속적으로 확장, 보완할 수 있습니다.

워낙 다양한 패키지들이 공개되어 있어 어떤 것을 사용하는게 좋다는 이야기를 드리기 조심스럽지만

자주 행하게 되는 반복 작업에 지친 분들이 있을까봐 좋은 패키지 하나를 소개합니다.


업무 특성상 HTML, CSS, Javascript 그리고 JSON 파일을 많이 다루고 있습니다.

여느 웹 개발자나 서버단의 개발자 분들 역시 그런 경우가 많을 것 같습니다.

그동안은 웹 기반으로 만들어져 있는 들여쓰기 정렬툴, 소위 Pretty Print 도구를 사용했습니다만

오프라인 환경에서 작업할 때는 인터넷 엑세스가 제한되어 불편함이 있었습니다.



오늘 발견한 HTMLPrettyfy 패키치는 node.js 가 설치되어 있는 환경에서 사용 가능한 패키지로

서브라임 텍스트2와 3에서 모두 활용할 수 있는 코드 포맷터입니다.

node.js 가 설치되어 있지 않다면 당연히 사용이 어렵다는 정도가 제약사항이라 하겠습니다.


소스코드가 깃헙에 공개되어 있기 때문에 필요에 따라 SQL 이나 다른 구조화된 포맷이 필요한 텍스트에 대해서

기능을 개발하고 제안하여 참여 가능하다는 것도 기억해 두시기 바랍니다. (누가 SQL 좀... 굽신...)




설치를 위해서는 먼저 서브라임 텍스트의 패키지 매니저를 실행해야 합니다.

맥 환경인 경우 Command + Shift + P 를 누르면 되고 윈도인 경우 Ctrl + Shift + P 를 누르면 됩니다.

까만 에디터 위로 조그만 팝업이 뜨면 "Package Control Install Package"를 입력하여 패키지 설치를 시작하겠습니다.



팝업 창이 리프레시되면 위 이미지처럼 "HTML-CSS-JS Prettify"를 검색하시어 선택합니다.

이미 설치되어 있는 경우 결과창이 나오지 않습니다만 설치가 되어 있지 않은 경우

검색 결과 화면이 나오고 엔터를 누르면 서브라임 텍스트 에디터 하단에 설치 진행 현황이 업데이트 됩니다. 


BeforeAfter



이제 정렬하고자 하는 문서가 활성화된 상태에서 Command + Shift + H (윈도에서는 Ctrl + Shift + H) 를 누르면

예쁘게 들여쓰기와 줄바꿈이 된 문서로 탈바꿈 하게 됩니다. 





728x90
728x90

node.js 를 사용하면서 가장 애를 먹는 것중 하나가 설치한 모듈을 찾지 못한다는 메세지를 만날때 입니다. 환경에 따라 모듈의 설치 경로가 달라질 수 있고, node.js 가 설치된 모듈을 찾아가는 순서에 영향을 받기 때문입니다. 간단한 몇 가지 명령을 통해 node.js 가 어떤 순서로 모듈을 탐색하는지 확인하고 글로벌 모듈로 설치된 경우 이를 명시적으로 node.js 가 이용할 수 있도록 알려줌으로써 어느정도 문제를 해결할 수 있습니다.


아래와 같이 npm 에서 -g 옵션을 이용하여 모듈을 설치하면 글로벌 모듈로 설치가 됩니다. 프로젝트에 관계 없이 설치된 모듈을 이용할 수 있어야 하는 것이지요. 일부 환경에서는 sudo 명령을 이용하여 관리자 권한으로 설치를 해야 할 수도 있습니다.


$ npm install -g [#모듈이름#]


또는


$ sudo npm install -g [#모듈이름#]


이렇게 -g 옵션을 이용하여 글로벌 모듈로 설치하는 경우, 그 경로는 어떻게 될까요? 아래와 같은 명령을 이용하여 글로벌 모듈로 설치하는 경우의 Path 를 확인할 수 있습니다.


$ npm root -g

/usr/local/lib/node_modules


간혹 글로벌 옵션을 이용하여 설치한 모듈을 찾을 수 없다고 나오는 문제를 겪고 있다면, 위의 명령으로 확인한 경로를 NODE_PATH 라는 환경 변수에 저장하여 node.js 가 글로벌 모듈을 찾을 때 참조할 수 있도록 명시적인 지정을 할 수 있습니다. 반복적으로 사용해야 하는 값이기 때문에 홈 디렉토리의 .bash_profile 파일에 포함하여 터미널 실행시 셋업되도록 하면 되겠습니다. 윈도 환경에서는 시스템 환경 변수에 넣어주면 됩니다.


~/.bash_profile 에 아래와 같이 환경 변수 추가


export NODE_PATH="/usr/local/lib/node_modules"


글로벌 모듈 이외에 현재 프로젝트에서 모듈을 찾아가는 탐색 순서를 확인하려면 아래와 같이 간단한 자바스크립트 구문을 node.js 를 이용하여 실행해보면 됩니다. 아래의 경로로 모듈을 찾아본 뒤, NODE_PATH 에 지정한 경로까지 탐색하여 현재 환경에서 모듈을 찾고 이용하게 됩니다. 


$ node -e "console.log(global.module.paths)"

[ '/Users/snoh/node_modules',

  '/Users/node_modules',

  '/node_modules' ]


- NoPD -



728x90
728x90

회사에서 지급받은 맥북에어(MacBook Air)가 3년을 넘기면서 슬슬 배터리 광탈 현상을 보이기 시작했습니다. 아직 회사에서 터치바(Touch Bar)가 내장된 신형 맥북을 지급하고 있지 않아 노트북 교체 신청을 할까 말까 고민했습니다만, 외부 미팅시마다 베터리 걱정에 끙끙 앓느니 뽑는게 낳을거라는 판단에 기존 맥북프로를 한대 지급받았습니다. 일단 메모리와 디스크 용량 커지니 좋고, 외장 모니터를 두개 연결해서 사용하니 이런 천국이 따로 없네요.


안타깝게도 회사에서 타임머신과 같은 장비를 지급해 주진 않기에 새로 받은 맥북에 정성껏 기존 환경에서 쓰던 설정들을 한땀한땀 옮기는 중입니다. 어플리케이션의 환경 설정 파일은 Import / Export 를 통해 쉽게 진행중입니다만, 운영체제 환경설정은 하나씩 옮겨야 하는 탓에 기억도 안나고 (자주 있는 작업이 아니니...) 여러가지로 괴로운 시간을 보내고 있습니다. 내가 이러려고 새로운 PC 달라고 했나 하는 생각에...


그 중 하나가 맥(Mac)의 파인더(Finder)에서 숨김파일을 보여주는 옵션입니다. 회사 인트라넷 게시판 어딘가에 기술된 내용이 있었습니다만 링크가 어디 갔는지도 모르겠고 해서... 구글링 후 다시 한번 블로그에 옮겨 적어 둡니다. 비슷한 경우가 또 언제 생길지 모르니 쉽게 찾아보기 위한 용도입니다. 후후후...


$ defaults write com.apple.finder AppleShowAllFiles YES && killall Finder


위의 명령을 터미널에서 입력하면 실행중인 파인더 프로세스가 모두 종료되고 모든 파일을 보여주도록 변경된 후 파인더가 다시 실행됩니다. 맥에서 숨김파일은 점(".")으로 시작하는 파일이나 폴더이기 때문에, 명령 실행 전후에 해당하는 파일이나 폴더가 보이는지 살펴보시면 됩니다. 언제나 숨김파일이 보이는게 부담스럽다면 필요할 때 위의 명령을 실행하고, 옵션을 "NO"로 바꾸어서 제한하는 것도 방법입니다.


$ defaults write com.apple.finder AppleShowAllFiles NO && killall Finder


- NoPD -

728x90
728x90

터미널에서 로그파일을 핸들링하면서 자주쓰이는 명령들이 있습니다. 전체 파일을 출력하기 위해서 cat 명령을 사용하고 특정한 컬럼의 값만 출력하기 위해서 파이프로 연결된 awk 명령을 쓸 때가 많습니다. 그런데, 컬럼이 아주 많은 경우에 특정한 컬럼만 제외하고 나머지를 출력할 수 있는 방법이 있을까요? 컬럼이 적은 경우에는 필요한 필드를 나열하는 것도 괜찮지만, 수십개, 수백개의 컬럼이 있다면 그다지 좋은 방법이 될 수가 없습니다.


예를 들어 temp.txt 파일에 아래와 같이 스페이스로 구분된 10개의 컬럼이 있다고 해보겠습니다. 이 파일의 정보들 중에서 특정한 컬럼의 값만 추출하고 싶다면 awk 명령을 이용해서 print 예약어를 이용할 수 있을 겁니다. 


$ cat temp.txt

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10

$ cat temp.txt | awk '{print $3, $5}'

C3 C5


이 데이터 파일에서 거꾸로 3번 컬럼과 5번 컬럼의 값을 제외한 나머지 컬럼의 값을 추출하려면 어떻게 해야 할까요? print 구문의 파라메터로 $3 과 $5 만 빼고 나열해도 되겠지만, 아래와 같이 명령을 입력하면 훨씬 빠르고 쉽게 특정한 컬럼만을 제외하고 데이터를 정제할 수 있게 됩니다.


$ cat temp.txt | awk '{$3=$5=""; print $0}'

C1 C2  C4  C6 C7 C8 C9 C10


동일한 결과물을 얻어내는 방법이 여러가지 있다면 그중에서 가장 간편한 방법을 택하는 것이 누가 뭐라해도 진리일 겁니다. 작업시간을 절약하고 더 집중해야 하는 것들에 몰입하는 하루 되시길 바랍니다!



728x90

+ Recent posts