이건 경주가 아닙니다. 천천히 하세요!
spring과 spring boot 학습은 재밌게 하세요!
인터페이스의 사용 (느슨한 결합)

위와 같은 예시로 인터페이스를 생성해줍니다.
마리오게임

슈퍼컨트라 게임

게임 실행 엔진

자바 실행

이처럼 게임이라는 객체를 계속해서 바꿔서 끼워넣어줄 수 있는 방식으로 만들어주어서 다른 게임을 실행하는데에 코드를 바꾸는데에 줄일 수 있다.
이것만 잘 활용하면 코드의 효율성을 극대화할 수 있다.


POJOs : 실행한 자바 클래스를 의미하고
Config : Configuration 한 자바 클래스를 의미합니다
Ready System :

위의 그림처럼 JVM를 실행하고 Spring 내 Bean들을 관리하는 것을 의미합니다.
예시



Bean를 직접 Spring 에서 관리할 수 있도록 생성하고 생성자의 값을 직접 출력하는 간단한 방식입니다.
array stream 으로 모든 bean의 정의값을 출력하는 것도 해봤습니다.
이를 통해 Bean에 대한 정의를 알 수 있었습니다.
제 생각에는 개발자가 직접 관리하는 것이 아닌, Spring 자체 내에서 호출하거나 관리하는 방식으로 생각하면 될 것 같습니다.
Component로 대체하기




위와 같이 제가 값을 따로 지정하지 않아도 PacmanGame이 RameRunner로 정의되어 값이 나오는 것을 확인할 수 있습니다.
이로써 Spring으로 객체를 관리할 수 있는 방법을 알 수 있었습니다.
Class 내 전체를 객체화하여 각 Component로 관리하여 값을 부여하지 않아도 자동으로 값이 부여되어 출력되는 것을 확인할 수 있습니다.