728x90

최근 보안의 화두로 다시 DNS 가 떠오르고 있습니다. DNS 는 쉽게 생각하면 인터넷 상의 자원 주소를 모두 외울 수 없기 때문에 사용되는 일종의 데이터베이스입니다. 따라서 이 DNS 가 망가지거나 악용되었을 경우 인터넷 서비스에 큰 영향을 줄 수 밖에 없겠지요! DNS 가 악용되는 대표적인 사례중 하나가 DNS 를 통해 잦은 질의를 던져 서비스 도메인의 정보를 소유한 DNS 서버가 더이상 응답할 수 없는 상황이 되어, 사용자의 접속이 차단되는 케이스 일겁니다. 


이런 케이스를 막기 위해서는 인터넷 망 사업자가 아닌이상 사설 DNS, 기업 DNS 운영시 순환질의(Recursive Query)에 대한 옵션을 조정해 둘 필요가 있습니다. 순환질의가 활성화 되어 있는지 손쉽게 확인해 볼 수 있는 웹사이트가 있으니 혹시 불필요하게 순환질의 옵션이 켜져있는지 확인해 보시고 필요 없는 경우 설정을 꺼두는게 좋을 것 같습니다!




순환질의 활성화 여부를 테스트 하기 위해서 웹 사이트에 접근 후 DNS 서버의 주소를 입력하기만 하면 됩니다. 제출 버튼을 누르면 입력한 DNS 서버의 설정이 순환질의를 활성화 해두었는지를 리턴해 주게 됩니다. ISP 인 KT 의 DNS 는 당연히 순환질의가 켜져 있을거라 예상이 됩니다. KT 의 DNS 를 넣고 제출을 눌렀더니...




네 역시나 예상대로 켜져 있다는 응답이 왔습니다. DNS 서버를 운영중이시라면 꼭 한번씩 테스트 해보시기 바랍니다


DNS 서버의 순환질의 여부 테스트 해보기 [바로가기]


728x90
728x90

빌드 2015 컨퍼런스에서 발표된 비주얼 스튜디오 코드(Visual Studio Code)는 크로스 플랫폼을 지향하는 텍스트 중심의 개발도구입니다. 마이크로소프트가 적극적으로 다른 플랫폼에 대해서 공략을 시작했다는 평을 받으며 많은 사람들이 환호하고 있는 툴이기도 합니다. 맥에서 강력한 인텔리센스(Intellisense) 기능을 이용할 수 있어서 화제입니다만 맥에서 인텔리센스를 구동시키는게 생각보다 쉽지 않더군요 (저만 그런 것일수도...)


여기저기 찾아보고 시행착오를 겪은 끝에 인텔리센스를 활용할 수 있는 방법을 찾아냈고 (사실 원래 있었지만 저만 못찾아냈던...) 같은 시행착오를 겪는 분이 계실것 같아서 간단하게 설치 순서와 필요한 패키지들을 정리해 봤습니다. 비주얼 스튜디오 코드 공식 웹사이트에 잘 설명되어 있는 부분입니다만 영어의 압박으로 꼼꼼히 읽지 않으면 놓치기 쉬운 부분들이 많더군요. 잘 안되시는 분들은 아래의 순서를 따라해 보시기 바랍니다.


  1. "비주얼 스튜디오 코드" 맥 버전을 설치합니다
    • 설치라고 되어 있긴 합니다만 공식 사이트에서 배포하는 zip 파일을 받는게 전부입니다.
      • 비주얼 스튜디오 코드 다운로드 : https://code.visualstudio.com/
    • 압축을 풀면 나오는 비주얼 스튜디오 코드 실행파일을 어플리케이션 폴더로 끌어놓아 런치패드를 통해 실행 가능하게 만들면 좋겠죠
    • 혹시나 터미널을 자주 쓴다면 .bashrc 파일이나 .bash_profile 에 아래의 스크립트를 넣으면 편리합니다
      • code () {
            if [[ $# = 0 ]]
            then
                open -a "Visual Studio Code"
            else
                [[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
                open -a "Visual Studio Code" --args "$F"
            fi
        }

  2. 인텔리센스를 위해 TypeScript Definition Manager 를 설치합니다
    • 비주얼 스튜디오 코드는 TypeScript 가 사용하는 *.d.ts 파일을 이용하여 인텔리센스를 제공합니다
    • 이미 만들어진 *.d.ts 파일을 이용하기 위하여 TypeScript Definition Manager 를 설치해야 합니다
      • TSD 설치 안내 페이지 : http://definitelytyped.org/tsd/
      • TSD 설치를 하기 위해서는 node 가 먼저 설치되어 있어야 합니다 (npm을 이용...)
      • $ npm install tsd -g


  3. TSD를 이용하여 필요한 언어/모듈/패키지를 검색하여 설치합니다
    • TSD 의 Query 명령어를 이용하여 필요한 패키지를 조회합니다 (node.js 에 대한 조회)
      • $ tsd query node
        >> tsd 0.5.7
        VersionMatcher.filter; gt; 0.11.0; 0.10.0
         - node/node.d.ts : <head> : 2015-05-07 05:06
        
    • 조회한 패키지의 이름을 이용하여 설치 명령을 내립니다 (--action install 을 추가)
      • $ tsd query node --action install >> tsd 0.5.7 VersionMatcher.filter; gt; 0.11.0; 0.10.0 - node/node.d.ts : <head> : 2015-05-07 05:06 >> running install.. >> written 1 file: - node/node.d.ts


  4. 설치가 잘 되었는지 확인해 봅니다
    • 사용자 루트 경로에서 "typing" 이라는 폴더가 생성되었는지 확인합니다
    • 해당 폴더 안에 "node" 라는 폴더가 있는지 보고, 그 안에 "node.d.ts" 파일이 존재하는지 확인합니다
    • Node Express Generator (참고 : https://code.visualstudio.com/Docs/nodejs) 로 만든 스캐폴딩 프로젝트의 app.js 를 엽니다
    • 14 라인의 __dirname 이라는 node 시스템 변수가 인식되지 않고 있습니다만... "커맨드+점(.)"을 눌러 Reference 를 추가해 줍니다
    • 코드 상단에 Reference 태그가 추가됩니다
    • 이후 테스를 위해 http 모듈을 추가하고 인텔리센스가 동작하는지 봅니다. 잘 되는군요.

좀 돌아왔습니다만 이제 TSD 파일만 잘 설치하면 왠만한 코드는 정말 간편하게 만들 수 있을 것 같습니다. 비주얼 스튜디오 코드로 맥에서도 훌륭한 인텔리센스와 가벼운 에디터를 사용해 보시기 바랍니다!





728x90
728x90

미국시간으로 4월 29일 부터 3일간 샌프란시스코에서 마이크로소프트의 개발자 컨퍼런스인 빌드(Build) 2015가 개최됩니다. 예년의 행사가 그러했듯 이번 행사도 다양한 주제로 마이크로소프트의 기술을 비롯하여 업계의 동향을 알아볼 수 있는 알찬 세션들이 준비된 것 같습니다. 직접 현장에서 참석하지 못하는 아쉬움은 채널9 등 여러 채널을 통해서 달래야 할 것 같습니다. 너무 많은 주제가 다루어지기 때문에 무턱대고 세션 제목만 보고 뛰어들기 보다는 마이크로소프트가 가이드하는 난이도에 따라 세션을 선택하면 좋을 것 같습니다.





워낙 다양한 주제가 다루어지기 때문에 어떤 특정한 주제가 핵심이다라고 말하긴 힘들겠습니다만 여러 사업들 중에서 가장 순항을 하고 있는 애져(Azure)와 곧 출시될 윈도10(Windows 10)이 많은 주제들의 중심에 서 있는 건 확실해 보입니다. 두가지 주제가 아무래도 개발자들이나 IT 종사자들 사이에서 가장 관심있는 주제가 될 수 밖에 없나 봅니다. 마이크로소프트 입장에서도 강한 녀석들이 더 강해질 수 있도록 지원사격 하는 것이 당연한 이치일 것이겠구요!



한편 너무 많은 세션들을 어떻게 골라서 들어야 할지 모르겠다 싶으시다면 빌드 모바일 앱을 이용해서 알람도 미리 받고 스케쥴링도 해보시면 도움이 많이 된다고 합니다. 저도 아직 써보지는 않았지만 빌드 컨퍼런스 참여하는 분들에서부터 원격으로 듣는 분들까지 스케쥴링을 위해서는 필수적으로 쓰면 좋은 앱이라고 하니 한번 이용해 보시기 바랍니다!


채널9에서 빌드 컨퍼런스 일정 등 자세히 살펴보기 [바로가기]

빌드 2015 공식 웹사이트 [바로가기]

빌드 공식 모바일 앱 다운로드 [바로가기]



728x90
728x90

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


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





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





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






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




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



728x90

+ Recent posts