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

웹 사이트를 만들때 가장 많이 손이 가는 부분이 어딜까요? 아마도 동일한 원본 이미지를 가지고 다양한 사이즈로 변조하는 작업에 많은 공수가 들어가실 겁니다. 이는 비단 이미지에 대한 변조 공수 뿐만 아니라 이후 유지보수와 관리의 관점에서도 많은 이슈를 낳곤 합니다. 반응형 웹 시대에 미디어 쿼리를 이용하여 뷰포트에 맞는 이미지를 내려주는 것은 필수이다보니 손을 놓고 있을 수도 없는 계륵(?)처럼 느껴지시는 분도 많을 것 같습니다. 물론 아카마이(Akamai)와 같은 컨텐츠 전송 네트워크 사업자에서 제공하는 Front End Optimization 기술을 이용하면 편리하게 실시간 변환이 가능하지만 간단하게 소규모로 서비스를 기획하는 단계에서는 이 역시 쉬운 선택이 되기는 힘듭니다.


오늘 소개해 드리는 TinyPNG 라는 서비스는 API 기반으로 실시간 PNG/JPG 이미지에 대한 가공을 제공하는 곳으로 HTTP 기반의 웹 서비스이다보니 사용하기도 편리하고 비용도 그리 비싸지 않아 연동에 대한 설계만 잘 해두면 쏠쏠하게 이용해볼 수 있는 서비스가 될 것 같습니다. 첫 500개의 이미지 변환에 대해서는 별도 비용이 발생하지 않고 간단히 HTTP 기본 인증 (Basic Authentication) 으로 구성되어 curl 명령만으로도 쉽게 테스트 해보실 수 있습니다. 이마저 번거로운 분들을 위해 간단히 계정을 만들어 시험을 해봤습니다.


TInyPNG 웹 사이트 바로 방문해보기 [바로가기]




귀엽게 생긴 곰 녀석(?)이 맥북을 들고 작업하는 모습이 인상적인 TinyPNG 의 첫 페이지 입니다. 화면의 하늘색 박스에 이름과 이메일 주소만 넣으면 바로 API Key 를 발급받을 수 있는 링크를 메일로 전송해줍니다. 메일로 전달받은 링크를 클릭하면 인증이 완료되며 API Key 와 무료로 사용할 수 있는 이미지 갯수 등이 표시된 페이지로 연결됩니다. 물론 상용으로 등록하고 싶은 분들을 위해 결제정보를 입력할 수 있는 화면도 친절하게 연결되어 있습니다.





화면 가운데 커다랗게 표시된 API Key 는 Basic Authentication 방식의 해싱 값으로 사용될 데이터입니다. ID / PWD 를 이용하지 않고 바로 해싱된 값이 있다는 것은 그냥 헤더에 해당 값이 들어가면 된다는 이야기와 동일하겠죠? 이제 간단하게 curl 을 이용해서 변환을 테스트 해보겠습니다. 왠지 JPEG 는 스펙상 사이즈 조절 등이 쉬울 것 같아 일부러 PNG 파일을 하나 받아서 테스트를 해봤습니다. 잡스옹, 저의 모르모트가 되어주실거죠? ㅇ9응??)




https://api.tinify.com/shrink 주소로 변환할 파일을 업로딩 하면 TinyPNG 에서 파일을 변조한 뒤 변환된 정보와 다운로드 받을 수 있는 경로정보를 JSON 형태의 응답으로 받게 됩니다. 이유는 알 수 없지만 첫번째 리사이즈 시도의 결과물은 두번째 리사이즈 파일과 용량도 동일하고 모든 조건이 같았는데 이상하게 열리지 않더군요. PNG 헤더 등을 점검하는 것은 다소 귀찮아 다시 curl 을 통해 동일한 용량의 동일한 파일을 다운로드 받아 정상적으로 용량이 작게 변경된 것을 확인했습니다. 글을 적으면서 보니 첫번째 시도는 129942 바이트로 JSON 에 기술된 129526 바이트보다 큰 파일이 저장 되었네요. 다시 디렉토리 조회를 해보면 129526 바이트의 정상적인 파일이 내려온 것이 확인됩니다. API 이용시 2차 검증용으로 용량에 대한 확인을 하면 확실할 것 같네요!




단순히 용량을 줄이는 것 이외에 사이즈의 조절 (Crop 등) 에 관한 여러가지 API 옵션이 제공되고 있으며 API 호출시 JSON 형태로 구성하여 Body 영역에 전달하면 됩니다. GET 요청을 하면서 Body 에 정보를 담아 보내는 것이 표준에는 어긋나는 것 같습니다만 일단 TinyPNG 에서는 정상적으로 응답하고 있으니 참고하시기 바랍니다! 이미지 변조가 많은 계절, TInyPNG 등의 서비스로 간단한 이미지 변환은 쉽게 해보시는 것도 관리, 유지보수를 위한 좋은 선택이 될 것 같네요!





728x90
728x90

node.js 를 이용하여 서버 프로그램을 만드는 경우, 디버깅이 짜증날때가 간혹 있습니다. 소스코드를 수정하면 다시 프로세스를 죽였다가 살리는 과정을 반복하는 경험들을 많이 하실텐데요, 이런 불편함을 없애주기 위한 여러가지 패키지들이 많이 준비되어 있습니다. 다 간단하긴 하지만 그 중에서도 nodemon 을 무척 잘 쓰고 있어서 소개해 봅니다.



nodemon GitHub 페이지 [바로가기]


당연하겠지만 Node Packager Manager 를 이용해서도 손쉽게 설치하실 수 있습니다. npm 명령을 이용해서 패키지를 설치하려면 아래와 같이 명령을 입력하시면 됩니다. 관리자 권한이 필요할 수 있다는 점 기억해 두시면 되겠네요.


npm install -g nodemon


nodemon 을 설치한 이후에 이용하는 방법은 node 를 통해 스크립트를 실행하지 마시고 nodemon 을 이용해서 스크립트를 실행하기만 하면 됩니다. 말로 적으면 복잡하나 커맨드로 보자면...


(기존) node server.js

(변경) nodemon server.js


번거로움을 한번에 없애주는 nodemon 으로 프로세스 중단, 재시작하는 불편함을 없애보시기 바랍니다!


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


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


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





 


728x90

+ Recent posts