Java Spring boot 마스터하기 (1) - Spring Framework 시작하기

최준호·2024년 8월 27일
0

이건 경주가 아닙니다. 천천히 하세요!

spring과 spring boot 학습은 재밌게 하세요!

인터페이스의 사용 (느슨한 결합)

  • 인터페이스를 사용에 대해 잘 모르는 상태에서 간단한 예제로 설명을 할 수 있게되었다.
    인터페이스는 다른 걸 대체하거나 미리 틀을 짜놓은 상태에서 다른걸 바로 바꿔줄 수 있게 만들어주는 겁니다.

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

마리오게임

슈퍼컨트라 게임

게임 실행 엔진

자바 실행

  • 이처럼 게임이라는 객체를 계속해서 바꿔서 끼워넣어줄 수 있는 방식으로 만들어주어서 다른 게임을 실행하는데에 코드를 바꾸는데에 줄일 수 있다.

  • 이것만 잘 활용하면 코드의 효율성을 극대화할 수 있다.

  • 위 그림처럼 GameRunner는 인터페이스를 거치고 다른 게임을 실행할 수 있게 구조를 만들어준겁니다.


spring Container?

  • Spring Container는 Spring Bean과 수명 주기를 관리합니다

  • POJOs : 실행한 자바 클래스를 의미하고

  • Config : Configuration 한 자바 클래스를 의미합니다

  • Ready System :

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

예시

  • configuration 클래스

  • POJOs 의미하는 Bean 실행 클래스

  • Console 값

  • Bean를 직접 Spring 에서 관리할 수 있도록 생성하고 생성자의 값을 직접 출력하는 간단한 방식입니다.

  • array stream 으로 모든 bean의 정의값을 출력하는 것도 해봤습니다.

  • 이를 통해 Bean에 대한 정의를 알 수 있었습니다.

  • 제 생각에는 개발자가 직접 관리하는 것이 아닌, Spring 자체 내에서 호출하거나 관리하는 방식으로 생각하면 될 것 같습니다.

Component로 대체하기

  • PacmanGame 클래스내에 Gamerunner를 implemets하여 메소드를 재 정의 해준 상태를 @Componet 해줍니다.

  • Gamerunner를 클래스 자체를 @Componet 해줍니다.

  • 마지막으로 ComponentScan으로 패캐지 내에 Component를 찾아주고
    정의된 GameRunner 출력해주면

  • 위와 같이 제가 값을 따로 지정하지 않아도 PacmanGame이 RameRunner로 정의되어 값이 나오는 것을 확인할 수 있습니다.

  • 이로써 Spring으로 객체를 관리할 수 있는 방법을 알 수 있었습니다.

  • Class 내 전체를 객체화하여 각 Component로 관리하여 값을 부여하지 않아도 자동으로 값이 부여되어 출력되는 것을 확인할 수 있습니다.

profile
변화를 두려워하는 사람이 가장 불행한 사람이다.

0개의 댓글