현 시점에서 현업에서 class 문법의 private 접근제한자를 많이 쓸까요?

안녕하세요. 처음으로 질문을 올리게 되었습니다.

저는 직접적으로 개발을 하는 사람은 아니고 간접적으로 개발에 참여하고 개발자와 협업하는 컨설팅을 하고 있습니다. 물론, 개발자가 직접 제 코드를 쓰지 않을 가능성이 있겠지만, 가급적이면 제 코드를 다양한 실 서비스에 적용해도 문제 없는 코드로 만들고 싶습니다.

IE는 당연하게도 고려 대상은 아니고(이미 많은 업체에서 IE 지원을 뺴고 있으니까요), 최신 웹 서비스를 기준으로 했을 때, #을 붙여서 메소드나 속성을 비공개 필드로 만드는 최신 문법을 현업에서 많이 쓰이는지 궁금합니다.

Proxy로 객체를 은닉하자니 내부에서조차 프로퍼티 접근이 어려워지고, Symbol을 속성 키로 쓰자니 생산성이 떨어져서 질문 올립니다.

물론, 업체마다 환경이나 고려 대상이 다르겠지만, 대체로 어떤지 궁금합니다.

안녕하세요! 저의 의견을 드리고자 답글을 남기겠습니다.

GitHub을 기준으로 보면 자주 사용되는 패턴 같습니다. private 접근자를 통해 속성에 접근을 제한하고 공개 속성만 제공하여 코드의 재사용성을 크게 높이려는 것으로 보입니다. 현대의 모던 웹 브라우저들은 원하는 스펙을 사용하는데 큰 무리가 없어 보입니다. 또한 프로덕션 단계에서는 다양한 컴파일러, 라이브러리, 프레임워크를 도입하고 활용합니다. 클래스뿐만 아니라 다른 방식으로도 private 구현또한 가능합니다 (모듈 패턴 등)

코드간에 다른 분들과 함께 사용하려면 코드 유지보수는 필연적으로 발생하게 됩니다.
범용적으로 사용될 코드를 작성할 때는 실질적으로 개발자가 해당 코드를 읽고 개선하거나 사용하기 때문에 개발자 친화적인 코드를 작성한다면 다른 개발자가 직접 코드를 사용할 가능성을 크게 높일 것으로 예상됩니다. (소중한 시간을 들여서 만들었는데 사용하지 않으면 아쉬우니까요) 예를 들어 JSDoc를 활용하여 메서드의 문맥을 파악할 수 있고, 함수명과 변수명을 명확하게 작성하며, 코드를 불변성으로 유지하고 암묵적인 입력과 출력을 제거하는 등의 방법이 있습니다.

-레퍼런스
classes_private_class_fields
JSDoc
함수의 암묵적 입출력 제거하기