Linter란? Linter 혹은 Lint는 소스 코드를 분석해 오류나 오타, 잠재적인 버그를 찾아주는 도구입니다.
javascript는 다른 언어들에 비해 유연한 문법 구조를 갖습니다. 이런 특징은 찾기 어려운 버그를 만들기도하고, 코드를 실행하기 전까지 알 수 없는 오류를 만들기도 합니다.
Lint를 사용하면 검증을 자동화하여 이런 문제를 예방할 수 있습니다. 가장 많이 사용되는 javascript 린터로는 ESLint와 코드 포맷터인 Prettier, css 린터인 Stylelint가 있습니다.
ESLint 2002년 JSON을 만든 더글라스 크락포드가 자바스크립트 린터인 JSLint를 만들었습니다.
ROC 곡선이란? Receiver operating characteristic 수신기동작특성? 번역하기에 어려운 용어같습니다. 다만 인공지능의 성능을 파악하는데 자주 사용되기 때문에 어떤 개념이고 어떤 의미인지, 어떻게 해석해야 하는지 정리합니다.
ROC(Receiver Operating Characteristic) = 모든 임계값에서 분류 모델의 성능을 보여주는 그래프
🤔 결론부터 정리하면 주로 분류로 결과를 확인하는 인공지능 성능 평가 방법으로 자주 쓰임. 그래프로 보자면 좌상단(파란 점)에 가까울수록 좋은 성능을 보이는 모델.
또 그래프의 x축, y축을 보면 “FALSE POSITIVE RATE”, “TRUE POSITIVE RATE“라고 적혀 있는데요.
모델 학습 시 loss 값이 Nan으로 나올 때 해결 방법 if df == pandas.DataFrame() df.isnull().any()로 데이터셋에 NaN이나 inf 값이 들어있는지 확인한다.
다른 optimizer들을 사용해본다. (ex. sgd, adam, nadam)
다른 activation function을 사용해본다.
사용하는 모델마다 적합한 activation function이 있습니다. 즉. 모델에 대하여 공부해야하고, 적합한 activation function을 찾아 학습해야 합니다. learning rate(학습률)을 낮춰본다.
learnin rate는 batch_size와 연관이 있습니다.
러닝레이트 줄이기 vs 배치사이즈 키우기
Babel이란? Babel은 최신 명세(또는 ES2015 이상)의 문법을 구형 브라우저에서도 동작하는 코드로 *트랜스파일해주는 개발 도구입니다.
만약 Babel이 없다면? 구형 브라우저에서 동작할 수 있는 방식으로 웹 개발을 하고, 최신 브라우저에서 동작할 수 있는 방식으로 다시 개발해야 하는 상황이 발생합니다. 즉 구형 브라우저의 지원이 필요한 프런트엔드 프로젝트라면 현재 Babel의 사용은 필수입니다.
*트랜스파일러?
ES2015 등장 이후로 javascript는 class문법, 화살표 함수, 모듈 도입 등 많은 변화가 있었습니다. 이후에도 동기, 비동기처리를 위한 async & await, optional 등 다양한 문법과 편의성 높은 기술들이 추가되고 있습니다.