Development2016.10.12 09:21

터미널에서 로그파일을 핸들링하면서 자주쓰이는 명령들이 있습니다. 전체 파일을 출력하기 위해서 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


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



저작자 표시 비영리
신고
Posted by 노피디
Development/node.js2015.12.24 09:28

간밤에 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 를 이용한 개발도 편하지만 관리도 편한것이 사람들에게 지속적으로 사랑받는 이유가 아닐까 싶습니다!



저작자 표시 비영리
신고
Posted by 노피디
Cloud Tech.2015.09.15 10:04

대규모의 사용자 트레픽을 소화하기 위해서는 고민해야 할 것들이 많습니다. 서비스 오리진(Origin) 인프라의 유연함과 적절한 스토리지(Storage)을 확보해야 하는 것은 물론이고 갑작스런 사용자 폭주에 대비하여 충분한 대역폭(Bandwidth)도 갖추어야 합니다. 큰 규모의 기업이라면 그나마 이러한 준비를 하기 위한 투자(CapEx)가 가능하겠지만 작은 규모의 기업(SMB, SOHO)이나 스타트업(Start-up)이라면 열악한 인프라를 이용하여 서비스를 시작하는 경우가 많습니다.


하지만 충분한 재원을 이용하여 인프라를 증식(?)하는 방법은 한계가 있습니다. 가장 단적인 예는 "충분한 대역폭" 에서 찾을 수 있습니다. 갑작스런 서비스의 인기몰이나 이슈가 생겼을 때 폭주하는 사용자 트레픽은 그 규모를 가늠하기가 힘듭니다. 또한 일시적으로 발생하는 이런 스파이크(Spike)를 대비한다고 평상시에 이용되지 않는 대역폭을 계약하여 사용하는 것은 운영 비용(OpEx) 관점에서 효과적이지 않습니다. 그렇다면 이런 문제는 어떻게 해결할 수 있는 것일까요?





흔히 컨텐츠 전송 네트워크(Content Delivery Network, CDN)이라 불리우는 서비스들이 그 해답이 될 수 있습니다. 글로벌 1위 사업자인 아카마이(Akamai)를 비롯하여 최근에는 아마존(Amazon)이나 마이크로소프트 애져(Azure) 등 클라우드 서비스들도 필수적으로 CDN 서비스를 제공하고 있습니다. CDN 전문 사업자들 뿐만 아니라 클라우드 인프라를 제공하는 사업자들까지 CDN 상품을 내놓고 있다는 것은 인프라와 전송 네트워크의 조합이 대규모의 사용자 트레픽을 소화하기 위해서 필수라는 의미로 해석해도 크게 틀리지 않다는 이야기입니다.


아카마이는 최근 마이리틀텔레비전의 컨셉으로 마이리틀CDN 이라는 인터렉티브 세션을 운영하고 있습니다. 다음주 화요일인 9월 22일 오후에 한시간동안 CDN 의 기본적인 동작 원리와 어떻게 활용하면 도움이 될지에 대한 프로그램이 방송될 예정이라고 합니다. CDN 서비스를 제공하는 사업자들 별로 저마다의 특징과 차별화 포인트를 가지고 있지만 기저에 깔려 있는 기본적인 스킴은 어느정도 비슷하기 때문에 CDN 에 대한 기본적인 소양을 쌓고 글로벌에서 성공할 미래의 내 서비스를 위해 지식의 폭을 넓힐 수 있는 기회가 될 수 있을거란 생각이 듭니다!


아카마이 마이리틀CDN - "CDN의 원리와 활용 기본" 무료 사전등록 [바로가기]



저작자 표시 비영리
신고
Posted by 노피디
애플이 얼마전 끝난 WWDC (World Wide Developer Conference) 에서 새로운 언어인 Swift 를 발표했습니다. Swift 는 기존의 Objective-C 와 마찬가지로 Apple Foundation Framework 에 기반하고 있는 언어입니다. Xcode 6 에서부터 지원이 되며 Objective-C 와 혼용하여 개발이 가능한 스크립트 스타일의 언어라고 보면 될 것 같습니다.

Swift 는 이제 막 발표된 언어이기 때문에 공부를 하기 위한 자료가 많지 않습니다. 이럴때는 공식 자료로 배포되고 있는 것을 찾아보는게 좋은데요, 역시 애플이 아이북스(iBooks)에 공식 튜토리얼을 올려두었습니다. 영문 버전으로만 배포되고 있어서 조금 아쉽지만 일단 가장 기본이 되는 레퍼런스로 쓰면 좋을 것 같습니다.


애플 스위프트(Swift) 공식 문서 다운로드 받기 [바로가기]


영어로 공부하는 것이 가장 좋습니다만 부담되시는 분들은 한글로 번역작업이 진행된 스위트프(Swift) 언어 개발문서 페이지를 참고하시면 좋을 것 같습니다. 아직 자세히 살펴보지는 못했으나 OSX Dev 의 멤버분들이 의기투합하여 공동 프로젝트로 진행한 번역 산출물로 퀄리티가 괜찮을 것 같습니다. 


스위트프 언어 개발문서 한글화 프로젝트 살펴보기 [바로가기]


이제 스위프트에 푹 빠져볼 시간입니다. 첫장을 펼치고 공부를 시작해 볼까요 -_-;; 

- NoPD -

 
저작자 표시
신고
Posted by 노피디
HTTP 2.02013.12.10 15:54
팀 버너스리경이 인터넷에 엑세스 하는 방법의 하나로 월드 와이드 웹(World Wide Web)을 주창한 이래 웹은 이제 인터넷의 핵심이 되었습니다. 일상에서 일어나는 정말 많은 네트워크 연결은 인터넷을 통해서 일어나고 있습니다. 트위터에서 새로운 소식을 듣고 페이스북에 친구들과 사진을 공유하는 것 뿐만 아니라 부모님과 영상통화를 하고 동영상으로 인기있는 TV 프로그램을 보는 것도 모두 인터넷을 통해 이루어지고 있습니다.

그런데, 이런 인터넷의 폭발적인 사용을 뒷받침 해주고 있는 HTTP 프로토콜(Hyper Text Transfer Protocol)은 그다지 효과적인 프로토콜이 아닙니다. HTTP 의 첫 버전이었던 HTTP/1.0 은 단순히 서버와 사용자간에 하나의 연결만을 맺어주는 수준이었고 단일 서버에서 복수의 가상 웹 사이트를 운영할 수 있는 기능도 없었습니다. 이러한 단점을 개선한 HTTP/1.1 은 동시에 여러개의 연결을 맺을 수 있고 가상 호스트에 대한 지원이 가능해졌지만 너무 단순하게 만들어진 나머지 효율적인 웹 트랜잭션의 처리를 위해서는 추가적인 많은 작업들을 해주어야 했습니다

출처 : The Telegraph (http://goo.gl/gVQw3)



시간이 흘러 바야흐로 21세기로 접어들면서 인터넷은 이제 단순히 컴퓨터를 위한 기술이 아니라 수많은 스마트 기기들과 사물들까지 연결하는 하이퍼커넥티드(Hyper Connected) 세상을 만들어 가고 있습니다. 사물인터넷(IoT, Internet of Things)이라는 용어는 그런 네트웍의 복잡성과 연결된 기기의 수를 이야기 해주고 있고 빅 데이터(Big Data)는 이런 네트웍을 통해서 발생되고 있는 데이터의 규모를 발해주는 대표적인 단어들입니다

우리가 웹을 통해 요청을 하나 만들때 마다(HTTP Request) 전력이 소모되고 있다는 사실을 인지해 본 적이 있나요? 불필요한 트랜잭션 처리를 위해서 서버와 클라이언트의 브라우저 혹은 스마트 기기에서 동작하는 앱이 전기 혹은 베터리를 소모하고 있다는 생각을 해본적 있나요? 더 많은 기기들(스마트폰, 패드, 컴퓨터, 센서 등)이 더 많은 방법으로(브라우저, 스크립트, 앱 등) 인터넷에 연결되고 있는 작금의 트래픽 폭발을 효율적으로 조정하고 더 빠른 사용자 속도를 제공하는 것에 대한 고민에서 HTTP/2.0 은 출발했습니다.

구글이 추진하고 있는 SPDY 와 이를 근간으로 마이크로소프트가 SPDY 혹은 Web Socket 기반으로 준비중인 Microsoft S+M 은 HTTP/2.0 의 기본 골격이 되어 결국 최종적으로 만들어질 표준에 전체 혹은 일부가 녹아들어갈 것입니다. 이들의 노력으로 만들어지고 있는 HTTP/2.0 은 앞으로 우리의 인터넷, 웹웹을 어떻게 바꿔 나갈까요? IETF 에서 공개한 프로토콜 Draft (http://tools.ietf.org/html/draft-ietf-httpbis-http2-04) 를 바탕으로 어떤것들이 바뀌고 어떤 변화가 생길 것인지를 하나씩 알아보도록 하겠습니다.

- NoPD -
저작자 표시
신고
Posted by 노피디
윈도우폰7에는 기본적으로 빌트인 된 리소스 딕셔너리가 있습니다.
정확히는 윈도우폰7에 탑재된 실버라이트에 내장된 것이라 보는게 맞겠네요.

어플리케이션에 사용되는 여러가지 컨트롤들은 XAML 로 디자인 되는데
다양한 속성값을 이용하여 세세한 컨트롤을 하는 것도 물론 가능하지만
사용자에게 일관적인 스타일을 제공하기 위해 내장 리소스를 사용하는 것은 좋은 방법입니다.

경로 : {Program Files}\Microsoft SDKs\Windows Phone\v7.0\Design\ThemeResources.xaml
 
SDK 가 설치된 경로에서 위의 파일을 찾아서 열어보면
실제 어플리케이션의 화면을 디자인하는 XAML 파일의 컨트롤이 쓸 수 있는
여러가지 내장 스타일들을 확인할 수 있습니다.

<Color x:Key="PhoneForegroundColor">#FFFFFFFF</Color>
<Color x:Key="PhoneBackgroundColor">#FF000000</Color>

<Color x:Key="PhoneContrastForegroundColor">#FF000000</Color>
<Color x:Key="PhoneContrastBackgroundColor">#FFFFFFFF</Color>

...

<!-- Font names -->
<FontFamily x:Key="PhoneFontFamilyNormal">Segoe WP</FontFamily>
<FontFamily x:Key="PhoneFontFamilyLight">Segoe WP Light</FontFamily>
<FontFamily x:Key="PhoneFontFamilySemiLight">Segoe WP SemiLight</FontFamily>
<FontFamily x:Key="PhoneFontFamilySemiBold">Segoe WP Semibold</FontFamily>

미리 사용 가능한 스타일 요소들을 체크해두면 많은 도움이 될 것 같습니다.
참고로 StaticResource 는 각 컨트롤에 아래와 같이 스타일을 지정하면 됩니다.

Style="{StaticResource PhoneTextTitleStyle}"

- NoPD -
신고
Posted by 노피디
Cloud & Dev. Story2010.09.01 09:03
요즘 예전만큼은 아니지만 여전히 Flickr 는 멋진 사진들을 올리고 공유하고 감상할 수 있는 웹사이트로 자리잡고 있습니다. 그래서인지 스마트폰을 비롯하여 많은 피쳐폰에도 다양한 Flickr 유틸리티들이 자리잡고 있습니다. 윈도우폰7 에서 구동되는 어플리케이션으로 " Flickr 7up" 이라는 프로그램이 있어서 공유해 봅니다.

최근 모바일용 애플리케이션의 동향을 보면 1) 아싸리 심플한 캐주얼 앱 , 2) 다양한 기능을 완벽하게 제공하는 풀 스펙의 앱 으로 나뉘는 것 같습니다. 사람들은 애플리케이션을 커피한잔 마시듯이 소비한다는 행태를 볼 때 첫번째의 그것이 왠지 더 나아보이는 선택일 것 같습니다.

Flickr 7 up 애플리케이션 역시 이러한 컨셉을 따라가고 있는 윈도우폰7용 앱입니다. 사진은 한장씩만 올릴 수 있고 Flickr 가 제공하는 Set 과 같은 개념은 이 어플리케이션에는 탑재되지 않은 개념입니다. 간단하고 빠르게 내 사진을 업데이트 한다라는 관점에서 멋진 설계가 아닌가 싶습니다!


- NoPD -
신고
Posted by 노피디
Cloud & Dev. Story2010.09.01 08:46
윈도우폰7... 뿐만 아니라 다양한 스마트 폰에 대한 뉴스를 전달해주는 Pocketnow.com 사이트에 새로운 동영상이 공개가 되었습니다. 역시 이번에 사용된 시료도 LG 에서 만든 윈도우폰7 시료입니다. 도대체 어디서 구한건지는 아직도 궁금하다는 ㅋ. 개발시료를 개발사들에게 전달했다는 뉴스를 봤던 것으로 미루어 보아, 아마도 3rd Party 업체들 쪽에서 유출된 것이겠지요?

동영상은 윈도우폰7에 탑재된 다이얼러와 SIP 등에 대한 간단한 이야기를 하고 있습니다. 전 동영상이나 다른 동영상에서 보였던 것과 다르데 터치에 대한 반응이 한템포 느려보이는 것 같습니다. 역시 실제로 폰이 나와서 손에 쥐어보기 전에는 좋다 나쁘다를 판단한기 힘들 것 같습니다 ^^


- NoPD -
신고
Posted by 노피디
Cloud & Dev. Story2010.08.25 13:08
모바일 기기 전문 커뮤니티인 Pocketnow.com 에서 윈도우 폰 7 개발시료와 아이폰 4, 넥서스 원의 브라우저를 비교한 동영상을 공개했습니다. 윈도우 폰 7 은 올해 연말 출시를 목표로 마무리가 한참 진행중인 마이크로소프트의 역작입니다. LG 의 시료인데 시료를 확보한 경로등은 알려지지 않았습니다.


넥서스 원은 동작속도가 상당히 빠르다고 알려진 Android 2.2 (Froyo) 로 펌업이 된 상태의 단말이고 아이폰 4는 이미 알고 있는 것처럼 iOS 4 가 탑재된 상태입니다. 윈도우 폰 7 과 아이폰4가 엎치락 뒤치락 하는 것으로 보이고 상대적으로 안드로이드 단말이 떨어져 보이네요.

아직까지 개발중인 빌드라는 점을 감안할 때, 정말로 물건이 나올지도 모르겠다는 확신이 점점 들고 있습니다. 경쟁은 소비자에게는 너무나 좋은 기회이니 100일도 안남은 윈도우 폰 7 출시를 기다려 봅니다!

- NoPD -
신고
Posted by 노피디
Development2010.07.19 14:32
engadget 에서 새로운 윈도우 폰 7 시료의 실제 시연 동영상을 공개했습니다. 그동안 공개되었던 다른 동영상보다 높은 완성도를 보여주고 있어서 무척 기대가 됩니다. 많은 분들이 MS 가 생각보다 준비를 잘 하고 있는 것 같다는 이야기들을 해주셨는데, 판단은 동영상을 보시고 각자 하시는게 맞을 것 같습니다! 생각보다 잘해주고 있다는 느낌은 확 드는걸요!?


- NoPD -
신고
Posted by 노피디

티스토리 툴바