mariah
194
2018-01-12 14:42:38
21
3934

JavaScript 코드 분석 도구 DeepScan을 소개합니다


안녕하세요.

요즘 JavaScript 많이 쓰시죠?
웹 뿐만 아니라 서버나 모바일 앱 개발에서도 JavaScript가 사용되는데, 유연한 언어 특성 때문에 처음에는 쉽게 개발되지만 갈수록 디버깅이나 유지보수는 어려운 것 같습니다.

저는 이런 어려움을 해소하는 데 도움이 될 도구 DeepScan을 개발하고 있습니다.

DeepScan은 프로그램 실행 흐름 기반의 본격적인 JavaScript 정적 분석 도구입니다.
DeepScan이란 이름은 알파고를 만든 DeepMind에서 영감을 얻었고, AI 기술을 사용하지는 않지만 JavaScript 프로그램을 깊게 잘 이해한다는 뜻입니다^^

ESLint나 JSHint가 단순 패턴 기반으로 코딩 스타일 위주의 문제를 찾는다면 DeepScan은 널 포인터나 중복된 조건 같이 실행 흐름에 따른 변수 값을 추적해야 가능한 문제를 찾습니다.
검출 갯수는 적게 나오더라도 개발자에게 실제로 도움될 문제를 찾는 것과 TypeScript, React 같이 최근 많이 사용되는 기술을 잘 지원하는 데 중점을 두고 있습니다.

개발 기간은 약 1년 정도지만 탐지 오류를 최소화하기 위해 꽤 오랫동안 검증하였고 사용성이 어느 정도 확보되어 okky에 소개드립니다.
진행 중이거나 완료된 웹 프로젝트를 분석해 보면 JavaScript 코드 품질 측면에서 도움이 되실 것 같습니다.

 - GitHub 프로젝트 분석: https://deepscan.io/home/
  위 사이트에서 GitHub 계정으로 로그인하면 바로 자신의 public repository를 분석해 볼 수 있습니다.

 - 하나의 파일 분석: https://deepscan.io/demo/

아직 미흡한 부분이 많지만 JavaScript의 가능성을 믿고 대표적인 JavaScript 코드 분석 도구가 되기 위해 꾸준히 개선하고 있습니다.
앞으로도 많은 관심 부탁드립니다. (-.-) (_ _) (-.-)

30
23
  • 댓글 21

  • nathak
    400
    2018-01-12 15:53:37

    대단 하시네요~ 같은 개발자로써 존경스럽습니다!

    0
  • mariah
    194
    2018-01-12 16:44:30

    nathak님/ 헛 과분한 칭찬을. 웹 개발할 때 조금이라도 도움이 되시면 좋겠어요, 감사합니다.

    0
  • ECMA
    368
    2018-01-12 17:05:01
    이런데서 딥스캔을 뵙다니 ㅎㅎ 먼저 써본 입장에서 추천하나 박고 갑니다! JSHint는 사실 컨벤션 툴이라는 느낌이었는데 딥스캔은 그 이상의 품질 툴인 듯 합니다.
    0
  • mariah
    194
    2018-01-12 20:57:06

    ECMA님/ 좋게 봐주셔서 감사합니다^^ 더 나은 글로벌 품질 툴이 되도록 노력하겠습니다!

    1
  • devjang
    1k
    2018-01-13 00:59:09

    어떠한 컨벤션을 기준으로 하는건지.. 와 신기하고 참 좋네요

    0
  • mariah
    194
    2018-01-13 12:32:20

    devjang님/ 룰을 어떻게 정했는지 궁금하신 것 같은데요, 소프트웨어 취약점 목록인 CWE나 다른 언어의 탐지 도구(PMD, FindBugs), 논문, 오픈소스 프로젝트 등을 참고해서 개발하고 있습니다. 혹 이런 문제/컨벤션도 찾으면 좋겠다 싶은 아이디어가 있으면 편하게 말씀해 주세요~ 릴리즈에 포함되면 정말 약소하지만 릴리즈 노트를 통해 감사 인사도 드린답니다^^;

    0
  • 아플라
    220
    2018-01-16 01:01:17

    우와 대단하시네요.

    꼭 한번 사용해보도록 하겠습니다!

    0
  • 스타
    3k
    2018-01-16 09:17:05

    멋지시네요!

    0
  • mariah
    194
    2018-01-16 11:45:59

    아플라님/ 감사합니다. 의미 있는 이슈를 적게라도 찾으실 수 있으면 좋겠습니다.

    스타님/ 감사합니다!

    0
  • 하비
    275
    2018-01-16 13:26:48

    웹 UI도 상당히 깔끔하고 퀄러티가 장난 아니네요. 혼자하신건가요? 

    몇 개 데모 돌려보니 미처 눈치채지 못한 부분까지 잡아주네요.

    매우 격한 박수 보내드립니다ㅎㅎ

    0
  • shaffron
    2k
    2018-01-16 14:15:09

    아니 무슨 이런 괴물같은 도구가....

    빨리 상품으로 출시해 달란 말입니다! (무료면 더 좋고요... 수줍..)

    0
  • mariah
    194
    2018-01-16 15:01:39

    하비님/ 놓쳤던 문제들을 발견하셨다니 다행입니다^^ 혼자 할 수는 없는 일이고요, 열정적인 팀원들이 열심히 개발하고 있습니다, 저는 뭐 그냥 얹어가는 중이랄까.


    shaffron님/ GitHub public repository에 대해서는 현재도 무료이고 앞으로도 계속 무료로 서비스를 제공할 거라 필요할 때 부담 없이 사용하시면 될 것 같습니다. (주변에도 알려 주시면 더 좋고요... 수줍네요..)

    0
  • 바다21
    88
    2018-01-17 10:47:30
    스크랩 해두었습니다. 나중에 기회가 되면 실전적용해봐야겠네요. 미리 감사드립니다.
    0
  • mariah
    194
    2018-01-17 13:47:51

    바다21님/ 감사합니다. 나중에 실전에서 도움 되시면 좋겠어요.


    0
  • Bill
    74
    2018-01-18 02:15:58

    좋은 서비스네요 감사합니다. 개인 프로젝트 한번 돌려봤는데 이슈가 157개 나왔길래 헉 하면서 

    봤는데.. 거진 자동생성되는 테스트 코드에서 나온거네요... 휴....

    one private repo는 beta 때만 무료인가요? 



    0
  • ready
    80
    2018-01-18 11:05:58

    대단하세요  화이팅입니다 

    0
  • mariah
    194
    2018-01-18 12:38:49

    Bill님/ 다행이네요, 프로젝트 설정에서 외부 라이브러리나 테스트 코드 같이 분석에서 제외할 파일/폴더 패턴을 지정할 수는 있어요^^ 정식에서는 one private repo가 trial로 제공될 것 같습니다.


    ready님/ 응원 감사합니다!

    0
  • 톰소여
    1k
    2018-01-18 13:42:34

    보안상 이유로 github 가 아닌 개별 파일을 올려서 테스트 하는 기능이 있으면 좋겠네요.

    one private repo를 제공하신다고 하시니.. 그때나 테스트 가능하겠네요.


    좋은 서비스가 되도록 응원합니다~



    0
  • mariah
    194
    2018-01-18 16:06:48

    톰소여님/ 응원 감사합니다! 참고로 현재 private repo를 하나 분석할 수 있고요, github에 없는 개별 파일은 https://deepscan.io/demo에 업로드하거나 내용을 붙여서 분석하실 수 있습니다. 혹 VS Code를 사용하신다면 플러그인을 이용하실 수도 있고요~

    0
  • leechwin
    2
    2018-01-19 19:37:32

    React도 지원하고~ VS Code 플러그인 너무 편하네요~!

    0
  • mariah
    194
    2018-01-19 20:53:47

    leechwin님/ 댓글 감사합니다. React 외에 .vue 파일의 <script> 내에 있는 코드를 분석하는 기능도 조만간 제공 예정이니 기대해 주세요!

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.