Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)

18,629 views

Published on

주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)

Published in: Software
  • Be the first to comment

주니어 개발자도 이해 할 수 있는 의존성 주입(Dependency Injection)

  1. 1. 주니어 개발자도 이해 할 수 있는 의존성 주입 (Dependency Injection) 2014. 11 Darion Kim
  2. 2. 나는 누구? Darion Kim (김헌기) 디에스멘토링 연구소 수석 보 자칭 통신(통합의 신, God of Integration) hnki0104@me.com https://www.facebook.com/ groups/serverside (율이아빠)
  3. 3. 이 문서를 모든 Freshman에게 바칩니다. (for YMS, JHJ)
  4. 4. 아름다운 JVM 세상을 못 보셨으면 여기까지만 … http://www.slideshare.net/hnki0104/bueatiful-jvm-world
  5. 5. Java Spring Framework 기준 으로 설명하겠습니다. 원치않으시면 여기까지만…
  6. 6. 약속드립니다. 절대 어렵게 얘기하 지 않겠습니다.
  7. 7. 그럼 의존성 주입 (Dependency Injection)에 대하여 시작하겠습니다.
  8. 8. 일반적으로 우리는 객체를 이렇게 해서 생성합니다.
  9. 9. 사람 객체 만들기 머리A, 몸통, 팔, 다리 클래스 정의 사람 클래스 정의 사람 클래스 각각의 필드에 머리A, 몸통, 팔, 다리 클래스 합성 사람 클래스 안에서 머리A, 몸통, 팔, 다리 클 래스의 객체를 생성하고 각각의 필드에 설정
  10. 10. 그림으로 설명하면? 사람 클래스 머리 몸통 팔[] 다리[] 머리A 클래스 몸통 클래스 팔 클래스 다리 클래스
  11. 11. 사람 객체 생성 사람 클래스 머리 몸통 팔[] 다리[] 머리A 클래스 몸통 클래스 팔 클래스 다리 클래스 몸통 객체 사람 객체 머리 몸통 팔[] 다리[] 머리A 객체 팔-1 객체 팔-2 객체 다리-1 객체 다리-2 객체
  12. 12. 왜 머리만 머리A클래 스로 명명했을까요?
  13. 13. 쉽게 이해하시라고 했습니다.
  14. 14. 클래스 합성은 언제 든지 변경될 수 있습 니다.
  15. 15. 사람 객체 수정하기 사람 클래스의 머리 필드를 머리A 클 래스에서 머리B 클래스로 변경 사람 클래스를 수정해야 함 사람 클래스 합성에 영향 발생
  16. 16. 사람A 객체 생성 사람 클래스 머리 몸통 팔[] 다리[] 머리A 클래스 몸통 클래스 팔 클래스 다리 클래스 몸통 객체 사람 객체 머리 몸통 팔[] 다리[] 머리A 객체 팔-1 객체 팔-2 객체 다리-1 객체 다리-2 객체 머리B 클래스 머리B 객체
  17. 17. 의존성 주입으로 다 시 설명하겠습니다.
  18. 18. 사람 객체 만들기 머리A, 몸통, 팔, 다리 클래스 정의 사람 클래스 정의 사람 클래스의 각각의 필드와 머리A, 몸통, 팔, 다리 클래스의 의존성을 정의한 Bean Context 작성 Bean Context 정보 기준으로 객체를 생성하고 의존성 주입
  19. 19. 그림으로 설명하면? 사람 클래스 머리 몸통 팔[] 다리[] 머리A 클래스 몸통 클래스 팔 클래스 다리 클래스 Bean Context <bean id= 머리, class=머리A 클래스/> <bean id=몸통, class=몸통 클래스/> <bean id=팔, class=[팔 클래스/> <bean id=다리, class=[다리 클래스/> <bean id=사람, class=사람 클래스> <property name=머리 value=머리> <property name=몸통 value=몸통> <property name=팔 value=팔> <property name=다리 value=다리> </bean>
  20. 20. 사람 객체 생성 사람 클래스 머리 몸통 팔[] 다리[] 머리A 클래스 몸통 클래스 팔 클래스 다리 클래스 몸통 객체 사람 객체 머리A 몸통 팔[] 다리[] 머리A 객체 팔-1 객체 팔-2 객체 다리-1 객체 다리-2 객체 Bean Context
  21. 21. 사람 객체 수정하기 사람 클래스 머리 필드를 머리A 클래 스에서 머리B 클래스로 변경 Bean Context를 <bean id=머리 class=머 리B클래스>로 수정 사람 클래스에는 영향이 없음
  22. 22. 그림으로 설명하면? 사람 클래스 머리 몸통 팔[] 다리[] 머리A 클래스 머리B 클래스 팔 클래스 다리 클래스 Context <bean id= 머리, class=머리B 클래스/> <bean id=몸통, class=몸통 클래스/> <bean id=팔, class=[팔 클래스/> <bean id=다리, class=[다리 클래스/> <bean id=사람, class=사람 클래스> <property name=머리 value=머리> <property name=몸통 value=몸통> <property name=팔 value=팔> <property name=다리 value=다리> </bean> 몸통 클래스
  23. 23. 이렇게 생각하시면 됩니다.
  24. 24. 조소 만들어보셨습니까?
  25. 25. 바로 찰흙부터 붙일 수는 없습니다.
  26. 26. 일에는 순서가 있습니다. 의존성 설계 의존성 설정 의존성 주입
  27. 27. 뼈대만 잘 만들면 언제든 다른 색깔의 찰흙으로 바 꿔 붙일수 있습니다.
  28. 28. Black or White
  29. 29. 이상 율이아빠였습니다.

×