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 코드 분석 도구가 되기 위해 꾸준히 개선하고 있습니다.
앞으로도 많은 관심 부탁드립니다. (-.-) (_ _) (-.-)