상세 컨텐츠

본문 제목

[Spring] 그래서 스프링이 뭔데?

JAVA\Spring

by 박집실 2022. 11. 23. 17:04

본문

# 그래서 스프링이 뭐지?

 

- 이전에 작성한 글에서는 갖갖이 스프링내의 다양한 개념과 용어에 관해서 알아봤다. 그럼 이제 본질적인 물음에 대답을 차례다. 도대체 스프링이 무엇일까?  

 

먼저 스프링을 가르키는 명칭을 생각해보자. IoC 컨테이너, DI 컨테이너 그리고 싱글톤 관리 컨테이너 이정도 생각해 볼 수 있을 것이다. 그렇다! IoC, DI, 싱글톤. 이 세 개가 바로 스프링을 특별하고 개성적이게 만드는 가장 근본적인 요소가 아닐까 생각된다. 

 

즉쓴, IoC의 개념을 통해 스타팅 포인트에서 제어권을 가지고 의존관계검색 과정을 통해서 애플리케이션 컨텍스트를 생성하주는 과정을 거친다, 이 과정에서 팩토리(설정 정보 파일)에서  DI  개념 방식으로 DB 설정과  애플리케이션 컨텍스트과의 연결을 진행해준다. 여기서 애플리케이션 컨텍스트와 팩토리의 서로 구분되어 높은 응집도, 낮은 결집도 - 관심사의 분리(SoC)가 잘 적용된 것을 볼 수 있다. 한편 애플리케이션 컨텍스트는 빈을 생성, 관리하는 역할을 하는데 이 때 애플리케이션 컨텍스트는 해당 빈에 관한 제어권을 가질 뿐 원하는 기능은 빈안에 존재하기에 IoC가 적절히 이뤄지는 걸 볼 수 있고 또한 빈의 오브젝트는 단 한 개만 만들어져서 공유되어 사용되기에 싱글톤 요소도 적절히 적용된 것을 볼 수 있다.

 

# 결론

 

- 스프링은 무엇인가? 이것에 대한 최종 답은 이렇다.

 

스프링은 IoCDI개념이 적절하게 적용되어 관심사의 분리(SoC)가 성공적으로 반영되었으며 스프링 빈(개발자가 짠 코드 및 기능들)에 대한 흐름을 잡고 제어하여 단 한 개의 오브젝트(싱글톤)만을 생성 후 공유 사용해 멀티쓰레드 환경에서도 최적화된 퍼포먼스를 보여주는 서버에 매우 잘 어울리는 최상의 프레임워크라 할 수 있다.

 

(또한 추가하자면 싱글톤 패턴의 단점을 극복하여 싱글톤 패턴이 테스트 등의 환경에서 적용 불가였던 것과는 다르게 테스트 등의 환경에서도 적용할 수 있다.)

 

참고 

왜 자바 Spring만 뽑나요? 꼭 배워야 하나요? (tistory.com)

 

왜 자바 Spring만 뽑나요? 꼭 배워야 하나요?

들어가며 취준생 시절 때부터도 쭉 간직해 온 의문이 있었습니다. 내로라하는 대기업들의 구직 공고를 보면, 항상 따라오는 조건들이 있었죠. Java 언어 사용이 능숙한 분 Spring Framework 개발 경험

seolin.tistory.com

 

관련글 더보기