목적: Spring Framework의 이해
오역(誤訳): 방석구, 총 10페이지
Spring Frameworkで理解するDI(1)
Spring Framework로 이해하는 DI(1)
DI:依存性の注入とは何か?
DI: 의존성 주입Dependency Injection이란 무엇인가?
クロノス
크로노스(Kronos)
야마모토 다이(山本大)
2005/4/29
Javaのエンジニアであれば最近、「Dependency Injection」や「DIコンテナ」「Spring」、または「Seaser2」といった名前を目にしたことがあるのではないでしょうか。これらは次世代のEJB(EJB 3.0)に取り込まれる動きがあるなど、最近非常に注目されているキーワードであり、今後のJava開発を語るうえで避けては通れない概念の1つになるとされています。
Java 엔지니어engineer라면 최근, 「Dependency Injection」나 「DI컨테이너container」「Spring」, 또는「Seaser2」라는 이름을 들어 본적이 있을 겁니다. 이것들은 차세대 EJB(EJB 3.0)에 포함될 조짐을 보이는 등, 최근 매우 주목 받고 있는 키워드이며, 향후 Java 개발을 거론하는데 있어서 피할 수 없는 개념의 하나가 되고 있습니다.
この連載は、「Spring」というフレームワークを利用して、J2EE開発における「Dependency Injection(DI)」というデザインパターンから得られるメリットを紹介し、J2EEの今後の方向性を理解する助けとしていただくことを目的としています。
이 연재는 「Spring」이라는 framework를 이용해서, J2EE 개발에 있어서의 「Dependency Injection(DI)」라는 design pattern부터 얻게 되는 메리트를 소개하고, 향후 J2EE의 방향성을 이해하는데 조력하는 것을 목적으로 합니다.
Dependency Injection:의존성 주입이란?
「Dependency Injection(DI)」を直訳すると「依存性の注入」となります。まずは「DIとは何か」というところから理解するために、この言葉を詳しく説明していきます。
「Dependency Injection(DI)」를 직역하면 「의존성依存性 주입注入」이 됩니다. 우선은 「DI는 무엇인가?」를 이해하기 위해서, 이 단어를 자세히 설명해 나가겠습니다.
DIという言葉のうち「Dependency(依存性)」という単語は、「オブジェクトが成立するために必要な要件」という意味を持っています。この要件とは、オブジェクトの持つ属性や関連するオブジェクトなどです。例えば以下のパソコンを例に挙げたクラス図では「モニター」クラスや「OS」フィールドが「パソコン」クラスの「依存性」となります。
(1) DI라는 말 중 「Dependency(의존성)」라는 단어는, 「오브젝트가 성립하기 위해 필요한 요건」이라는 의미를 가지고 있습니다. 이 요건이라는 것은, 오브젝트가 가진 속성이나 관련된 오브젝트 등을 가리킵니다. 예를 들어, 아래의 컴퓨터를 예로든 클래스 도에서는 「모니터」클래스나 「OS」필드가 「컴퓨터」 클래스에 「의존依存」하고 있습니다.
주(註): 즉, OS는 컴퓨터의 속성이며, 모니터는 컴퓨터에 관련된 오브젝트입니다.
次の単語である「注入(Injection)」とは「外部からの設定(Configuration)」を意味しています。 設定ファイルやWebアプリケーションのデプロイメントディスクリプタ(web.xmlなど)での設定を「注入」と呼んでいるのです。
다음 단어인 (2) 「Injection주입」라는 것은 「외부로부터의 설정Configuration」을 의미합니다. 설정 파일이나 Web 어플리케이션인 deployment descriptor(web.xml 등)에서의 설정을 「주입注入」이라고 부르는 것입니다.
これらのことから「DI」という言葉を言い表すと「オブジェクトの成立要件に必要な情報を外部設定すること」となります。情報を外部に切り出すことで、たとえオブジェクトを利用する状況が変わったとしても、設定を変更するだけでそのオブジェクトを利用することができるようになります。つまり再利用性の高い「部品」としてオブジェクトを実装しやすくなるのです。このような再利用性の高いソフトウェア部品のことを「コンポーネント」と呼びます。
이러한 것을 토대로 「DI」라는 단어를 말로 표현하면 「오브젝트의 성립요건에 필요한 정보를 외부에서 설정하는 것」이 됩니다. 정보를 외부에서 꺼내오기 때문에, 가령 오브젝트를 이용하는 상황이 바뀌었다고 해도, 설정을 변경하는 것만으로 그 오브젝트를 이용할 수 있게 됩니다.
DIでは、「設定を利用から分離する(the principle of separating configuration from use)」という考え方をコンポーネント設計のための1つの原則としています。コンポーネントの集合としてプログラムを設計することは「再利用」というメリットだけではなくソフトウェア開発に対してさまざまな恩恵を与えます。
DI에서는, 「설정을 사용으로부터 분리한다(the principle of separating configuration from use)」라는 사고를 컴포넌트component 설계를 위한 하나의 원칙으로 삼고 있습니다. 컴포넌트component의 집합으로서 프로그램을 설계하는 것은 「재사용(再利用)」이라는 메리트 뿐만 아니라 소프트웨어 개발에 대한 갖가지 혜택을 줍니다.
しかし、いまは細かい説明を後回しにしてSpring Frameworkを使った「設定と利用の分離」を実現する簡単なサンプルを作ってみましょう。
그러나, 지금은 상세한 설명은 뒤로 돌리고 Spring Framework를 사용한 「설정과 사용의 분리」를 구현한 간단한 샘플을 만들어봅시다.
「ポイント」
「포인트」
DIとは、オブジェクトが成立するための情報を外部設定に分離することで、 コンポーネントの集合としてアプリケーションを組み立てるデザインパターンである。
DI라는 것은, 오브젝트가 성립하기 위한 정보를 외부 설정으로 분리하는 것으로, 컴포넌트component의 집합으로서 어플리케이션을 구성하는 design pattern이다.
INDEX | |
---|---|
제1회 Spring Framework로 이해하는 DI | |
* | Page1 Dependency Injection:의존성依存性 주입注入이란? |
Page2 Spring Framework을 사용한 샘플 |
|
Page3 컴포넌트component 지향 프로그래밍programming의 촉진 |
Spring Framework로 이해하는 DI Back number
제1회 DI: 의존성 주입Dependency Injection이란 무엇인가?
제2회 Spring Framework의 설계 사상과 AOP
제3회 Spring AOP 샘플 어플리케이션으로 이해하는 AOP
최종회 왜 DI 컨테이너container를 사용해야 하는가
원문 출처
@IT Java Solution