자바스크립트의 은닉화
은닉화는 객체의 내부 상태와 구현 정보를 외부로부터 숨기고, 객체와 상호작용하기 위한 공개 인터페이스를 제공하는 프로그래밍 관행을 말함.
변수가 프로그램의 다른 부분, 외부 스크립트, 라이브러리에 의해 의도치않게 덮어쓰여지는 것을 방지하기 위해 중요함.
즉시 호출 함수 표현식(IIFEs), 클로저, 그리고 블록을 사용하여 데이터 은닉화를 달성할 수 있음.
javascript는 다른 언어에 비해 데이터 은닉화를 강력하게 지원하지 않음.
typescript는 스코핑을 도입했지만 비공개 변수에 접근하더라도 코드가 컴파일되고 실행될 수 있어, javascript에서 은닉화의 한계를 보여줌.
모듈과 은닉화
코드의 안정성과 유지보수성을 높이기 위해 필요함.
내부적인 구현 세부사항을 숨김으로써, 모듈 사용자가 오직 공개된 인터페이스만을 통해 모듈과 상호작용을 할 수 있게 됨.
의도치 않은 방식으로 내부 상태가 변경되는 것을 방지하고, 모듈의 내부 구현이 변경되어도 외부에 영향을 미치지않도록 보장함.
모듈의 독립성이 강화되고, 다른 부분의 코드와의 의존성이 줄어들며, 코드 베이스의 전반적인 관리가 쉬워짐.
결론
npm package로 배포할 경우 완벽한 은닉화를 할 수 없다(자바스크립트의 한계).
사용자가 외부에서 접근을 했을 때 코드의 구성을 알아볼 수 없게 minify하고 사용자가 변수나 함수를 덮어씌우지 않도록 은닉화를 하는게 최선이다.
'javascript' 카테고리의 다른 글
hoisting (0) | 2024.03.26 |
---|---|
자바스크립트의 비동기처리 (0) | 2024.03.18 |
rollup (0) | 2024.03.10 |
webpack (0) | 2024.02.24 |
break && continue (0) | 2022.03.05 |