개발자

레거시 jQuery 프로젝트에서 ES2022 클래스 vs. 클로저: DOM 이슈를 해결하기 위한 더 나은 선택은?

2023년 04월 24일조회 74

저는 현재 회사에서 레거시 프로젝트를 작업 중인데요. 이 프로젝트는 jQuery를 기반으로 동적 페이지를 구성하고 있는 상황입니다. 이 프로젝트에 신규 기능을 추가할 때 ES2022 VanilaJS의 클래스를 사용하여 작성하고 있는데요. 클래스보다 함수형 프로그래밍 방식 중 클로저를 사용하여 개발하는 것이 더 나은 방법인지 궁금합니다. 현재 코드에서는 클래스에 DOM을 담아 this.$dom과 같이 사용하고 있는데, 때로는 this가 동작하지 않는 문제가 발생합니다. 예를 들어 클래스 인스턴스의 함수를 콜백으로 전달하는 경우 등 그렇더라고요... 이러한 이슈를 해결하기 위해 클로저를 사용하는 것이 좋을지 궁금합니다.!!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

jQuery를 기반으로 동적 페이지를 구성하고 있다면, 현재 상황에서는 클래스보다 클로저를 사용하는 것이 더 나은 선택일 수 있습니다. 이는 레거시 jQuery 프로젝트에서 DOM 요소를 다루는 것이 클래스의 this와 충돌하는 경우가 있기 때문입니다. 클로저는 함수 내부에 중첩된 함수로, 외부 함수에 접근할 수 있는 내부 함수를 말합니다. 이를 이용하면 외부 함수에서 변수를 선언하고, 내부 함수에서 이 변수에 접근할 수 있게 됩니다. 이렇게 클로저를 사용하면 DOM 요소를 외부 함수에서 변수로 선언하고, 내부 함수에서 이를 사용할 수 있게 됩니다. 하지만, 클래스와 클로저 중 무엇이 더 나은 방식인지는 상황에 따라 다를 수 있습니다. 클래스는 객체 지향 프로그래밍 방식으로 코드를 구성하며, 프로토타입 체인을 이용하여 상속 등을 구현할 수 있습니다. 반면, 클로저는 함수형 프로그래밍 방식으로, 일부러 변수를 숨기는 등의 기능을 구현할 때 유용합니다. 따라서, 이번 상황에서는 DOM 요소를 다루는 문제를 해결하기 위해 클로저를 사용하는 것이 좋은 선택일 수 있지만, 무조건적으로 클래스나 클로저 중 하나를 선택하는 것이 아니라 상황에 따라 선택해야 합니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!