me2day

자바 컴파일러가 객체의 교차 참조를 허용하는 이유는 뭘까요? 도메인 객체나 응집력 강한 모듈 내의 교차 참조나 순환 참조는 문제가 되지 않기 때문일까요? 10.04.08 15:07

Fun With Modules - 순환 의존관계를 제거하는 여러 접근법에 대해 설명하고 있다. 그림만 봐도 어느 정도 힌트를 얻어갈 수 있을 것이야. 자세히 읽어보진 않았지만(-_-;) 익혀두면 코드 개선에 유용하게 써 먹을 수 있을 듯. by 오리왕

미투 0

12 개의 댓글이 있습니다.

오리왕 오리대마왕

그래서 객체 level에서는 언급하지 않고, 패키지 level에서 문제삼는 것 같아요. 그리고 순환 참조가 always evil 이 아니라는 의견도 있으니 그것도 살펴봐야 하겠네요. 저 또한 객체 간 교차 참조를 다 자르는 건 좋지 않다고 생각해요.

10.04.08 15:59
오리왕 오리대마왕

다만 패키지 level에서 봤을 때 패키지끼리도 저런 실타래가 있다는 것은 패키지를 잘못 나누었다는 징후로 볼 수 있겠지요. 저도 순환 참조가 나쁘다는 것은 얇게 이해하고 있는데, 깊이 들어가서 언제 어떻게 왜 나쁜지는 아직 모르겠습니다. 알려주세요. ㅋㅋㅋㅋ

10.04.08 16:01
홍민희 홍민희

저도 circular references가 항상 나쁘다고 생각하지 않는데…

10.04.08 16:12
fupfin fupfin

오리대마왕 홍민희 : 사실 컴포넌트 수준이 아닌 클래스 수준에서의 교차 참조나 순환 참조 문제는 제가 잘 모르는 부분이네요. 읽을만한 책이나 글 있으면 부탁드립니다.

10.04.08 17:59
fupfin fupfin

오리대마왕 홍민희 : 제가 바보같은 질문을 했군요. 요즘 머리를 집에 두고 다니다보니..ㅠㅠ

10.04.08 19:06
종텐 종텐

순환참조가 있어도, 상위 트리에서 끊기면 수거되지 않나요)

10.04.08 21:31
종텐 종텐

?...를 찍으려했는데 전송버튼이 ㅠ

10.04.08 21:31
setq~♡ setq~♡

각각 다른 맥락에서 사용해야할 때 불필요한 것을 가져갈 필요가 없게 하려고 하는데, 언제나 그렇듯이 그때 그때 필요에 의해서 분리하게 되는 듯 합니다. 굳이 분리해야할 필요도 없는데 애초부터 교차 참조를 허용하지 않았으면 개발하기가 너무 어려울 것 같습니다.

10.04.08 23:10
fupfin fupfin

종텐 : GC 얘기는 아니고요. 굳이 말하자면 객체 설계 얘기인데요. 제가 별 생각없이 말하고 말았네요. 너무 DIP 에 치중해 생각하다보니...

10.04.09 00:22
fupfin fupfin

setq~♡ C/C++에서는 교차 참조가 되던가요? 선언을 먼저 해야해서 못 했던 것 같은데...

10.04.09 00:25
setq~♡ setq~♡

버전 차이인지는 모르지만 말 그대로 선언만 하고 서로 교차 참조 가능했었습니다.

10.04.09 06:24
fupfin fupfin

setq~♡ 질문이 부정확했네요. 선언시 교차 참조를 말한 거였는데... 흠... 런타임에서야 당연히 되겠고요. 아이고 정리 안 되네요. ㅎㅎ 졸려요. ㅠㅠ

10.04.09 06:32