728x90

터미널에서 다량의 로그, 텍스트 파일을 핸들링 할때 awk 명령을 파이프로 연결하여 작업하는 경우가 많습니다. 예를 들어 텍스트 파일의 첫번째 컬럼이 "A" 인 행의 세번째 필드를 출력하는 방법은 대략 아래와 같을겁니다.


$ cat sample.txt | awk '$1=="A" {print $3}'


그런데 가끔은 특정한 조건을 만족하는 행의 모든 내용을 출력하고 싶을 때가 있습니다. 컬럼이 몇 개 안된다고 하면 print 명령으로 모든 컬럼을 지정하면 되겠지만 컬럼이 많다면 쉽지 않습니다. 이때는 print 의 파라메터로 $0 을 넘기면 모든 컬럼이 출력되게 됩니다.


$ cat sample.txt | awk '$1=="A" {print $0}'


자주 사용하지 않으면 잊어버리기 때문에 기억을 위해 남겨둡니다.


- NoPD -

728x90
728x90

웹 사이트를 개발하고 꼼꼼한 테스트를 통해 런칭을 하고나면 왠지 한숨이 놓입니다. 사용자들이 서비스에 대해 좋은 반응을 보이고 열심히 지속적으로 찾아준다면 그 감격은 두배가 되곤 하지요. 하지만 시간이 흐르면서 웹 사이트에서는 새로운 기능들과 메뉴가 추가되고 예상치 못한 사용자들의 활동으로 인해 전에 없던 버그가 도출되기도 합니다. 빠르게 변화하는 시장 상황과 사용자 요구사항에 맞추어 소스코드 변경 및 형상 반영이 바쁘게 돌아가기 시작하면 지엽적인 단위 테스트만 수행한 채 상용 서버로 배포되는 일도 종종 발생하곤 합니다.


단위 테스트처럼 서비스와 기능을 구성하는 가장 기본적인 체크는 당연히 변경된 부분들에 대해 수행해야 합니다. 하지만 웹 사이트, 웹 서비스라면 전체적인 사이트의 동작을 사용자 관점에서 점검하고 관리할 필요가 있습니다. 단순히 호출과 응답을 확인하는 수준에서는 사용자 관점의 테스트가 쉽지 않기 때문에 많은 테스터 분들이 테스트 시나리오에 근간하여 반복적이고 기계적인 테스트 작업을 수행합니다. 하지만 고스트 인스펙터(Ghost Inspector)와 같은 툴을 이용한다면 소규모의 인력으로도 효과적인 테스트를 지속적으로 수행할 수 있습니다.





고스트 인스펙터는 크롬 확장 기능을 통해 제공되는 레코더(Recorder)를 이용하여 사용자가 크롬 브라우저를 이용하여 웹 사이트에 대해 행하는 행동을 꼼꼼하게 기록하여 입력의 자동화와 결과물의 비교는 물론이고 클라우드 기반의 시뮬레이션 환경을 통해 이같은 테스트를 지속적이고 반복적으로 수행하고 결과를 관리할 수 있는 서비스를 제공합니다. 레코더를 이용하지 않더라도 잘 준비된 테스트 설정 도구를 이용하여 스텝 바이 스텝으로 사용자의 동작을 시뮬레이션하고 테스트를 하는 것도 물론 가능합니다.





고스트 인스펙터는 무료 티어를 제공하고 있기 때문에 개인 개발자들도 큰 비용 없이 한달에 100 회의 테스트를 수행해 볼 수 있습니다. 웹 사이트의 동작 상황을 영상으로 촬영하여 보여주는 것은 물론이고 스크린 샷 비교를 통한 웹 사이트 렌더링 이미지 비교 및 API 호출 등 고급 기능들도 100 회의 범주 안에서 제공되고 있기 떄문에 본격적으로 유료 사용을 시작하기 전에 충분히 기능을 테스트하고 서비스 및 테스트 환경에 적합한지 검토해 볼 수 있는 점은 프리미움(Freemium) 서비스만의 장점이라 하겠습니다.






점점 복잡해지는 서비스 환경에서 반복적이면서도 모든 시나리오를 커버하는 자동화 테스트 툴에 대한 니즈가 점점 높아지고 있습니다. 고스트 인스펙터는 현실에서 요구되는 모든 기능들을 완벽하게 제공하지는 못합니다. 하지만 상당한 테스트 영역을 자동화로 커버해 줄 수 있기 때문에 현실에서 사람이 해야 하는 많은 테스트 공수를 줄여줄 수 있다는 점에서 그 의미가 있다 하겠습니다. 10명 정도의 팀원이 한달동안 3만회의 테스트를 하는 비즈니스 상품도 99달러선이니 가격도 나름 합리적인 수준 아닐까요? 반복적인 리그레션 테스트에서 이제 해방을 꿈꿔보시기 바랍니다!




고스트 인스펙터 서비스에 대해 자세히 살펴보기 [바로가기]



728x90
728x90

페이스북(Facebook)에서 최근 오픈소스로 공개하면서 다시 한 번 관심을 받고 있는 프레임워크가 바로 리액트 네이티브(React Native)입니다. 리액트는 웹 개발을 위한 프레임워크로 먼저 탄생되었지만 애플의 iOS 의 네이티브 앱 개발에 활용할 수 있도록 리액트 네이티브로 파생되면서 올해 초 큰 화제를 모았었습니다. Objective C 를 이용한 네이티브 개발이나 Swift 도 좋지만 이왕이면 익숙한 자바스크립트 기반으로 클라이언트와 서버를 모두 커버할 수 있다면 베스트가 아닐까 싶습니다.


리액트 네이티브를 이용해서 어느 선의 어플리케이션까지 개발할 수 있을지는 모르겠지만 일단 리빌드 없이 많은 수정 작업을 할 수 있다는 점이 분명 메리트라 보여집니다. 맥 환경에서 리엑트 네이티브를 이용한 개발환경을 꾸미는 방법은 리엑트 네이티브 공식 웹 사이트에서도 자세히 나와 있지만 이왕이면 동영상을 통해서 보시면 익숙하지 않은 분들께는 도움이 많이 될 것으로 보입니다.


리엑트 네이티브(React Native) 공식 웹사이트 살펴보기 [바로가기]




리엑트 네이티브의 공식 웹사이트에서 "Get started with React Native" 버튼을 누르시면 상세한 스텝 바이 스텝 설치 절차가 나옵니다. 리엑트 네이티브를 이용한 개발을 하려면 우선 Xcode 가 설치되어 있어야 합니다. 개발에 필요한 패키지 설치를 위해 Homebrew 를 이용하는 것을 권장하고 있으며 Homebrew 를 이용해서 node.js 와 watchman 을 설치하고 필요한 경우 JS Validation 프레임워크인 flow 까지 설치를 진행하면 됩니다 (flow 는 옵션) 실제 리엑트 네이티브의 패키지는 npm 을 이용해서 설치하게 되며 설치된 패키지를 이용하여 샘플 프로젝트를 생성할 수 있습니다.




개인적으로 이 과정을 거치는 동안 다소간의 이슈(?)가 있었는데요 대부분 권한에 대한 이슈들이었습니다. 로그인한 사용자 계정과 실제 패키지들이 설치되고 링크되는 폴더의 권한이 달라서 발생한 문제들이었습니다. brew 를 통한 인스톨이 좀 애로사항이 있었지만 권한에 대한 적절한 조절을 하고 나니 필요한 모든 과정이 문제 없이 진행되었습니다. 자세한 과정은 아래 첨부해드린 동영상을 한번 참고하시면 보다 쉽게 진행될 것으로 생각됩니다. 리엑트 네이티브로 시작하는 iOS 어플리케이션 개발의 세계로 빠져볼까요?




패키징 툴간의 충돌 문제 관련 참고 링크 [바로가기]

brew 를 통한 설치 과정에서의 퍼미션 이슈 관련 링크 [바로가기]



728x90
728x90

인터넷과 네트워크의 속도는 점점 빨라지고 있습니다. 유선망은 물론이고 무선망 역시 엄청난 비율로 대역폭과 전송속도가 빨라지고 있습니다. 하지만 이에 발맞추어 웹 기반의 컨텐츠들은 점점 더 사이즈가 커지고 있을뿐만 아니라 동영상, 이미지, 동적인 구성으로 리치(Rich)해지고 있으며 여러 서비스들이 서로 Open API 등으로 얽히면서 성능을 최적화 하는 것이 점점 어려워지고 있습니다. 필요해 의해 기능구성이 끝난 웹 사이트가 보다 최적의 속도를 낼 수 있도록 하려면 만들어진 산출물을 잘 분석하는 것이 중요합니다.


야후(Yahoo)를 비롯한 유수의 IT 기업들은 웹 사이트를 최적화 하기 위한 여러가지 방법들을 제시하고 있습니다. 각 브라우저가 제공 가능한 최대 동시 접속 도메인의 수를 활용하는 도메인 샤딩(Domain Sharding)을 제안하고 자바스크립트나 CSS 를 가능한 범위에서 인라인(Inline)처리하고 미니피케이션(Minification)을 적용하는 것이 대표적입니다. 하지만 이런 최적화 작업이 서드 파티(3rd Party) 플러그 인이라던가 라이브러리에 적용되어야 하는 경우를 먼저 발라내는 것이 중요합니다.





리퀘스트 맵 제너레이터(Request Map Generator)는 현재 웹 사이트가 어떤 컨텐츠들을 어떠한 도메인과 서비스에서 연동하고 있는지를 분석해주는 도구입니다. 단순히 텍스트를 중심으로 분석해주는 것이 아니라 분석된 결과를 미려하고 인터렉티브한 결과 페이지로 제공하기 때문에 분석의 재미까지 더해주는 도구입니다. 대표적인 웹 사이트 성능측정 도구인 웹페이지테스트(Webpagetest.org)를 근간으로 만들어진 서비스이기 때문에 분석 결과는 무척 신뢰할만합니다.


단순히 웹 사이트를 워터폴 차트(Water-fall) 만으로 분석하고 최적화 할 포인트를 찾아내는 것이 지루했다면 리퀘스트 맵 제너레이터를 이용해서 재미있는 분석을 해보시는 건 어떨까요? 분석 결과를 적절히 캡쳐해서 분석 보고서에 활용한다면 주변 분들이나 보스에게도 사랑받는 개발자, 운영자가 될 수 있을 것만 같습니다. 웹 사이트 성능 분석~ 어렵지 않아요!





naver.com 분석결과



리퀘스트 맵 제너레이터로 웹 사이트 분석해보기 [바로가기]



728x90

+ Recent posts