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

마이크로소프트는 최근 비주얼 스튜디오 2015 버전을 공개하면서 ASP.NET 5 와 크로스플랫폼 런타임 환경인 .NET CLR Core 을 공개했습니다. 새로운 버전의 공개에 맞추어 지난 20일 마이크로소프트 닷넷 개발자 블로그 포스팅을 통해 버그 혹은 취약점을 발견하는 이들에게 최대 15,000달러의 포상금을 지급하는 프로그램이 시작됨을 알렸습니다. 버그와 취약점에 대한 리포트는 새롭게 공개된 ASP.NET 5 와 .NET CLR Core 에 대해 적용되며 아직까지 개발이 진행중인 네트워크 스택(Network Stack)은 이번 프로그램에서 일단은 제외된다고 합니다.


마이크로소프트가 이번과 같은 프로그램을 운영했던 적이 있는지 찾아보지는 못했습니다만 근래 메신저 서비스인 텔레그램(Telegram)의 보안 취약점 관련 프로그램이나 라인(LINE)의 버그 바운티(Bug Bounty) 처럼 보다 적극적으로 취약점을 찾고 보완하여 크로스플랫폼 시장에서의 존재감을 만들어 나가겠다는 적극성이 물씬 느껴지는 듯 합니다. 시간이 되시는 분들이나 관심 있으신 분들은 닷넷 코어의 크로스플랫폼 버전에 대해서 심도 있는 지식도 쌓고 포상 프로그램을 통해 금전적인 혜택도 받아볼 수 있는 기회로 만들면 더할나위 없이 좋은 기회일 것 같습니다.




포상금은 취약점 타입별로 몇 가지 등급으로 나뉘어져 있습니다. 단순한 크로스 사이트 스크립트(XSS)와 같은 케이스는 심각도에 따라 500 달러에서 최대 2,000 달러까지 지급되며, 원격 코드 실행(Remote Code Execution)과 같은 심각한 케이스에 대해서는 최대 15,000 달러까지 포상금이 책정되어 있습니다. 보안 취약점을 찾아내어 증명하기 쉬운 것과 어려운 것에 차별점을 두어 보다 심각한 오류, 버그에 대해서는 충분히 그 보상을 해주겠다는 의미로 해석됩니다.



소프트웨어, 어플리케이션을 개발하다 보면 다양한 입력감 검증이나 변수 핸들링, 체계적으로 제한된 위임등을 통해 가능한 불필요한 코드의 영향을 줄이고 테스트 케이스들을 통해 이들이 정상적으로 동작하는지 검증하는 일들을 늘 하게 됩니다. 하지만 사람이 하는 모든 일들이 그렇듯 모든 예외 케이스나 특정한 상황을 다 찾아내어 테스트 하는 것은 거의 불가능합니다. 그래서 늘 패치(Patch)가 존재하고 버그 픽스(Bug Fix)가 필요할 수 밖에 없습니다. 쟁쟁한 사람들이 모여 만들고 테스트하여 출시하는 마이크로소프트에서도 버그 포상 프로그램을 통해 보다 완벽한 환경을 만들고자 하는 것을 보면 창과 방패의 관계처럼 완벽을 "추구"하는 코드와 버그와의 전쟁은 앞으로도 계속 될것만 같습니다!


닷넷 코어 CLR 및 ASP.NET 5 버그 포상 프로그램 포스팅 살펴보기 [바로가기]

버그 포상 프로그램 상세 시상(?) 내역 및 범위 살펴보기 [바로가기]


728x90
728x90

개발자로 일을 하다보면 개인적으로 사용할 수 있는 테스트 서버가 필요할 때가 많습니다. 회사에서 제공되는 개발 머신이 있는 경우가 많겠지만 왠지 좀 비밀스러운 일도 하고 재미있는 구성들을 해보기 위해서 별도로 서버를 준비하고 싶을때가 많지요. DDNS(Dynamic DNS) 서비스를 이용해서 집에 PC 나 소규모 서버를 구성하는 것도 방법이겠습니다만 전기세나 DDNS 의 잘못된 동작, 행여나 있을지 모르는 대역폭(Bandwidth) 이슈가 걱정되는게 사실입니다.


하지만 아마존 EC2 와 같은 클라우드는 좋긴 하지만 가격이 생각외로 좀 쎈편이라 (게다가 콘솔이 온통 영어고 해외 사용료 결재 등이 왠지 또 찜찜한 분들도 계실거구요) 저렴한 웹 호스팅을 쓰는 경우가 생기곤 합니다. 하지만 호스팅은 서버 전체를 제어할 필요가 있는 경우, 혹은 특정한 모듈, 설정을 하고자 할때 그닥 좋지가 않죠. 하지만 물리 장비를 이용한 서버 호스팅은 가격이 만만치 않은게 현실입니다.




이런 생각을 똑같이 하시고 계시던 분이 있다면 가비아(gabia)가 12월 한달동안 진행하는 클라우드 서버 기본상품(g클라우드 베이직?) 70% 할인행사를 이용해 보시면 어떨까 싶습니다. 1vCore 에 메모리도 고작 1GB, 스토리지도 100GB 밖에 안된다고 생각할 수 있지만 공인IP 를 확보할 수 있고 트레픽도 가상머신당 1TB 까지 별도 과금이 없으니 간단하게 서버를 구성하고 돌리는데 무리가 없어 보입니다.


행사 내용을 살펴보면 12월 한달간 가입하는 신규 고객에 한정되고 1인당 2개의 가상머신까지만 혜택을 받을 수 있다고 합니다. 그리고 70% 할인된 금액으로 과금되는 것은 2개월 적용되고 이후에는 다시 원래의 가격 25,000원/월 로 전환되는 것으로 보이네요. 제약조건이 있긴 하지만 클라우드 서비스들에 비해 단기 사용을 생각하면 무척 좋은 가격입니다. 부가가치세 별도라는 조항이 있지만 두달동안 16,500원으로 가상머신을 쓸 수 있는 기회이니 필요하신 분들은 이용하시면 좋을 것 같네요!




가비아(gabia)의 클라우드 호스팅 70% 할인행사 자세히 살펴보기 [바로가기]


728x90
728x90
맥(Mac) 계열의 환경에서 작업을 하다 윈도 환경으로 작업 환경을 옮겼을때 장단점이 여럿 있습니다. 그 중, 가장 눈에 띄는 단점이 하나 있으니 그것은 바로 커맨드라인에서 사용할 수 있는 curl 도구가 없다는 것이지요. 운좋게 시그윈이 설치되어있다면 curl 커맨드를 어찌저찌 쓸수야 있겠지만 불편한건 매 한가지. 그런데 역시나 우리의 훌륭한 개발자 분들께서는 윈도 환경에서 사용할 수 있는 curl 커맨드라인 명령어 도구를 이미 만들어 두셨더군요!


윈도 환경에서 간단하게 msi 설치파일을 실행만하면 사용 준비 완료! 사용중인 커맨드라인 창을 모두 닫고 다시 실행하면 사용준비가 끝납니다. 커맨드 라인에서 curl http://www.naver.com -o NULL -v 라고 명령을 해보니 정상적으로 동작하는 curl 명령을 볼 수 있었습니다.


윈도용 curl 커맨드라인 명령도구 다운로드 받으러 가기 [바로가기]





 


728x90

+ Recent posts