코드 품질을 결정하는 무수히 많은 것들중 유지 보수성, 확장성은 중요한 요소 입니다. 순환 참조가 발생한다면 이 2가지의 요소가 매우 떨어지는 효과가 나타나게 됩니다.
[그림 1]은 단방향 참조입니다. 이 경우에는
1. D에 변화가 생겼을 때는 E에만 영향을 미쳐 E만 수정하면 됩니다.
2. C에 변화가 생겼을 때는 전체에 영향을 미칩니다.
이렇듯 단방향 참조는 최소한의 영향을 미치도록 합니다.
다음으로 양방향 참조(순환 참조)를 보겠습니다.
[그림 2]는 양방향 참조를 하고 있습니다.
위에서 [그림 1]의 경우에 D에 변화가 생겼다면 E만 수정하면 됐지만, 양방향 참조가 발생한 [그림 2]의 경우에는
D에 변화가 생겼을때 E와 추가적으로 C에 영향이 가고 이것이 A,B의 수정으로 이어저 A, B, C, D, E 모든 요소를 수정해야하는 결과가 일어납니다.
이렇듯 순환 참조가 발생하여 D를 의존하던것이 1가지에서 더 넓은 범위로 확장되는 것을 "의존성 전파"라고 합니다. 이렇듯 순환 참조가 되어있다면 의존성 전파에 의해 그 영향력이 매우 커져 코드의 유지보수와 확장성에 매우 큰 영향을 끼치게 됩니다.
따라서, 양방향 참조를 가능한 줄여 코드의 유지보수와 확장성을 챙기는 것이 더 좋은 방향이 될 수 있습니다.
'computer science > knowlege' 카테고리의 다른 글
Git/GitHub - stash (1) | 2024.06.13 |
---|---|
Authentication, Authorization (0) | 2023.10.28 |
Cookie, Session, JWT (0) | 2023.08.16 |