728x90

에디터를 여러가지 사용하다 보니 각 에디터마다 조금씩 다른 특성을 기억하기가 참 쉽지 않습니다. 그래서... 개인적으로 필요할 때마다 찾았던 내용들을 기록 차원에서 남겨봅니다. 혹여나 누군가 검색하다 이 글을 발견하게 되면 일말의 도움이라도 되길 기대하며...


[ 하고싶은 일 ]

잘 정제되어 나오지 않는 API 의 결과물을 가공하고 싶습니다. 

한줄로 연결되어 있는 문자열을 특정한 구분자를 기준으로 줄바꿈 할 수 있을까요?


[ 이렇게 하세요 ]

Sublime Text 의 Replace 기능을 이용해서 간단히 처리할 수 있습니다.

예를 들어 CSV 형태의 문자열이라면 "1, 2, 3, 4, 5" 의 식이겠지요

구분자가 ", " 이므로 이를 \n 으로 치환하면 됩니다.




참 쉽죠?



728x90
728x90

윈도 환경에서는 그렇게 많이 사용되지 않지만 맥이나 리눅스 등의 환경에서는 컬(curl) 명령이 무척 자주 사용됩니다. curl 명령을 이용해서 간단한 HTTP 요청을 쉽게 만들고 요청(Request), 응답(Response) 헤더는 물론이고 전달되는 데이터까지 쉽게 살펴볼 수 있기 때문입니다. 하지만 curl 명령을 이용해서 큰 사이즈의 JSON 응답을 내려주는 API 를 조회하는 경우 그 내용을 살펴보기가 다소 쉽지 않다는 단점이 있습니다. 때문에 JSON Formatter 나 유사한 기능을 제공하는 편집기로 본문을 가공하여 확인해야만 했습니다. 

 

오늘 소개해드리는 커맨드라인 툴인 jq 는 이런 불편을 제거해주기 위한 훌륭한 도구가 될 것 같습니다. Github 에 소스코드가 공개되어 있는 jq 는 awk 나 grep 처럼 파이프(Pipe)를 이용하여 응답 컨텐츠에 포함된 JSON 형태의 데이터를 전달, 가공하여 리턴해주는 역할을 하게 됩니다. 이를 통해 번거롭게 JSON 형태의 데이터를 재가공할 필요 없이 터미널 상에서 curl 명령을 약간 바꾸는 것만으로 쉽게 JSON 을 확인할 수 있게 됩니다. 백문이 불여일견이니 한번 사용예를 보도록 하겠습니다. 

 

 

시험용 서버가 준비되지 않아 쉽게 쓸 수 있는 블로그스팟의 피드를 JSON 형태로 받아보기로 하겠습니다. 개인의 블로그에 영향을 주지 않도록 구글블로그의 공식 채널을 이용해봤습니다. 복사해서 붙여넣기 쉽도록 위의 명령을 다시 적어드리면 curl -v "https://googleblog.blogspot.kr/feeds/posts/default?alt=json" | head -n 10 이 되겠습니다. 캡쳐에서는 빠졌습니다만 less 도 연결해 주시는 것이 정신 건강에 좋습니다. jq 를 이용하지 않았기 때문에 원본 서버가 전달해주는 컨텐츠를 그대로 표현하게 되겠죠?

 

 

네, 상당히 사람 프랜들리하지 않은 결과가 나왔습니다. 180k 바이트가 넘는 컨텐츠이기 때문에 한줄로 연결된 데이터를 보는 것은 사실상 불가능하고 외부 JSON Pretty Formatter 를 이용하거나 편집기를 이용해서 보기 좋게 바꿔야 합니다. 하지만 매번 그렇게 하는 것도 참 번거로울 거라는 생각이 딱 들죠? 이럴때 유용한 커맨드라인 툴이 바로 jq 입니다. 이제 파이프를 이용하여 jq 로 응답 결과를 전달해서 간편하게 데이터를 가공해 보도록 하겠습니다. 

 

 

여기서도 친절하게 명령을 다시 적어드려 보겠습니다. curl -v "https://googleblog.blogspot.kr/feeds/posts/default?alt=json" | jq '.' | head -n 10 이 바로 명령입니다. 앞선 명령과의 차이는 파이프로 연결된 jq '.' 가 추가된 정도입니다. 하지만 결과는 정말 아릅답게 출력이 된 모습을 볼 수 있습니다. curl 명령을 이용해서 디버깅을 하거나 테스트를 수행하는 경우에 정말 간편하게 응답을 해석할 수 있게 된 것입니다. jq 는 다양한 운영체제용으로 준비되어 있어 공식 웹사이트나 github 에서 필요한 환경에 맞는 소스코드/실행파일을 다운로드 받으실 수 있습니다. 

 

 

 

 

jq로 JSON 쉽게 다루기(1), 반복되는 배열에서 특정 속성 뽑아내기

JSON을 다루는 것은 개발자에게는 숙명입니다. 그래도 SOAP 보다 편리하고 쉽다는게 어디냐며 위로해 보지만 할 때마다 새롭고 매번 처음 보는 것 같이 헤메는 것이 또한 JSON 다루기의 특징이기도

ondemand.tistory.com

 

커맨드라인 JSON Pretty Formatter - jq 공식 웹사이트 방문하기 [바로가기]

 

2016/01/13 - 마이크로소프트 윈도10, 학생용 버전 10% 할인 프로모션

2015/12/24 - Node v4.2.4 (LTS) 버전이 새로 업데이트 되었습니다

2015/11/19 - 비주얼 스튜디오 코드(Visual Studio Code), 깃허브를 통해 오픈소스로 공개!

2015/10/26 - 마이크로소프트, 닷넷 코어(.NET Core) 및 ASP.NET 5 취약점 포상 프로그램 실시

2015/10/02 - 마이크로소프트 애져(Azure), 아카마이(Akamai)를 통한 CDN 서비스 제공 발표

2015/09/21 - TinyPNG 를 이용하여 PNG/JPG 이미지를 동적으로 가공하기

 

728x90
728x90

연초가 되면 여기저기서 학생 할인이나 아카데미 할인 프로모션이 많이 진행됩니다. 직장인이 된 이후 부터는 이런 혜택을 별로 받아볼 기회가 없습니다만 "학생"의 범주에 들어가는 아이들이 생기면서 부터는 또 관심이 가는게 사실입니다. 근래에 맥 환경에서 작업을 많이 하다보니 윈도 운영체제에 대한 욕심이 별로 없는 상태이지만 가족들에게는 여전히 윈도가 더 편한 운영체제라는 생각을 가지고 있습니다.


마이크로소프트에서는 새해를 맞이하여 신학기를 맞는 학생들, 특히 대학생들을 대상으로 프로모션을 여럿 진행하고 있는 것 같습니다. 대학생들 사이에서도 이제 맥을 사용하는 경우가 많이 늘어난 것으로 알고 있지만 여전히 윈도도 사랑받고 있습니다. 윈도 운영체제의 최신 버전인 윈도10을 10% 할인 구매할 수 있는 혜택은 학생들만이 누릴 수 있는 메리트이니 꼼꼼히 살펴보시면 좋을 것 같네요






웹 사이트 상에 게시된 가격이 10% 할인을 반영한 가격인지는 확인해 봐야겠습니다만, 부가가치세(VAT)를 포함한 윈도10 홈 에디션을 154,800원 혹은 여기서 10% 추가 할인된 가격으로 결재될 것으로 추정됩니다. 설명에 나와 있는 것처럼 학생에 대해서는 자격 확인 과정이 필요할 수 있다는 점도 인지하고 계시면 좋을 것 같네요! 


참고로 기존에 윈도7, 8 또는 8.1 운영체제를 설치하여 사용중인 PC 가 있다면 여전히 무상 업그레이드가 가능합니다. 아마 많은 분들이 이미 작년 하반기에 진행된 윈도10 무료 업그레이드는 OTA 로 다운로드 받아 업데이트 하셨겠습니다만 혹시 놓치고 있었다면 학생 및 교직원 스토어를 통해서도 다운로드 링크를 제공 받으실 수 있습니다. 


역대 윈도 운영체제중 가장 안정적이고 진보적인 것으로 평가받고 있는 윈도10. 학생이라면 조금 더 할인된 가격으로 판매되고 있는 프로모션 시즌을 놓치면 안되겠죠? 폴리글랏 프로그래밍이 화두인 시대, 운영체제 역시 이것저것 다 경험해보고 다룰 줄 아는 능력이 필요한 시대인 것 같습니다. 


마이크로소프트 학생 및 교직원 스토어에서 윈도 운영체제 10% 할인 구매하기 [바로가기]



728x90
728x90

간밤에 Node.js 의 v4.2.4 (LTS) 버전이 새롭게 업데이트 되었습니다. 이번 버전 업데이트에서도 정말 많은 버그들이 Fix 가 되었습니다. 자세한 업데이트 내역은 Node 공식 사이트에 등록된 릴리즈 노트를 확인해 보시기 바랍니다. 복기를 위해 간만에 개발용 리눅스 머신에 LTS 버전을 업데이트 하면서 사용했던 커맨드를 기록삼아 남겨둡니다. 혹시나 "Node.js 는 어떻게 업데이트 해야 하나요?" 하시는 분들을 위해 도움이 되었으면 합니다.


Node.js 는 두가지 버전으로 나뉘어져 출시(?)가 되고 있습니다. 짝수 버전에 해당하는 LTS 와 홀수 버전에 해당하는 Stable 이 바로 그것입니다. LTS 는 Long Term Support 의 약자로 Node.js 에서만 사용하는 용어는 아니고 말 그대로 "오랫동안 지원되는" 버전으로 안정성, 호환성에 포커스를 맞춘 버전입니다. 반면 Stable 버전은 용어의 의미와 다소 다르게 새로운 기능들이 적극적으로 반영되는 버전이니 (=이슈가 많을 수 있는?) 사용시 이를 감안해야 하겠습니다.




Node.js v4.2.4 (LTS) 버전 릴리즈 노트 확인하기 [바로가기]


Node.js 에서 사용하는 패키지들은 NPM 을 통해서 다들 관리를 하고 계실겁니다. 그런데 NPM 은 Node.js 자체의 버전을 관리해 주지는 않습니다. Node.js 의 버전을 관리하기 위해서는 NPM 을 이용하여 n 을 먼저 설치해야 합니다. n 은 Node.js 를 관리하기 위한 전용 도구로 이를 통해서 설치한 버전들은 특정한 경로에 저장되어 손쉽게 Node.js 의 버전을 변경해 가면서 활용할 수 있게 해줍니다. 참 편하쥬?




작업을 시작하기 전 노드의 버전을 확인해보면 v0.10.28 입니다. 오랫동안 쓸일이 없었던 가상머신이라 간만에 확인했더니 버전이 무척 낮습니다 ^^ 혹시나 하는 마음에 캐시를 비워주고 우선 n 으 설치했습니다. n 의 사용법은 무척 간단한데요 설치하려는 버전을 파라메터로 전달해 주면 됩니다. 새로 릴리즈된 버전이 4.2.4 이니 파라메터로 4.2.4 를 전달하면 알아서 새로운 버전을 다운로드 받아 설치를 진행합니다. 이렇게 다운로드 된 버전은 환경에 따라 다소 다를 수 있겠지만 설치 과정에 나온 "mkdir" 항목에 나온 경로에 저장되게 됩니다.


새로운 버전을 돌려보니 좀 이슈가 있다? 그러면 간단히 "n 0.10.28" 의 식으로 다시 버전을 변경하면 됩니다. 스샷에 보이는 것처럼 이미 로컬에 다운로드 되어 있기 때문에 별도로 다운로드 되는 과정 없이 버전이 변경됩니다. Node.js 를 이용한 개발도 편하지만 관리도 편한것이 사람들에게 지속적으로 사랑받는 이유가 아닐까 싶습니다!



728x90

+ Recent posts