[mjt] 엄격 모드(Strict Mode)에 대해 알아보자.
엄격 모드(Strict Mode)에 대해 알아보자.
자바스크립트에서 "use strict"
를 한번쯤 본 적이 있다. 그런데 이거 왜 쓰는지 알 지 못했는데(사실 배웠음.. 기억이 안났을 뿐), 스터디 내용에 있어서 공부하게 되었다.
언제 쓰는거임?
엄격 모드는 Javascript Info 문서에서 보았을 때, 자바스크립트가 발전하면서 새로운 기능이 추가되고 기존 기능이 변경되면서 호환성 문제가 생긴 것을 해결하기 위해 도입되었다.
기본적으로 자바스크립트는 역호환성을 중요시하기 때문에, 기존 코드와 충돌하지 않도록 엄격 모드는 선택적으로 적용할 수 있으며, 더 안전하고 예상 가능한 코드를 작성하고 싶을 때 엄격 모드를 사용하는 것이 권장된다.
1-1) 엄격 모드를 사용하는 주요 상황
-
새 프로젝트를 시작할 때
- 새로운 프로젝트에서는 코드의 안정성과 품질을 위해 엄격 모드를 기본으로 적용하는 것이 좋다.
- 리액트, 넥스트.js 같은 프레임워크도 기본적으로 이를 지원한다.
-
실수를 예방하고 싶은 경우
- 엄격 모드는 암묵적인 전역 변수 선언, 중복된 매개변수 이름, 잘못된 this 바인딩과 같은 일반적인 실수를 방지한다.
- 이는 특히 초보 개발자나 팀 프로젝트에서 유용하다.
-
레거시 코드를 리팩토링할 때
- 레거시 코드에서 더 안전하고 유지보수하기 쉬운 코드를 작성하기 위해 일부 모듈이나 파일에만 엄격 모드를 단계적으로 적용할 수 있다.
-
브라우저 최적화
- 최신 자바스크립트 엔진은 엄격 모드로 작성된 코드를 더 잘 최적화한다.
- 성능 향상이 필요한 경우 엄격 모드를 사용하는 것이 유리할 수 있다.
-
코드 품질 도구와 함께 사용할 때
- ESLint와 같은 정적 분석 도구를 사용하는 환경에서 엄격 모드와 함께 사용하면, 잠재적인 오류를 더 효과적으로 탐지할 수 있다.
그럼 필수인걸까?
필수는 아니다. 자바스크립트에서 선택적으로 사용할 수 있으며, 비엄격 모드와 호환되게 설계되어있다. 리액트와 넥스트 같은 프레임워크에서는 기본적으로 엄격 모드를 권장하거나 활성화하는걸 추천함
회고
그냥 듣기만했고 왜 쓰는지는 자세히 알 지 못했는데, 엄격 모드를 사용하면 브라우저 최적화와 코드의 안정성과 품질을 위해 사용하는게 좋은 것 같다.