Notice
Recent Posts
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
관리 메뉴

교대최소제곱법

[Spring] 이건 POJO 프로그래밍이 아닌가요? 본문

자바 & Spring

[Spring] 이건 POJO 프로그래밍이 아닌가요?

옐라크레 2024. 7. 23. 16:37

본격적으로 스프링을 공부하기 전에 스프링의 특징을 알아야 할 것 같았다

그래서 IoC/DI를 조사했더니 POJO로 의식의 흐름이 흘러들어갔고

자바 & Spring 첫 포스팅은 POJO로 준비했다


대표적인 POJO 프로그래밍의 예시

 

너무나 익숙한 게터 세터를 포함하는 User 클래스가 보인다

이렇게 다른 잡다한 것 없이 오직 자바로만 이루어져 있는 객체를 POJO라 하는데

 

여기서 궁금했던 것은 '그럼 어떤 것이 POJO가 아닌가?'였다

 

핵심은 미리 정의 되었단 것!

미리 정의 된 것을 사용하면 Plain한 JAVA가 아니게 되어버린다

 

상속은 OK

상속을 하는 것은 괜찮다

오히려 상속을 하지 않는다면 그건 코드의 재사용성이 떨어지기 때문에 자바스럽지 못하다고 한다

 

미리 정의된 것을 사용한다는 것은 외부 라이브러리, 인터페이스를 직접적으로 상속하면 안된다는 것

 

그럼 여기서 궁금한 점이 생긴다

미리 정의된 것을 사용할 수 없다면? 내가 다 만들어서 사용해야 합니까?

 

사용하지 말라는게 아니다

 

다시 정의를 하면 외부 라이브러리를 사용하지마라!는 것이 아니다

외부 라이브러리를 직접적으로 상속하지 마라!는 것이지

 

스프링 의존성 주입이라는 강력한 기능을 제공하고

이를 활용하면 스프링에서도 외부 라이브러리를 유용하게 사용할 수 있다!

 

의존성 주입은 다음 포스팅에서 자세히 다루겠지만

일단 대표적인 예시를 가져왔다

 

왼쪽 같은 경우 MessageListener 인터페이스를 직접적으로 상속하는 반면

오른쪽은 스프링의 어노테이션을 활용해 의존성 주입하는 방식을 사용한다

 

의존성 주입의 장점은 여러가지가 있지만

일단은 스프링에서는 왼쪽보다는 오른쪽 같은 코드를 권장한다는 것만 알아두자