Dependency Injection을 우리말로 뭐라고 하면 좋을까요?

328 views
Skip to first unread message

박성철

unread,
Jun 7, 2009, 10:38:41 AM6/7/09
to Korea Spring User Group
의존성 주입이라는 표현이 약간 애매하다고 생각되지만 워낙 넓게 사용되고 있어 특별히 건드리지 않으려고 했는데 Spring in
Action 2판 한글판에서 엔트웍스 전지훈님이 종속 객체 주입이라고 번역하셨더라고요. 책 공짜로 받아 놓고 뒤쪽만 봤...-
_-);;

그래서 한번 얘기라도 나눠보면 어떨까 합니다.

injection을 주입으로 한 것은 만족하고요.
dependency를 무엇으로 하면 좋을지...

사전을 검색하니

dependency [dipéndənsi]

1 명사
* (불가산) 의존 (상태)
* 종속물; 부속 건물, 별관
* 속국, 보호령
* 식솔이 딸림
* 의존증, 중독(증)

이렇게 나오네요.

종속 객체 주입이라는 표현은 구체적이기는 하지만 살짝 멋이 없다는 생각도 들고 과연 객체로 한정(?)하는 것이 좋을지도 모르겠습
니다. 무엇보다 종속이라는 표현이 걸리는데 실 세계에서는 주된 것에 부속된 것이 종속하지만 객체지향 세상에서는 주된 것이 부속
된 것에 종속되는 듯 합니다. 그런 뜻에서 종속 객체라고 할 때 어지러움증이 살짝 생기더군요.

대신 생각해본 것은..

의존 관계 주입
부속물 주입

아마도 관련 논의가 이전에도 있었을 법 한데... 어디서 본 것 같기도 하고... 그런데 못 찾겠네요. ^^

안영회

unread,
Jun 7, 2009, 11:36:07 AM6/7/09
to ks...@googlegroups.com

의존 관계 주입
부속물 주입

'부속물 주입'은 어감이 괜챃군요.
반면 '의존 관계 주입'은 '의존 객체 주입'보다 나쁜 선택이라 생각합니다.

'관계'라는 대상 입장에서 보면 DI가 관계를 주입한다는 표현은

Toby Lee

unread,
Jun 7, 2009, 6:28:17 PM6/7/09
to ks...@googlegroups.com
UML 한글용어를 보면 dependency를 종속이라고 많이 쓰더군요.
좋은 번역용어라고 보이지 않습니다. 스프링이 UML도 아니고..



2009/6/8 안영회 <ahnyo...@gmail.com>

Toby Lee

unread,
Jun 7, 2009, 6:43:15 PM6/7/09
to ks...@googlegroups.com
Injection은 액체류나 약품, 추상적인 내용을 넣는다고 할 때 사용하지, 어떤 셀 수 있는 물체를
집어넣는데 사용하는 용어가 아닙니다. 그런면에서 객체가 주입되었다는 말은 언어적으로 바른 표현이 아니죠. 부속물도 마찬가지 입니다.
게다가 자바에서는 객체가 어디 직접 들어가지는 것도 아니죠. 단지 레퍼런스만 넘겨지는 거죠. 객체를 짜서 그 일부를 찔끔찔끔 넣어줄게 아니라면 객체 주입이란 표현은 분명 이상합니다. 왜 더 개념이 분명한 dependent object injection이 아니라, 추상적인 표현인 dependency injection아리고 썼는지는 생각해 볼 필요가 있습니다. 

의존성 주입이 그나마 원 단어와 용어의 개념에 충실한 무난한 번역이라고 보입니다.
다만 개념을 좀 더 명확하게 하기 위해서 의도된 다른 번역용어를 창의적으로 만들 수는 있다고 봅니다.

2009/6/8 Toby Lee <toby...@gmail.com>

superman

unread,
Jun 7, 2009, 7:37:08 PM6/7/09
to Korea Spring User Group
DI를 사용하는 입장에서..
DI는 대부분..
컴포넌트 ( 함께 동작하는 Package )들을 역어주는 역활을 하는것 아닐까요.?

그렇다면. 어떤 init 과정.. 즉 어떤 setup 과정이라고 보아도 되는것 아닐까요.?
그런 입장에서 접근하면 부속물 주입 or 부속물 준비 or 관련객체 연결 or 관련 instance 연결
뭐 이정도라고 생각이 들기도 하지만,

이건 너무 application 사용하는 입장에서만 본것 같아서..
처음 설계자의 의도를 회손할수도 있는 용어라는 생각이 들기도 합니다.
다른 분들의 의견도 듣고싶군요...

PS.
계속 올라오는글 보고만 있다가..
제 생각을 올리고 깨어져야 변화가 있을것 같아서요.. ^^

On 6월8일, 오전7시43분, Toby Lee <tobyi...@gmail.com> wrote:
> Injection은 액체류나 약품, 추상적인 내용을 넣는다고 할 때 사용하지, 어떤 셀 수 있는 물체를집어넣는데 사용하는 용어가


> 아닙니다. 그런면에서 객체가 주입되었다는 말은 언어적으로 바른 표현이 아니죠. 부속물도 마찬가지 입니다.
> 게다가 자바에서는 객체가 어디 직접 들어가지는 것도 아니죠. 단지 레퍼런스만 넘겨지는 거죠. 객체를 짜서 그 일부를 찔끔찔끔 넣어줄게
> 아니라면 객체 주입이란 표현은 분명 이상합니다. 왜 더 개념이 분명한 dependent object injection이 아니라, 추상적인
> 표현인 dependency injection아리고 썼는지는 생각해 볼 필요가 있습니다.
>
> 의존성 주입이 그나마 원 단어와 용어의 개념에 충실한 무난한 번역이라고 보입니다.
> 다만 개념을 좀 더 명확하게 하기 위해서 의도된 다른 번역용어를 창의적으로 만들 수는 있다고 봅니다.
>

> 2009/6/8 Toby Lee <tobyi...@gmail.com>
>
>
>
> > UML 한글용어를 보면 dependency를 종속이라고 많이 쓰더군요.좋은 번역용어라고 보이지 않습니다. 스프링이 UML도 아니고..
>
> > 2009/6/8 안영회 <ahnyoung...@gmail.com>

Gir Won Lee

unread,
Jun 7, 2009, 8:20:58 PM6/7/09
to ks...@googlegroups.com
Injection을 주입대신 삽입이라는 단어를 사용하면
이상해질려나요???
 
 
 
----
 
사족으로..
 
생명공학(제 전공입니다)쪽에서는 이런 단어가 있으면
아예 둘로 나눠져 버립니다.
 
이유는 실생활에서 대화를 위한 것과 출판및 특허를 위해서 입니다.
 
생명공학 분야에서 국내 특허의 경우 모든 용어들이 한글화가 필수적이라서
평소에는 영어로 그냥 사용하다가 출판 및 특허에 관련된 작업을 할 경우에만
이런 문제를 고민하게 되죠..(특허및 출판작업이 끝나면 원래상태로~ ^^;;)
근데 고민을 하긴 하는데..
 
영단어를 각각 사전적 의미중 그나마 뜻을 가장 표현 할 수 있는 단어들을 선택해서
말 그대로 조립을 합니다.
-한글화 작업을 끝내고 보면 기가 찬 단어들도 많이 나온답니다..
 


 
2009년 6월 8일 (월) 오전 8:37, superman <sup...@gmail.com>님의 말:
--
In the midst of the street of it, and on either side of the river, was there the tree of life,
which bare twelve manner of fruits, and yielded her fruit every month: and the leaves of the tree were for the healing of the nations.


Gir won Lee

Dept. of Bioinformatics, Bioneer Corporation
URL: http://www.bioneer.co.kr
http://www.thegreatgoodplace.com
E-mail: leegw700@{bioneer.co.kr|ssu.ac.kr|gmail.com}
Tel: 82-42-930-8755
Phone: 82-10-3323-0868

Toby Lee

unread,
Jun 7, 2009, 8:27:56 PM6/7/09
to ks...@googlegroups.com
injection은 삽입으로도 번역 가능한 단어입니다.
앞에 오는 단어와의 어울림이 중요하겠죠.

2009/6/8 Gir Won Lee <leeg...@gmail.com>

강명성

unread,
Jun 7, 2009, 8:31:49 PM6/7/09
to ks...@googlegroups.com
의존관계는 어떨까요~
 
삽입이란 의미도 좋은 의미네요.

2009년 6월 8일 (월) 오전 9:27, Toby Lee <toby...@gmail.com>님의 말:


--
매일 행복한 시간 되시길 바랍니다...^^

안영회

unread,
Jun 7, 2009, 9:02:54 PM6/7/09
to ks...@googlegroups.com
다음은 without EJB에 나오는 내용입니다.

Dependency Injection: Components do no look up; they provide plain Java methods enabling
the container to resolve dependencies. The container is wholly responsible for wiring up components,
passing resolved objects in to JavaBean properties or constructors. Use of JavaBean
properties is called Setter Injection; use of constructor arguments is called Constructor Injection.

컨테이너가 참조 객체를 찾아주고(resolve dependencies), 컴포넌트를 엮어주고(wiring up components), JavaBeans 프로퍼티나 생성자를 통해서 찾아낸 객체에 대한 참조를 전해주는 일을 통칭하죠.

대략 풀어놓고 보면 의존성 주입이나 의존 객체 주입 모두 적절하네요.

일장일단이 있다 생각합니다.
의존성이란 표현이 결국은 객체를 표현할테니까요.
의존객체라 써서 보다 의미를 분명히 할 수 있습니다.

반면, dependency가 꼭 객체는 아니라 할 수 있습니다.
가령 primitive data를 넣어줄 수도 있죠.

둘 다 대단한 이점은 아니라 선뜻 우열을 가리기 힘듭니다.
의미상으론 IoC 전략을 일환이기 때문에 "주입을 통한 IoC"가 마음에 들지만 원어와 괴리감이 크네요.

한편, dic.naver를 보니 injection에 대한 우리말로는 삽입보다 주입이 좋을 듯 합니다.

주입 [注入]

<교육>기억과 암기를 주로 하여 지식을 넣어 줌.



Gir Won Lee

unread,
Jun 7, 2009, 9:14:20 PM6/7/09
to ks...@googlegroups.com
 
--
컨테이너가 참조 객체를 찾아주고(resolve dependencies), 컴포넌트를 엮어주고(wiring up components), JavaBeans 프로퍼티나 생성자를 통해서 찾아낸 객체에 대한 참조를 전해주는 일을 통칭하죠.
--
 
DI라는 단어에 대해서 얽매이지 않는다면
의존성 참조라는 말은 어떠한가요??


 
2009년 6월 8일 (월) 오전 10:02, 안영회 <ahnyo...@gmail.com>님의 말:

윤희한

unread,
Jun 7, 2009, 9:25:16 PM6/7/09
to ks...@googlegroups.com
음냐.. 제가 생각이 부족한건지...

저는 첨에 의존성 주입이라는 단어를 듣고 그냥 받아들여 버려서........

번역하시는 분들이 괜히 의존성 주입이라는 말을 쓰셧을까 하는 생각을하며

그냥그냥 받아들이다보니 ㅎ

이제부터 그런것들도 한번쯤 생각을 해봐야 할듯하네요..

언제나 즐거운 생각거리를 주셔서 감사합니다.

유저그룹 여러분 ^^

안영회

unread,
Jun 7, 2009, 9:29:11 PM6/7/09
to ks...@googlegroups.com


DI라는 단어에 대해서 얽매이지 않는다면
의존성 참조라는 말은 어떠한가요??

의존성 참조요?
DI는 IoC 전략의 일환입니다.
'참조'라 보긴 어렵고, '참조하는 객체를 찾고, 해당 객체에 대한 참조 값을 복사해주는 방법'이죠

Sanghyuk Jung

unread,
Jun 7, 2009, 9:29:31 PM6/7/09
to ks...@googlegroups.com
참 번역이라는게 어려운것 같아요; 우리말 실력도 있어야하고;
 
그럼에도 비판이 올 것을 감수하시면서도 번역을 시도하시는 분들이 정말 대단하고 존경스럽습니다.

2009년 6월 8일 (월) 오전 10:25, 윤희한 <ryys...@gmail.com>님의 말:

Toby Lee

unread,
Jun 7, 2009, 9:31:51 PM6/7/09
to ks...@googlegroups.com
이 인용문장에서 resolve dependencies 는 객체를 찾는 다는 말이 아닙니다. 뒤의 문장들에 나오는 모든 작업을 통틀어서 하는 말입니다. 


2009/6/8 안영회 <ahnyo...@gmail.com>

Toby Lee

unread,
Jun 7, 2009, 9:35:08 PM6/7/09
to ks...@googlegroups.com
사실 지금까지 나온 어떤 용어를 써도 별 문제는 없다고 봅니다.
결국 많이 쓰이는게 남는 거죠.


2009/6/8 Toby Lee <toby...@gmail.com>

박성철

unread,
Jun 7, 2009, 9:37:54 PM6/7/09
to Korea Spring User Group
와우. 이거 좋은 의견을 많이 달라주셨네요.
일단 중간에 한번 정리해보겠습니다.

DENPENDENCY

1. 의존성 :
* 우리말로 어색하다.
* 원 뜻을 무리 없이 표현한다.
* 이미 많이 쓰인다.

2. 부속물
* 어감이 좋다.
* Injection이 추상적인 것과 같이 쓰이는 단어이므로 어울리지 않는다.
* 설계 의도를 훼손

3. 의존 관계
* 관계를 주입한다는 건 좀...
* 좋은 것 같다.

INJECTION

1. 주입
* 부정적인 의견 없음.

2. 삽입
* Injection을 삽입으로 해석해도 무리 없다.
* 좋은 의견이다.


제 생각에 dependency가 무엇을 뜻하는 지 파악하는 것이 좋을 것 같습니다.
보통 y로 끝나면 어떤 '성질'이나 '특성' 또는 그 특성을 띄는 것을 의미하는데요.

크게 두가지로 생각해볼 수 있을 것 같습니다.

우선은 injection을 받는 빈에 어떤 의존하는 특성을 부여한다는 의미로 볼 수 있습니다. 예를 들어 A 객체가 B 객체에
종속되어 B 객체의 레퍼런스를 setting 하는 상황을 볼 때 'A에 부여되는 특성'을 지칭하는 것이죠.

두번째는 injection 되는 어떤 것을 가리키는 용어로 dependency가 될 수 있습니다. 이 경우는 A에 setting
되는 B의 레퍼런스를 의미합니다.

두번째도 의미도 두 가지로 나뉘는데요. injection 되는 것이 개념적인 수준의 것이냐 (의존성, 의존 관계) 아니면 구체적
인 것이냐 (예를 들면 부속물, 객체) ...


저는 어떤 특질을 부여한다는 것이 맞다면 "의존 특성 주입" 정도가 좋을 것 같고 후자의 개념적인 수준의 표현이라면 "의존 관
계 주입"이 좋을 것 같습니다. 물론 강한 주장이 아니라 그렇게 선호한다는 의미에서... ^^

그리고 Injection을 삽입으로도 볼 수 있다는 의견도 나왔는데 삽입의 우리말 이미지랑은 잘 안 맞는 것 같습니다. 개인적으
로 삽입은 AOP의 Introduction의 우리말 표현에 어울리지 않나 싶네요. 어떤 객체(target)의 결합 가능한 지점
(joinpoint)들 중 특정 지점을 잘라서 (pointcut) 멤버 변수나 메서드를 슬그머니 집어 넣는
(introduction) 것이니 말이죠.

sungchul park

unread,
Jun 7, 2009, 9:39:37 PM6/7/09
to Korea Spring User Group
어머나 글 쓰는 사이에 또 주르륵... 정리가 의미 없어졌...;;;

2009년 6월 8일 (월) 오전 10:37, 박성철 <gyu...@gmail.com>님의 말:

Toby Lee

unread,
Jun 7, 2009, 9:43:27 PM6/7/09
to ks...@googlegroups.com
(joinpoint)들 중 특정 지점을 잘라서 (pointcut) 멤버 변수나 메서드를 슬그머니 집어 넣는
(introduction) 것이니 
Introduction에는 join point, pointcut이라는 개념이 없습니다. 그건 weaving이죠.

2009/6/8 박성철 <gyu...@gmail.com>

Gir Won Lee

unread,
Jun 7, 2009, 9:43:46 PM6/7/09
to ks...@googlegroups.com
ㅎㅎㅎㅎ
일단 많이 사용하고, 사용하고 있는 것이 최고,
 
혹 일본에서 활동하시는 분들의 의견이 궁금합니다.
 
우리나라보다 책 번역에 대해서는 일본이 많이 앞서 있다고 들었는데
혹 DI를 일어로 어떻게 번역하고 있는지 궁금해지네요.. ^^
 


 
2009년 6월 8일 (월) 오전 10:39, sungchul park <gyu...@gmail.com>님의 말:

안영회

unread,
Jun 7, 2009, 9:49:11 PM6/7/09
to ks...@googlegroups.com

저는 어떤 특질을 부여한다는 것이 맞다면 "의존 특성 주입" 정도가 좋을 것 같고 후자의 개념적인 수준의 표현이라면 "의존 관
계 주입"이 좋을 것 같습니다.


맥빠지게 하는 의견 같아 잠시 주저했지만... :)

의존 특성의존성에 비해 공간만 낭비할 뿐 의미 부여가 없다 생각합니다.
의존 관계 주입은 앞서 설명했지만, '관계'자체를 주입한다고 보기는 어려울 듯 합니다.

의존성 주입족송 객체 주입에 비해 둘 다 뚜렷한 이점은 없다고 생각합니다.

박성철

unread,
Jun 7, 2009, 9:56:43 PM6/7/09
to Korea Spring User Group
이런... 그렇네요. join point가 있을 필요가...;;;

Toby Lee

unread,
Jun 7, 2009, 10:02:36 PM6/7/09
to ks...@googlegroups.com
의존 관계 주입은 앞서 설명했지만, '관계'자체를 주입한다고 보기는 어려울 듯 합니다

그런식으로 보자면 관계는 맺어지는 것이고 객체는 (레퍼런스가) 전달되는 것이지 둘다 주입되는 것은 아닙니다. 

주입이라는 것은 일단 들어가서 일부분이 되거나 남아있다는 뉘앙스가 강합니다. 객체가 여기 저기에 clone되서 넘어가는 것도 아니고, 들어가 있는 다는 것도 이상하죠. 오히려 의존관계는 한번 설정되면 그 자체로 남아있죠. 다만 번역했을 경우 injection라는 말과 잘 안어울릴 뿐이죠. 그건 객체 주입도 마찬가지 입니다. 어디서도 객체를 주입한다는 표현을 들어본 적이 없습니다.

2009/6/8 안영회 <ahnyo...@gmail.com>

박성철

unread,
Jun 7, 2009, 10:13:28 PM6/7/09
to Korea Spring User Group
> 맥빠지게 하는 의견 같아 잠시 주저했지만... :)

별로 맥 빠지지 않습니다. ㅎㅎ
저도 나름 둘째가라 하면 서러워 할 냉혈한... -_-);

> *의존 특성*은 *의존성*에 비해 공간만 낭비할 뿐 의미 부여가 없다 생각합니다.

제가 분명히 하고 싶었던 것은 dependency가 객체 A의 새로 부여되는 특성을 의미하는지 아니면 A에 부여되는 외부의 어
떤 것을 의미하는지 였습니다. 레퍼런스나 위에 인용하신 글을 보면 후자라고 생각합니다.

그런데 우리말의 '의존성'이라는 단어가 뜻하는 것은 대충 이렇다네요.

1 다른 것에 의지하여 생활하거나 존재하는 성질.
* 과보호를 받고 자란 아이는 부모에 대한 의존성이 강하다.
2 [약학]금단 증상 때문에 계속하여 약물을 섭취하지 않으면 안 되는 상태.

결국 위에 구분에서 전자에 해당합니다.

"객체 A가 객체 B에 의존성이 있다"는 말은 성립되지만
"객체 B는 객체 A의 의존성이다"는 말은 잘못된 표현이라는 거죠.

말이란 계속 변화하는 것이니 새롭게 정의하고 사용한다면 문제가 없겠지만 Spring In Action 2nd 번역하면서 변화를
시도했다면 지금 다시 이슈화하는 것도 문제가 아닐 거라고 여겨져서 이렇게 화두를 던졌습니다.

그리고 제가 보기에 의존 관계 주입도 아까 일민님이 Injection과 같이 쓰는 것이 개념적인 것이라고 하신 것을 생각하면 말
이 되지 않나 싶어요. 정확히 표현한다면 의존 관계성 주입이 되는 거죠.

On 6월8일, 오전10시49분, 안영회 <ahnyoung...@gmail.com> wrote:
> > 저는 어떤 특질을 부여한다는 것이 맞다면 "의존 특성 주입" 정도가 좋을 것 같고 후자의 개념적인 수준의 표현이라면 "의존 관
> > 계 주입"이 좋을 것 같습니다.
>
> 맥빠지게 하는 의견 같아 잠시 주저했지만... :)
>

> *의존 특성*은 *의존성*에 비해 공간만 낭비할 뿐 의미 부여가 없다 생각합니다.


> 의존 관계 주입은 앞서 설명했지만, '관계'자체를 주입한다고 보기는 어려울 듯 합니다.
>

> *의존성 주입*과 *족송 객체 주입*에 비해 둘 다 뚜렷한 이점은 없다고 생각합니다.

Toby Lee

unread,
Jun 7, 2009, 10:16:17 PM6/7/09
to ks...@googlegroups.com
각자 입맛에 맞게 쓰죠. :)
그래서 책 혼자 쓰는게 편하군요.
공동 번역하는 분들은 쫌 피곤하겠어요.


2009/6/8 박성철 <gyu...@gmail.com>

박성철

unread,
Jun 7, 2009, 10:39:36 PM6/7/09
to Korea Spring User Group
이렇게 이런 저런 의견 말하고 듣는 것도 재미있잖아요. ㅎㅎ
사실 이러니 저러니 해도 DI는 그냥 의존성 주입으로 정리되겠죠. 워낙 많이 쓰는 용어고 마땅한 대안도 없으니...

정작 지금 곤란한 것은 AOP 쪽 아닐지요.

어찌 되었 건 월요일 아침에 워밍업 잘 했습니다.

괴로우셨다면 죄송... ^^

On 6월8일, 오전11시16분, Toby Lee <tobyi...@gmail.com> wrote:
> 각자 입맛에 맞게 쓰죠. :)그래서 책 혼자 쓰는게 편하군요.

Seok-Ho Yang

unread,
Jun 8, 2009, 4:14:31 AM6/8/09
to ks...@googlegroups.com
저도 급 궁금해져서 한번 찾아봤습니다.. ㅎ

"Spring 2.0 입문"이라는 책을 보니 그냥 DI라고 쓰고 있네요 (허덕~) ^^
일단 해석에는 "의존성의 주입"이라고 똑같이 쓰고 있구요.
평상시 용어로는 DI라고 부르는듯 합니다.

일본의 대표 DI Framework인 Seasar에서도 그냥 dependency injection이라고 하고 마네요.
그러고보니 번역하기 아리까리한 책제목은 그냥 영어로 쓰고 말기도 하구요...

2009/6/8 Gir Won Lee <leeg...@gmail.com>
ㅎㅎㅎㅎ

디키

unread,
Jun 8, 2009, 6:02:32 AM6/8/09
to Korea Spring User Group
토론이 거의 끝난 분위기 있는데;;
번역이 아닌 용어 창작이라면

'관계 정립' 도 좋은 말 같습니다.

관계 關係 명사
둘 이상의 사람, 사물, 현상 따위가 서로 관련을 맺거나 관련이 있음. 또는 그런 관련. ≒계관(係關) .

정립 定立 명사
전체에서 특정한 면이나 일정한 내용을 추출하여 고정하는 일.

마음에 걸리는 것은 영어를 한자로 변역한듯 해서;; 쿨럭

안영회

unread,
Jun 8, 2009, 7:34:17 PM6/8/09
to ks...@googlegroups.com


'관계 정립' 도 좋은 말 같습니다.

바람직한 시도네요. 하지만, "Injection"이 내포하는 내용 즉, 관계 정립(?)을 'Container가 한다'는 점이 드러나지 않습니다.
Reply all
Reply to author
Forward
0 new messages