Skip to content

Latest commit

 

History

History
 
 

Quest14

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Quest 14. 정적 분석: 타입스크립트와 린트 시스템

Introduction

  • 이번 퀘스트에서는 타입스크립트와 린트 시스템을 통해 코드에 대한 정적분석의 장점에 대해 알아보겠습니다.

Topics

  • Lint
    • ESLint
  • TypeScript

Resources

Checklist

  • 코드를 린팅하는 것의 장점은 무엇일까요?
  > 전반적으로 linting은 코드 품질, 일관성 및 유지 관리 가능성을 개선하여
   개발 효율성을 높이고 생산 오류를
   줄이는 데 도움이 될 수 있습니다.
  > 1. 향상된 코드품질
    2. 일관된 코드 스타일
    3. 디버깅 시간 단축
    4. 코드 유지 관리 향상
    5. 개발잣 생산성 향상
    6. 개선된 코드 검토 프로세스
  • 린트 규칙은 어떻게 설정하는 것이 좋을까요? 너무 빡빡한 규칙과 너무 헐거운 규칙 사이에서 어떻게 밸런스를 잡아야 할까요?
> 규모가 큰 곳에서는 여러 개발자 존재 그만큼 많은 branch 존재.
> 그래서 branch를 가장 효율적으로 관리 하기위해서 적당한
규칙을 만들기 위해서 코딩 진행 환경, 개발자 성향 고려해야함.
> 그렇기 때문에 적당한 규칙과 어떻게 적용할지 밸런스 고려 필요.

  • 타입스크립트는 어떤 언어인가요?
 > JavaScript에 type을 지정해준 언어.
 > 컴파일 언어, 정적 타입 언어.
 > 객체 지향 프로그래밍 지원

  • 타입스크립트를 사용했을 때 얻을 수 있는 장점은 무엇인가요?
> 오류룰 이른 시점에서 체크할 수 있고, 자료형을 구체적으로
 지정해주므로(type) 실행속도가 매우 빠르다.
> JavaScript와 100%호환가능하므로, 확장 관점에 용이
> VsCode와 같은 에디터 및 여러 라이브러리/프레임워크가 타입스크립트를 지원
> 프로젝트 규모가 커질수록 타입스크립트의 장점이 많이 활용
  • 타입스크립트를 사용하면서 타입이 없는 라이브러리나 프레임워크를 사용해야 할 경우에는 어떻게 해야 할까요?
> 타입스크립트 자체가 javascript를 지원하여서, 두파일의 상효 작용 자체 문제 x
> 즉 라이브러리가 타입스크립트를 지원하지 않는다 해서 모든
파일을 자바스크립트로 바꿀 필요없이, 해당 지원이 안되는부분
만 javascript를 사용해도 무방.
  • any 타입을 남용하는 것은 왜 좋지 않을까요?
 > 타입스크립트는 각 자료형을 구체적으로 지정해주는데 의미가
 있는 언어이다.
 > 그래서 any를 남용하게되면 타입스크립트를 사용하는 의미가
 없어지고, 그만큼 이점을 활용하기 힘듬.
  • 린트와 빌드 등의 과정을 개발 싸이클에서 편하게 수행하려면 어떻게 하는 것이 좋을까요?
 > 1. 사용하기 편한 린터 및 빌드 도구를 선택한다.
   2. 개발 주기의 일부로 자동 실행되도록 linter 및 빌드 도구 설정.
   3. 프로젝트의 특정 요구 사항에 맞게 linter 및 빌드도구 구성한다.
   4. 플러그인 및 확장 기능을 사용하여 린터 및 빌드 도구의 기능 향상시키는 것이 좋다.

Quest

  • 메모장 시스템에 린트 시스템을 적용해 보세요.
  • 메모장 시스템을 타입스크립트 기반으로 수정해 보세요.
  • package.json 파일의 scripts 항목을 이용하여 린트와 빌드 등의 작업을 스크립트화 해 보세요.

Advanced

  • 자바스크립트 코드에 대한 정적분석은 어떤 과정을 통해 이루어질까요?
    • 이러한 정적분석을 수행해 주는 핵심 역할을 하는 npm 패키지는 어떤 것이 있을까요?