자바는 왜 다중상속을 지원하지 않나요?

867 views
Skip to first unread message

조형규

unread,
May 25, 2011, 1:53:21 AM5/25/11
to ks...@googlegroups.com
11년 만에 프로그램의 재미에 다시 빠져 들고자 토비의 스프링 3을 혼자 읽기 시작하였습니다.

민패가 될 수 도 있는 질문이지만 왜? 자바는 다중상속을 지원하지 않을까요?
책에서도 사실에 대한 기술만 있고 이유는 없는 것 같아 질문드립니다.

행복한 오후 되세요~. 질문하면서도 두근두근 하는 군요. 여러의미로요 ^^*

wansu yang

unread,
May 25, 2011, 2:14:02 AM5/25/11
to ks...@googlegroups.com
제 머리속에서 쉽게 떠오르는 이유 중 하나는 단일책임의 원칙을 들수가 있을 것 같습니다.
하나의 책임 만을 가져야하는 원칙에 빗대어 본다면 다중상속은 여러책임을 가지고 있기 때문이지 않을까요?
다중상속이라한다면 객체의 속성과 행위를 모두 상속 받는것인데 이런 경우 키메라처럼 괴물(?) 이 생겨나겠죠?

Class 생물 {public void 호흡()}
Class 포유류 extends 생물{}
Class 양서류 extends 생물{}
Class 돌연변이 extends 포유류,양서류{}

또한 다음  같이 다중상속이 가능하다면 생물이라는 기준으로 보았을때 다형성을 사용하기 어려울 어려웠을거란 생각이들기도 하네요.....

 

2011년 5월 25일 오후 2:53, 조형규 <tyc...@gmail.com>님의 말:
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.



--
===========================================================
The Most Damaging phrase in the language is: 'It's' always been done that way.' 
 -Grace Hopper 

사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라 

-그레이스호퍼

 안녕하세요! 양완수 입니다.
+HP      : 010 2008 4167
+Email  : ywsa...@gmail.com , yang...@daumsoft.com
+
===========================================================

wansu yang

unread,
May 25, 2011, 2:21:43 AM5/25/11
to ks...@googlegroups.com
참고할만한 글타래가 있어서 링크남겨봅니다.

http://langdev.net/post/20

2011년 5월 25일 오후 3:14, wansu yang <ywsa...@gmail.com>님의 말:

양아름

unread,
May 25, 2011, 2:36:21 AM5/25/11
to ks...@googlegroups.com
조형규님 질문은 다중상속의 문제점 이라기 보담은 왜 자바엔 다중상속이 없느냐 인것같은데요..맞나요? ^^
그렇다면 ..
자바는 C/C++ 언어이후에 나왔고 그전의 언어들의 장점은 취하고 단점은 극복하면서 만들어졌습니다.
그리고 자바는 언어의 안정성을 우선순위로 두고 만들어졌구요 ..그런이유로
아시다시피 메모리 관리나 포인터 등 그동안 여러 언어에서 많은 논란(?)을 야기시켰던 것들은 빼거나 대체하였습니다.
마찮가지로 다중상속의 여러가지 문제점(구글링 해보시면 다중상속의 문제점은 수백페이지는 찾으실수있습니다.) 으로 인해 자바에선 다중상속을 제한한 것으로 알고 있습니다. ㅎ

2011년 5월 25일 오후 3:21, wansu yang <ywsa...@gmail.com>님의 말:

조형규_미래

unread,
May 25, 2011, 2:55:42 AM5/25/11
to ks...@googlegroups.com
구글링을 하지 않고 올린것에 대해서는 죄책감을 느끼고 있습니다.
누근거린 이유중의 하나기도 하구요 ^^. (처음 질문하는 두근거림, 답글이 달릴까 하는 두근거림... ^^)

질문의 요지는 양아름님의 말씀이 맞습니다.
그리고 양완수 님께서 링크 주신 글타래가 많은 지식을 저에게 전달해 주었습니다.

무엇을 만든(창조)한다는 것이 단순히 지식이나 기능의 많고 적음이 아니라
배려와 명료함이라는 중요하다는 것을 다중상속을 통해서 배우네요.

감사합니다.

2011년 5월 25일 오후 3:36, 양아름 <yabg...@gmail.com>님의 말:



--
---------------------------------------------------------------------------------------------------------------
미래소프트(주) 조형규

O.P. 070-8255-6550
S.P. 010-3130-8963
---------------------------------------------------------------------------------------------------------------

Sungchul Park

unread,
May 25, 2011, 3:03:01 AM5/25/11
to ks...@googlegroups.com
재미있고 어떤 면에서는 스프링과 아주 관계 깊은 토론이 너무 쉽게 끝나는 것 같은데요.


마찮가지로 다중상속의 여러가지 문제점(구글링 해보시면 다중상속의 문제점은 수백페이지는 찾으실수있습니다.) 으로 인해 자바에선 다중상속을 제한한 것으로 알고 있습니다. ㅎ
수백 페이지가 있다는 사실을 알기만 하고 그 내용이 뭔지 모르면 소용없겠죠? 어떤 문제가 그리 많은 걸까요? 그리고 자바가 그 이유 때문에 다중 상속을 제거한 게 옳은 판단이었을까요? 아니면 실수?

2011년 5월 25일 오후 3:21, wansu yang <ywsa...@gmail.com>님 의 말:
참고할만한 글타래가 있어서 링크남겨봅니다.

http://langdev.net/post/20

2011년 5월 25일 오후 3:14, wansu yang <ywsa...@gmail.com>님 의 말:

제 머리속에서 쉽게 떠오르는 이유 중 하나는 단일책임의 원칙을 들수가 있을 것 같습니다.
하나의 책임 만을 가져야하는 원칙에 빗대어 본다면 다중상속은 여러책임을 가지고 있기 때문이지 않을까요?
다중상속이라한다면 객체의 속성과 행위를 모두 상속 받는것인데 이런 경우 키메라처럼 괴물(?) 이 생겨나겠죠?

Class 생물 {public void 호흡()}
Class 포유류 extends 생물{}
Class 양서류 extends 생물{}
Class 돌연변이 extends 포유류,양서류{}

또한 다음  같이 다중상속이 가능하다면 생물이라는 기준으로 보았을때 다형성을 사용하기 어려울 어려웠을거란 생각이들기도 하네요.....

 

2011년 5월 25일 오후 2:53, 조형규 <tyc...@gmail.com>님 의 말:

11년 만에 프로그램의 재미에 다시 빠져 들고자 토비의 스프링 3을 혼자 읽기 시작하였습니다.

민패가 될 수 도 있는 질문이지만 왜? 자바는 다중상속을 지원하지 않을까요?
책에서도 사실에 대한 기술만 있고 이유는 없는 것 같아 질문드립니다.

행복한 오후 되세요~. 질문하면서도 두근두근 하는 군요. 여러의미로요 ^^*
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.

그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.



--
===========================================================
The Most Damaging phrase in the language is: 'It's' always been done that way.' 
 -Grace Hopper 

사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라 

-그레이스호퍼

 안녕하세요! 양완수 입니다.
+HP      : 010 2008 4167
+Email  : ywsa...@gmail.com , yang...@daumsoft.com
+
===========================================================




--
===========================================================
The Most Damaging phrase in the language is: 'It's' always been done that way.' 
 -Grace Hopper 

사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라 

-그레이스호퍼

 안녕하세요! 양완수 입니다.
+HP      : 010 2008 4167
+Email  : ywsa...@gmail.com , yang...@daumsoft.com
+
===========================================================

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.

그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.

wansu yang

unread,
May 25, 2011, 3:10:40 AM5/25/11
to ks...@googlegroups.com

우리 선배(?) 들께서는 흔히 들 말하는 다이아몬드 문제 때문에 다중상속은 자제되어야한다고 논의가 많이 된것 같습니다.
이런 논의 때문에 자바에서는 Interface 로 대체한것이 아닐까요??

2011년 5월 25일 오후 4:03, Sungchul Park <gyu...@gmail.com>님의 말:

아름냥

unread,
May 25, 2011, 3:12:08 AM5/25/11
to Korea Spring User Group
어떤면에서 스프링과 깊은 관련이 있나요.? 가르침을 내려주시옵서서..^^

On 5월25일, 오후4시03분, Sungchul Park <gyu...@gmail.com> wrote:
> 재미있고 어떤 면에서는 스프링과 아주 관계 깊은 토론이 너무 쉽게 끝나는
> 것 같은데요.
>
> > 마찮가지로 다중상속의 여러가지 문제점(구글링 해보시면 다중상속의 문제
> > 점은 수백페이지는 찾으실수있습니다.) 으로 인해 자바에선 다중상속을 제
> > 한한 것으로 알고 있습니다. ㅎ
>
> 수백 페이지가 있다는 사실을 알기만 하고 그 내용이 뭔지 모르면 소용없겠
> 죠? 어떤 문제가 그리 많은 걸까요? 그리고 자바가 그 이유 때문에 다중 상속
> 을 제거한 게 옳은 판단이었을까요? 아니면 실수?
>
>
>
>
>
>
>

> > 2011년 5월 25일 오후 3:21, wansu yang <ywsaa...@gmail.com
> > <mailto:ywsaa...@gmail.com>>님 의 말:


>
> > 참고할만한 글타래가 있어서 링크남겨봅니다.
>
> > http://langdev.net/post/20
>

> > 2011년 5월 25일 오후 3:14, wansu yang <ywsaa...@gmail.com
> > <mailto:ywsaa...@gmail.com>>님 의 말:


>
> > 제 머리속에서 쉽게 떠오르는 이유 중 하나는 단일책임의 원칙을
> > 들수가 있을 것 같습니다.
> > 하나의 책임 만을 가져야하는 원칙에 빗대어 본다면 다중상속은 여
> > 러책임을 가지고 있기 때문이지 않을까요?
> > 다중상속이라한다면 객체의 속성과 행위를 모두 상속 받는것인데
> > 이런 경우 키메라처럼 괴물(?) 이 생겨나겠죠?
>
> > Class 생물 {public void 호흡()}
> > Class 포유류 extends 생물{}
> > Class 양서류 extends 생물{}
> > Class 돌연변이 extends 포유류,양서류{}
>
> > 또한 다음 같이 다중상속이 가능하다면 생물이라는 기준으로 보았
> > 을때 다형성을 사용하기 어려울 어려웠을거란 생각이들기도 하네
> > 요.....
>

> > 2011년 5월 25일 오후 2:53, 조형규 <tych...@gmail.com
> > <mailto:tych...@gmail.com>>님 의 말:


>
> > 11년 만에 프로그램의 재미에 다시 빠져 들고자 토비의 스프링
> > 3을 혼자 읽기 시작하였습니다.
>
> > 민패가 될 수 도 있는 질문이지만 왜? 자바는 다중상속을 지원
> > 하지 않을까요?
> > 책에서도 사실에 대한 기술만 있고 이유는 없는 것 같아 질문
> > 드립니다.
>
> > 행복한 오후 되세요~. 질문하면서도 두근두근 하는 군요. 여러
> > 의미로요 ^^*
> > --
> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므
> > 로 본 메일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com

> > <mailto:ks...@googlegroups.com>(으) 로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com
> > <mailto:ksug%2Bunsu...@googlegroups.com>로 이메일을 보


> > 내주세요.
> > 더 많은 옵션을 보려면
> > http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문
> > 하세요.
>

> > --
> > ===========================================================
> > *The Most Damaging phrase in the language is: 'It's' always
> > been done that way.' *
> > / -Grace Hopper /
>
> > *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라*
>
> > /-그레이스호퍼/


>
> > 안녕하세요! 양완수 입니다.
> > +HP : 010 2008 4167

> > +Email : ywsaa...@gmail.com <mailto:ywsaa...@gmail.com> ,
> > yangwa...@daumsoft.com <mailto:yangwa...@daumsoft.com>
> > +
> > ===========================================================
>
> > --
> > ===========================================================
> > *The Most Damaging phrase in the language is: 'It's' always been
> > done that way.' *
> > / -Grace Hopper /
>
> > *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라*
>
> > /-그레이스호퍼/


>
> > 안녕하세요! 양완수 입니다.
> > +HP : 010 2008 4167

> > +Email : ywsaa...@gmail.com <mailto:ywsaa...@gmail.com> ,
> > yangwa...@daumsoft.com <mailto:yangwa...@daumsoft.com>


> > +
> > ===========================================================
>
> > --
> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메
> > 일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com

> > <mailto:ks...@googlegroups.com>(으) 로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com
> > <mailto:ksug%2Bunsu...@googlegroups.com>로 이메일을 보내주세요.

JUNGTAE KIM

unread,
May 25, 2011, 3:34:11 AM5/25/11
to ks...@googlegroups.com
http://www.javaservice.net/~java/bbs/data/etc/1134197935+/%BB%F3%BC%D3%C0%BB%C7%C7%C7%D8%BE%DF%C7%CF%B4%C2%C0%CC%C0%AF_1_.pdf

오래된 문서인데 Spring이 추구하는?

상속에 대해서 나와있지 않나 해서

첨부해 봅니다.


2011년 5월 25일 오후 4:12, 아름냥 <yabg...@gmail.com>님의 말:
상속을피해야하는이유_1_.pdf

Sungchul Park

unread,
May 25, 2011, 4:30:57 AM5/25/11
to ks...@googlegroups.com
이게 번역된 게 있었군요.
고맙습니다.
다음 책 읽기 모임은 Holub on Patterns로 해보고 싶어지네요. ^^
http://www.javaservice.net/~java/bbs/data/etc/1134197935+/%BB%F3%BC%D3%C0%BB%C7%C7%C7%D8%BE%DF%C7%CF%B4%C2%C0%CC%C0%AF_1_.pdf

오래된 문서인데 Spring이 추구하는?

상속에 대해서 나와있지 않나 해서

첨부해 봅니다.


2011년 5월 25일 오후 4:12, 아름냥 <yabg...@gmail.com>님 의 말:
> >            http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문
> >             하세요.
>
> >         --
> > 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.

> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내
> > 주세요.
> > 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에 서 그
> > 룹을 방문하세요.

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.

그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.


--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.

Sungchul Park

unread,
May 25, 2011, 4:35:22 AM5/25/11
to ks...@googlegroups.com

우리 선배(?) 들께서는 흔히 들 말하는 다이아몬드 문제 때문에 다중상속은 자제되어야한다고 논의가 많이 된것 같습니다.
이런 논의 때문에 자바에서는 Interface 로 대체한것이 아닐까요??
링크 거신 랑데뷰 글의 홍민희님이 하신 말씀처럼 단지 다이아몬드 문제를 피하려고 다중 상속을 지원하지 않는 건 좀 과하지 않나요? 그리고 인터페이스가 도입된 이유가 다중 상속을 지원하지 않기 때문인 걸까요?

(요즘 추리 만화를 많이 봤더니 자꾸 탐정처럼 말을... -_-);

2011년 5월 25일 오후 4:03, Sungchul Park <gyu...@gmail.com>님 의 말:

아름냥

unread,
May 25, 2011, 4:43:32 AM5/25/11
to Korea Spring User Group
흠 인터페이스 개념은 상속과는 다른 개념으로 자바가 있기 훨씬전부터 있던 개념입니다..

다중상속을 대체한 개념은 아닌것 같습니다.

인터페이스 도입이유중 가장 중요한것은 확장성과 유연성 아닐까요?

On 5월25일, 오후5시35분, Sungchul Park <gyu...@gmail.com> wrote:
> > 우리 선배(?) 들께서는 흔히 들 말하는 다이아몬드 문제 때문에 다중상속은
> > 자제되어야한다고 논의가 많이 된것 같습니다.
> > 이런 논의 때문에 자바에서는 Interface 로 대체한것이 아닐까요??
>
> 링크 거신 랑데뷰 글의 홍민희님이 하신 말씀처럼 단지 다이아몬드 문제를 피
> 하려고 다중 상속을 지원하지 않는 건 좀 과하지 않나요? 그리고 인터페이스
> 가 도입된 이유가 다중 상속을 지원하지 않기 때문인 걸까요?
>
> (요즘 추리 만화를 많이 봤더니 자꾸 탐정처럼 말을... -_-);
>
>
>
>
>
>
>
> > 2011년 5월 25일 오후 4:03, Sungchul Park <gyu...@gmail.com

> > <mailto:gyu...@gmail.com>>님 의 말:


>
> > 재미있고 어떤 면에서는 스프링과 아주 관계 깊은 토론이 너무 쉽게 끝
> > 나는 것 같은데요.
>
> >> 마찮가지로 다중상속의 여러가지 문제점(구글링 해보시면 다중상속의
> >> 문제점은 수백페이지는 찾으실수있습니다.) 으로 인해 자바에선 다중
> >> 상속을 제한한 것으로 알고 있습니다. ㅎ
> > 수백 페이지가 있다는 사실을 알기만 하고 그 내용이 뭔지 모르면 소용
> > 없겠죠? 어떤 문제가 그리 많은 걸까요? 그리고 자바가 그 이유 때문에
> > 다중 상속을 제거한 게 옳은 판단이었을까요? 아니면 실수?
>

> >> 2011년 5월 25일 오후 3:21, wansu yang <ywsaa...@gmail.com
> >> <mailto:ywsaa...@gmail.com>>님 의 말:


>
> >> 참고할만한 글타래가 있어서 링크남겨봅니다.
>
> >> http://langdev.net/post/20
>

> >> 2011년 5월 25일 오후 3:14, wansu yang <ywsaa...@gmail.com
> >> <mailto:ywsaa...@gmail.com>>님 의 말:


>
> >> 제 머리속에서 쉽게 떠오르는 이유 중 하나는 단일책임의 원
> >> 칙을 들수가 있을 것 같습니다.
> >> 하나의 책임 만을 가져야하는 원칙에 빗대어 본다면 다중상속
> >> 은 여러책임을 가지고 있기 때문이지 않을까요?
> >> 다중상속이라한다면 객체의 속성과 행위를 모두 상속 받는것
> >> 인데 이런 경우 키메라처럼 괴물(?) 이 생겨나겠죠?
>
> >> Class 생물 {public void 호흡()}
> >> Class 포유류 extends 생물{}
> >> Class 양서류 extends 생물{}
> >> Class 돌연변이 extends 포유류,양서류{}
>
> >> 또한 다음 같이 다중상속이 가능하다면 생물이라는 기준으로
> >> 보았을때 다형성을 사용하기 어려울 어려웠을거란 생각이들기
> >> 도 하네요.....
>

> >> 2011년 5월 25일 오후 2:53, 조형규 <tych...@gmail.com
> >> <mailto:tych...@gmail.com>>님 의 말:


>
> >> 11년 만에 프로그램의 재미에 다시 빠져 들고자 토비의
> >> 스프링 3을 혼자 읽기 시작하였습니다.
>
> >> 민패가 될 수 도 있는 질문이지만 왜? 자바는 다중상속을
> >> 지원하지 않을까요?
> >> 책에서도 사실에 대한 기술만 있고 이유는 없는 것 같아
> >> 질문드립니다.
>
> >> 행복한 오후 되세요~. 질문하면서도 두근두근 하는 군요.
> >> 여러의미로요 ^^*
> >> --
> >> Google 그룹스 'Korea Spring User Group' 그룹에 가입했
> >> 으므로 본 메일이 전송되었습니다.
> >> 이 그룹에 게시하려면 ks...@googlegroups.com

> >> <mailto:ks...@googlegroups.com>(으) 로 이메일을 보내세요.
> >> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com
> >> <mailto:ksug%2Bunsu...@googlegroups.com>로 이메일


> >> 을 보내주세요.
> >> 더 많은 옵션을 보려면
> >> http://groups.google.com/group/ksug?hl=ko에서 그룹을
> >> 방문하세요.
>

> >> --
> >> ===========================================================
> >> *The Most Damaging phrase in the language is: 'It's'
> >> always been done that way.' *
> >> / -Grace Hopper /
>
> >> *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을
> >> 기억하라*
>
> >> /-그레이스호퍼/


>
> >> 안녕하세요! 양완수 입니다.
> >> +HP : 010 2008 4167

> >> +Email : ywsaa...@gmail.com <mailto:ywsaa...@gmail.com>
> >> , yangwa...@daumsoft.com <mailto:yangwa...@daumsoft.com>
> >> +
> >> ===========================================================
>
> >> --
> >> ===========================================================

> >> *The Most Damaging phrase in the language is: 'It's' always
> >> been done that way.' *
> >> / -Grace Hopper /
>

> >> *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억
> >> 하라*
>
> >> /-그레이스호퍼/


>
> >> 안녕하세요! 양완수 입니다.
> >> +HP : 010 2008 4167

> >> +
> >> ===========================================================
>
> >> --
> >> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로
> >> 본 메일이 전송되었습니다.
> >> 이 그룹에 게시하려면 ks...@googlegroups.com

> >> <mailto:ks...@googlegroups.com>(으) 로 이메일을 보내세요.
> >> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com
> >> <mailto:ksug%2Bunsu...@googlegroups.com>로 이메일을 보내
> >> 주세요.

> >> 더 많은 옵션을 보려면http://groups.google.com/group

> >> /ksug?hl=ko에 서 그룹을 방문하세요.
>
> >> --

> >> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메
> >> 일이 전송되었습니다.
> >> 이 그룹에 게시하려면 ks...@googlegroups.com

> >> <mailto:ks...@googlegroups.com>(으) 로 이메일을 보내세요.
> >> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com
> >> <mailto:ksug+uns...@googlegroups.com>로 이메일을 보내주세요.


> >> 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko

> >> 에서 <http://groups.google.com/group/ksug?hl=ko%EC%97%90%EC%84
> >> %9C> 그룹을 방문하세요.
>
> > --


> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메
> > 일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com

> > <mailto:ks...@googlegroups.com>(으) 로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com
> > <mailto:ksug%2Bunsu...@googlegroups.com>로 이메일을 보내주세요.


> > 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko
> > 서 그룹을 방문하세요.
>

> > --
> > ===========================================================
> > *The Most Damaging phrase in the language is: 'It's' always been done


> > that way.' *
> > / -Grace Hopper /
>

> > *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라*
>
> > /-그레이스호퍼/


>
> > 안녕하세요! 양완수 입니다.
> > +HP : 010 2008 4167

김기용

unread,
May 25, 2011, 4:44:56 AM5/25/11
to ks...@googlegroups.com
그냥 저도 추측일 뿐이지만, 언어를 설계할 당시에 다중 상속의 어떤 특징이 객체 지향 원리에 위배된다고 생각해서 지원하지 않게된 거 아닐까요?

어떻게 위배가 되는지는 좀 더 고민을 해 봐야겠지만...

그리고 일단 인터페이스는 다중 상속의 대체로 나온 개념은 절대 아닌 것 같습니다.

오히려 다중상속을 대체할 수 있는 건 trait 같은데.. 여기서 또 생기는 의문은 그럼 왜 자바는 trait 를 지원하지 않을까요?

2011년 5월 25일 오후 5:35, Sungchul Park <gyu...@gmail.com>님의 말:

wansu yang

unread,
May 25, 2011, 4:50:43 AM5/25/11
to ks...@googlegroups.com

ㅜㅜ 인터페이스가나온배경이 다중상속이라기보다 상속보다는 구현을통해 문제점을해결하기위한 방안으로 제시될수있다는 의미입니다 좀오해의글을올렸군용 ++

2011. 5. 25. 오후 5:44에 "김기용" <drag...@gmail.com>님이 작성:
>>>>> *The Most Damaging phrase in the language is: 'It's' always been done
>>>>> that way.' *
>>>>> * -Grace Hopper *
>>>>>
>>>>> *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라*
>>>>>
>>>>> *-그레이스호퍼*

>>>>> 안녕하세요! 양완수 입니다.
>>>>> +HP : 010 2008 4167
>>>>> +Email : ywsa...@gmail.com , yang...@daumsoft.com
>>>>> +
>>>>> ===========================================================
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> ===========================================================
>>>> *The Most Damaging phrase in the language is: 'It's' always been done
>>>> that way.' *
>>>> * -Grace Hopper *
>>>>
>>>> *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라*
>>>>
>>>> *-그레이스호퍼*

>>>> 안녕하세요! 양완수 입니다.
>>>> +HP : 010 2008 4167
>>>> +Email : ywsa...@gmail.com , yang...@daumsoft.com
>>>> +
>>>> ===========================================================
>>>>
>>>> --
>>>> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
>>>> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
>>>> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
>>>> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
>>>>
>>>
>>> --
>>> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
>>> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
>>> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
>>> 더 많은 옵션을 보려면 http://groups.google.com/group /ksug?hl=ko에서<http://groups.google.com/group/ksug?hl=ko%EC%97%90%EC%84%9C>그룹을 방문하세요.

>>>
>>>
>>> --
>>> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
>>> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
>>> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
>>> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
>>>
>>
>>
>>
>> --
>> ===========================================================
>> *The Most Damaging phrase in the language is: 'It's' always been done that
>> way.' *
>> * -Grace Hopper *
>>
>> *사람이 하늘을 날 수 없을 거라고 말한 사람들이 있었음을 기억하라*
>>
>> *-그레이스호퍼*

Kesarr

unread,
May 25, 2011, 4:51:58 AM5/25/11
to ks...@googlegroups.com
도움이 되실 지는 모르겠지만, 제가 코칭하고 있는 스터디에서 후배들이 열심히 쌓아가고 있는 Holub on Patterns 밑줄긋기 위키 페이지입니다.

Allen Holub은 다중상속이 나쁘다까지 갈 것도 없이, extends가 나쁘다고 누누히 강조하지요.
Joshua Bloch의 그 유명한 Effective Java에서도 구현 상속에서 고려해야할 복잡한 제약 조건들을 왕창 늘어놓고 있는데 이런 것들을 모두 염두하고 안전한 구현 상속을 전개할 줄 아는 개발자는 그다지 많지 않을 것입니다.

구현 상속의 위험성이 판치는 판국에 다중상속은 더더욱 많은 문제와 꼼수를 필요로 할 것입니다.
Holub은 꼼수에 대해 생각할 필요가 없는 코드를 작성하라고 주문합니다.
다중상속의 이슈들에 대한 해결책이 있다는 것은 다중상속이 필요한 이유가 아니라, 다만 다중상속을 사용하기 위한 꼼수라는 이야기지요.

위 밑줄긋기 페이지에선 아무래도 후배들의 각자 관심있는 문장 위주로 정리되어 있다보니, 좀더 면밀히 살펴보고 싶으신 분은 그 책을 직접 읽어보시는 것을 강력히 권해드립니다.


2011년 5월 25일 오후 5:30, Sungchul Park <gyu...@gmail.com>님의 말:

Sungchul Park

unread,
May 25, 2011, 6:16:13 AM5/25/11
to ks...@googlegroups.com
이... 이런! 완전히 멋지네요.
고맙습니다.

(혼잣말: 그런데 이런 거 보면 안 되는 사람이 있는데...)

그런데 이런 글을 읽고 또 상속은 "절대"쓰지 말아야 할 악이라고 생각하는 사람도 있더군요. 과연 그럴까요? ^^

도움이 되실 지는 모르겠지만, 제가 코칭하고 있는 스터디에서 후배들이 열심히 쌓아가고 있는 Holub on Patterns 밑줄긋기 위키 페이지입니다.

Allen Holub은 다중상속이 나쁘다까지 갈 것도 없이, extends가 나쁘다고 누누히 강조하지요.
Joshua Bloch의 그 유명한 Effective Java에서도 구현 상속에서 고려해야할 복잡한 제약 조건들을 왕창 늘어놓고 있는데 이런 것들을 모두 염두하고 안전한 구현 상속을 전개할 줄 아는 개발자는 그다지 많지 않을 것입니다.

구현 상속의 위험성이 판치는 판국에 다중상속은 더더욱 많은 문제와 꼼수를 필요로 할 것입니다.
Holub은 꼼수에 대해 생각할 필요가 없는 코드를 작성하라고 주문합니다.
다중상속의 이슈들에 대한 해결책이 있다는 것은 다중상속이 필요한 이유가 아니라, 다만 다중상속을 사용하기 위한 꼼수라는 이야기지요.

위 밑줄긋기 페이지에선 아무래도 후배들의 각자 관심있는 문장 위주로 정리되어 있다보니, 좀더 면밀히 살펴보고 싶으신 분은 그 책을 직접 읽어보시는 것을 강력히 권해드립니다.


2011년 5월 25일 오후 5:30, Sungchul Park <gyu...@gmail.com>님 의 말:
더 많은 옵션을 보려면 http://groups.google.com/group /ksug?hl=ko에서 그룹을 방문하세요.

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.

Kesarr

unread,
May 25, 2011, 10:34:59 AM5/25/11
to ks...@googlegroups.com
그런 사람들은 Holub on Patterns를 제대로 읽어야 할 것 같네요!

Holub은 독자들이 상속이 주는 많은 이점들을 이미 익히 알고 있다는 전제 하에 무분별한 구현 상속의 남용이 야기하는 문제들을 설명합니다.
자신이 extends를 결코 써선 안 된다는 이야기를 하려는 것이 아니란 것도 강조하지요. :)


2011. 5. 25. 오후 7:16 Sungchul Park <gyu...@gmail.com> 작성:

wansu yang

unread,
May 25, 2011, 10:56:39 AM5/25/11
to ks...@googlegroups.com

음 그럼 extends 를사용해야 할때는 언제일까요????

2011. 5. 25. 오후 11:35에 "Kesarr" <kes...@playxp.com>님이 작성:

kenu.heo

unread,
May 25, 2011, 1:24:13 PM5/25/11
to ks...@googlegroups.com
자바를 참 잘 하시네요. ^^;
전 그거 고민할 만큼 여유가 없었네요. 

고민 많이 하시고 댓글 다신 분들 덕분에 많이



피곤해집니다. 
감사합니다 자극 도전. ^^


Kenu. Heo

2011. 5. 25. 오후 11:56 wansu yang <ywsa...@gmail.com> 작성:

Sungchul Park

unread,
May 25, 2011, 8:51:44 PM5/25/11
to ks...@googlegroups.com
그런데 Kesarr님과 메일링에서 만나게 된 기념으로

http://www.playxp.com/community/funny/view.php?article_id=1796218

이 사건의 비하인드 스토리가 참 궁금하다는 말씀 한마디... ^^

더 많은 옵션을 보려면 http://groups.google.com/group /ksug?hl=ko에서 그룹을 방문하세요.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com /group/ksug?hl=ko에서 그룹을 방문하세요.

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com 로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com /group/ksug?hl=ko에서 그룹을 방문하세요.
--

Sungchul Park

unread,
May 25, 2011, 9:19:29 PM5/25/11
to ks...@googlegroups.com

음 그럼 extends 를사용해야 할때는 언제일까요????

포스를 믿으세요. -_-

수련과 많은 경험만이 답을 줄 수 있는 영역 아닐까 생각합니다. 사실 저도 잘 모르겠고요.

일단 상속을 안심하고 사용하는 경우는 템플릿 메서드 패턴을 적용할 때 입니다. 추상 객체의 워크플로를 공유할 때죠.

캔트 백이 구현 패턴에서 설명한 개념이 템플릿 메서드 패턴과 관련 있는데요. 인터페이스는 "내가 이런 걸 만들려고해", 추상 클래스는 "대충 이런 식으로 돌아갈 거야", 구상 클래스는 "그래서 이렇게 만들었어"의 관계를 갖는다고 설명하죠. 스프링의 대부분의 코드가 이런 식으로 작성돼 있고 추상 클래스와 구상 클래스의 관계는 템플릿 메서드 패턴인 경우가 대부분입니다.

여러가지 재사용 가능한 도움 메서드를 상위 클래스에 정의하고 이를 하위 클래스에서 편리하게 사용하도록 하는 용도로도 가끔 사용합니다.그러니까 스프링의 DaoSupport 류가 그 사례인데요. 안티패턴이 쉽게 일어나고 소중한(한번밖에 쓸 수 없는) 상속을 허비하는 격이라서 가능하면 핼퍼 객체를 쓰는 편입니다. 이것도 넓은 의미에서 템플릿 메서드 패턴으로 부르기는 하지만 전 잘 동의하지 않습니다.

디자인 패턴에 팩토리 메서드 패턴도 상속을 쓰지만 스프링 사용한 이후에는 생성 패턴을 쓸 일이 별로 없네요.

상속이 가장 유용한 경우는 OOP 보다는 OOAD가 아닐까 싶습니다. 구체적으로는 객체 모델링의 영역이죠. 사실 자바가 다중 상속을 지원해줬으면.... 하고 아쉬워할 때가 바로 객체 모델링할 때입니다.

마지막으로 전 개념 설계할 때, 그러니까 거시적인 관점에서의 컴포넌트 수준의 설계를 할 때는 인터페이스로 설계를 하지만 응집력이 강한 특정 컴포넌트 내부의 로직을 작성할 때는 인터페이스를 리펙토링 과정에서 필요시 만드는 경우가 많습니다.

저는 대충 이 정도 기준을 가지고 있는데 다른 분은 어떤가요?

>>>> 더 많은 옵션을 보려면 http://groups.google.com/group /ksug?hl=ko에서 그룹을 방문하세요.
>>>
>>> --
>>> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
>>> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
>>> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
>>> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
>>>
>>> --
>>> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
>>> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
>>> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
>>> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
>>
>> --
>> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
>> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
>> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
>> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
>
> --
> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> 이 그룹에 게시하려면 ks...@googlegroups.com(으) 로 이메일을 보내세요.
> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에 서 그룹을 방문하세요.
>

Kesarr

unread,
May 26, 2011, 12:56:00 AM5/26/11
to ks...@googlegroups.com
앗, 이런 고대자료를 어떻게 아시고...! ㅋㅋ

@WhyKesarr. MetaDeveloper.
"Keep the modifications due to a single change together in a predictable range."

2011. 5. 26. 오전 9:51 Sungchul Park <gyu...@gmail.com> 작성:

Reply all
Reply to author
Forward
0 new messages