전역변수와 전역상태관리

·2024년 4월 21일
0

신기한 개발 세상

목록 보기
12/12
post-thumbnail

웹 애플리케이션에서 메모리 누수가 발생하는 원인이 뭔가요? 라고 물어본다면 여러 이유 중 하나로 언급되는 과도한 전역변수 사용.

근데 이상하다. 요~즘 웹 개발하다보면 상태 관리 라이브러리들을 사용해서 전역 상태를 관리하는게 기본 중 기본 아니냐구요. 그럼 우리는 모두 메모리가 줄줄 새고 있는 애플리케이션을 만들고 있는건가??

그래서 전역 변수 최소화 원칙과 현대의 상태 관리 도구를 사용하는 것 사이의 관계를 짧게 알아보자!

전역 변수와 전역 상태 관리

전역 변수의 문제점

  • 전통적인 전역 변수는 코드 어디에서나 수정될 수 있어 예측 불가능한 변경과 버그를 유발할 수 있다.
  • 관리되지 않는 전역 변수는 메모리 누수의 원인이 되기도 하며, 애플리케이션의 상태를 추적하기 어렵게 만든다.

상태 관리 라이브러리의 접근 방식

  • Recoil, Redux와 같은 라이브러리는 애플리케이션의 전역 상태를 관리하는 통합된 방식을 제공한다. 이들은 전역 상태를 구조화하고, 변화를 예측 가능하게 만든다.
  • 이러한 도구들은 상태 변경 로직을 중앙화하고 엄격한 규칙을 적용하여, 상태의 변경이 일어나는 조건과 시점을 명확히 한다.
  • 상태의 변경이나 조회는 주로 특정 API를 통해 이루어지며, 이는 상태의 무분별한 변경을 방지하고 애플리케이션의 성능을 유지하는 데 도움을 준다.

전역 변수 최소화와 상태 관리 라이브러리
상태 관리 라이브러리를 사용하는 것이 전역 변수를 사용하는 것과 기술적으로 다르다고 볼 수 있는데, 이는 다음과 같은 이유 때문이다.

  • 캡슐화와 모듈성: 상태 관리 라이브러리는 상태를 적절히 캡슐화하고, 필요한 컴포넌트에만 상태를 노출한다. 이는 전역 변수가 가진 "무제한 접근성"과 구별된다.
  • 디버깅 및 도구 지원: Redux, Recoil과 같은 도구들은 개발자 도구를 통한 상태 추적, 시간 여행 디버깅 등 고급 기능을 제공하여 상태 변화를 명확히 이해하고 문제를 쉽게 파악할 수 있게 해준다.
  • 성능 최적화: 이러한 라이브러리들은 불필요한 리렌더링을 줄이기 위한 최적화가 내장되어 있다. 예를 들어, Redux는 메모리상에서 효율적인 변경 감지 로직을 사용하여 애플리케이션의 성능을 유지한다.

결론적으로,

메모리 누수를 막기 위해서라도 전역 변수를 최소화하는 원칙은 여전히 유효하지만, 현대의 상태 관리 라이브러리를 사용하는 경우, 이 원칙은 더 체계적이고 안전한 방식으로 전역 상태를 관리하는 형태로 진화했다고 볼 수 있다. 이는 전역 변수를 무분별하게 사용하는 것과는 본질적으로 다르다는 뜻..!!

앞으론 안~심하고 써야지 ㅎㅎ!

profile
이제는 병아리는 벗어나야하는 프론트개발자

0개의 댓글