diff --git "a/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/IoCContainer.java" "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/IoCContainer.java" new file mode 100644 index 0000000..253d8a9 --- /dev/null +++ "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/IoCContainer.java" @@ -0,0 +1,14 @@ +package com.javabom.toby.chapter1.term.제어의_역전; + +public class IoCContainer { + + /** + * IoC: 제어의 역전 + * UserService의 UserRepository 구현체에 대한 생성의 책임을 IoCContainer에 위임한다. + * + * @return + */ + public UserService javabomUserService() { + return new UserService(new JavabomUserRepository()); + } +} diff --git "a/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/JavabomUserRepository.java" "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/JavabomUserRepository.java" new file mode 100644 index 0000000..26c669c --- /dev/null +++ "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/JavabomUserRepository.java" @@ -0,0 +1,4 @@ +package com.javabom.toby.chapter1.term.제어의_역전; + +public class JavabomUserRepository implements UserRepository { +} diff --git "a/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/UserRepository.java" "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/UserRepository.java" new file mode 100644 index 0000000..dd1bb44 --- /dev/null +++ "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/UserRepository.java" @@ -0,0 +1,4 @@ +package com.javabom.toby.chapter1.term.제어의_역전; + +public interface UserRepository { +} diff --git "a/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/UserService.java" "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/UserService.java" new file mode 100644 index 0000000..4ada13e --- /dev/null +++ "b/spring-toby/java-project/src/main/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/UserService.java" @@ -0,0 +1,9 @@ +package com.javabom.toby.chapter1.term.제어의_역전; + +public class UserService { + private final UserRepository userRepository; + + public UserService(UserRepository userRepository) { + this.userRepository = userRepository; + } +} diff --git "a/spring-toby/java-project/src/test/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/IoCContainerTest.java" "b/spring-toby/java-project/src/test/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/IoCContainerTest.java" new file mode 100644 index 0000000..7fba16a --- /dev/null +++ "b/spring-toby/java-project/src/test/java/com/javabom/toby/chapter1/term/\354\240\234\354\226\264\354\235\230_\354\227\255\354\240\204/IoCContainerTest.java" @@ -0,0 +1,16 @@ +package com.javabom.toby.chapter1.term.제어의_역전; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +class IoCContainerTest { + + @DisplayName("클라이언트는 IoCContainer를 통해 UserService를 얻는다") + @Test + void ioc() { + IoCContainer container = new IoCContainer(); + UserService userService = container.javabomUserService(); + } + + +} \ No newline at end of file