반응형
전역 데이터는 프로그램 전체에서 공유되는 데이터를 의미합니다.
전역 변수, 전역 상수, 싱글턴 인스턴스, 레지스트리 항목 등이 포함될 수 있습니다.
전역 데이터는 여러 모듈에서 자유롭게 접근할 수 있기 때문에 모듈 간 결합도가 높아지고, 코드의 복잡도가 증가하며, 디버깅이 어려워질 수 있습니다.
- 전역 데이터는 아무곳에서나 변경될 수 있다.
- 전역 데이터로 문제가 발생 시 어떤 코드로 인해 값이 바뀐 것인지 알기 어렵다.
- 클래스 맴버 변수도 비슷한 문제가 발생 할 수 있다.
또한 전역 데이터가 변경될 경우 해당 데이터를 사용하는 모든 코드를 수정해야 하므로 유지보수성도 저하될 수 있습니다.
전역 데이터를 사용하지 않고 지역 변수나 매개변수로 데이터를 전달하거나 객체지향 설계 원칙 중 하나인 의존성 역전 원칙(Dependency Inversion Principle)을 적용하여 인터페이스를 통해 데이터를 전달하는 방법 등을 고려할 수 있습니다.
전역 데이터를 사용해야 하는 경우도 있지만, 가능한 사용을 최소화하고 적절히 제한하는 것이 좋습니다.
사용할 수 있는 리팩터링
'리팩터링 > 냄새 (리팩터링할 시점)' 카테고리의 다른 글
냄새 7. 뒤엉킨 변경(Divergent Change) (0) | 2023.03.17 |
---|---|
냄새 6. 가변 데이터 (Mutable Data) (0) | 2023.03.06 |
냄새 4. 긴 매개 변수 목록 (Long Parameter List) (0) | 2023.02.24 |
냄새 3. 긴 함수 (Long Function) (0) | 2023.02.16 |
냄새 2. 중복 코드 (Duplicated Code) (0) | 2023.02.13 |