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
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
728x90
IDG 에서 SK텔레콤 T cloud biz 가 제공하는 블록 스토리지 서비스 "이지 디스크"를 심층 취재 했네요.
클라우드 서비스에서 왜 블록 스토리지를 사용해야 하는지.
그리고 SK텔레콤 T cloud biz 는 어떻게 그것을 구현했는지 살펴볼 수 있는 좋은 자료입니다.

델(Dell)의 이퀄로직이라는 어플라이언스를 사용했는데
이 제품에 대해서 궁금하신 분들도 한 번 읽어보시면 좋을 것 같습니다.
기업 내부 인프라에서 블록 스토리지를 구현하는 것에 대해서도
인사이트를 얻으실 수 있을 겁니다.

IDG 리포트 - 이지디스크 사례로 본 클라우드 스토리지의 미래

[다운로드 받기]


- NoPD -
728x90
728x90
프로젝트를 진행하다가 급하게 SMTP 서버를 구축하는 경우가 많습니다. 하지만 SMTP 서버로 사용할 자원이 없거나 다양한 이슈로 운영이 힘든 경우에는 외부의 메일서버를 사용하는 경우가 많습니다. 가장 대표적인 것이 구글에서 제공하는 SMTP 서버입니다. Gmail 계정만 있으면 사용할 수 있고 SSL 통신등도 지원하기 때문에 무척 사랑받고 있습니다.

그런데 Gmail 계정을 이용해서 smtp.gmail.com 을 사용하는 경우 문제가 하나 있습니다. 메일 헤더에 발신자(From)를 아무리 설정해도 인증을 받는 구글 계정으로 발신자가 표시되는 문제점이 바로 그것입니다. 한참동안 구글링을 하면서 해결 방법을 찾아보다가 너무 가까운 곳에서 해답을 찾았습니다. 같은 고민 하시는 개발자 분들을 위해 정리해 봤습니다.


Gmail 에 로그인 하신 다음 설정으로 먼저 들어갑니다. 설정의 여러가지 탭들 중 Accounts and Import 탭으로 이동해서 Send mail as 항목을 수정하는 것이 바로 해결책입니다. 기본적으로 gmail 계정이 등록되어 있는데 하단의 Send mail from another address 를 눌러 사용하는 이메일 계정을 추가해 주면 됩니다.

이메일을 추가한 다음 실제로 살아있는 정상 계정인지 확인을 위해 Verification 메일로 확인 코드를 전달해 줍니다. 해당 코드를 입력함으로써 이메일 추가가 완료됩니다. 이후 smtp.gmail.com 서버를 통해 메일 발송시에 새로 설정한 메일이 발신자로 기록되게 됩니다. 우측에 make default 버튼을 눌러서 꼭 default 로 설정하는 것 잊지 마시구요.

- NoPD -
 
728x90

+ Recent posts