본문 바로가기
Spring/Toby's Spring Reading Club

1-8. 스프링이란 무엇인가?

by Soono991 2023. 1. 15.

8장에서 비로소 스프링이란 무엇인가? 에 대해 설명합니다.

보통의 책들은 1장에서 바로 스프링의 개념에 대해 설명할 텐데, 오히려 토비 님은 책의 마지막에서야 비로소 스프링이 무엇인지 설명합니다.

 

이는 스프링이 무엇인지 말로 설명해 봤자 이해가 잘 되지 않을뿐더러, 직접 코드로 확인해 봐야 더 잘 이해가 될 것이라는 토비 님의 생각이 담겨 있었기 때문이고,

읽기 모임에서도 여러 번 언급하셨듯이 이를 통해서 토비 님은 스프링이 굉장히 특별한 기술이 아니라는 것을 말하고 싶었던 것 같습니다.

 

1권을 통해서 스프링 이전에 어떤 문제점들이 있었고, 스프링은 이를 어떻게 해결해 왔는가, 그리고 스프링은 앞으로 어떤 방향성을 가지고 발전해나 가는가에 대해 알 수 있어서 좋았습니다.

 

스프링의 특징

  • 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크

스프링의 정의를 한 문장으로 요약하면 위와 같이 요약할 수 있는데, 각 단어들의 의미를 잘 알아야 합니다.

 

 

애플리케이션 프레임워크

애플리케이션 프레임워크는 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 말합니다.

 

경량급

스프링이 경량급이라고 해서 스프링 자체가 가볍다거나 작은 규모의 코드로 이루어졌다는 뜻은 아닙니다.

여기서 말하는 경량급은 불필요하게 무겁지 않다는 의미입니다.

기존의 EJB가 동작하기 위해서는 당장 필요하지 않은 코드, 라이브러리들도 모두 가지고 있어야 했기 때문에 무겁고 복잡했습니다.

스프링은 필요한 기능들만 가지고 있기 때문에 불필요하게 무겁지 않다는 의미로 경량급이라는 단어를 사용합니다.

 

자바 엔터프라이즈 개발을 편하게

스프링은 근본적인 부분에서 엔터프라이즈 개발의 복잡함을 제거해내고 진정으로 개발을 편하게 해주는 해결책을 제시합니다.

하지만 이는 EJB에서도 지향했던 부분인데, EJB는 이 문제를 해결하는 과정에서 더 큰 복잡함을 가져왔기 때문에 이 문제를 해결할 수 없었습니다.

스프링은 EJB가 궁극적으로 이루고자 했던 이 목적을 제대로 실현하게 해주는 프레임워크이며,

자신이 작성하는 애플리케이션의 로직에 더 많은 관심과 시간을 쏟게 해 줍니다.

 

스프링의 문제 해결 방식

스프링은 DI를 통해서 비침투적인 방식을 통해 기존 EJB의 문제를 해결했습니다.

비침투적이란 기술의 적용 사실이 코드에 직접 반영되지 않는다는 특징이 있습니다.

 

또한 스프링은 기술에 대한 접근 방식의 일관성이 없고, 특정 환경에 종속적이라는 EJB의 문제를 추상화를 통해 해결하고 있습니다.

 

 

그래서 스프링을 사용하기 이전에 우리는 스프링의 개발철학과 목표를 이해하고 사용해야 합니다.

그렇지 않으면 스프링을 사용한다고 하더라도 제대로 사용한다고 말할 수는 없다고 생각합니다.

 

 

'Spring > Toby's Spring Reading Club' 카테고리의 다른 글

1-7. 스프링 핵심 기술의 응용  (0) 2023.01.15
1-6. AOP (2)  (0) 2023.01.10
1-6. AOP (1)  (0) 2023.01.09
1-5장. 서비스 추상화  (0) 2023.01.08
1-4장. 예외  (0) 2023.01.08

댓글