담비의 개발블로그

[CS]2026.02.01 면접준비(spring, spring boot의 비교) 본문

카테고리 없음

[CS]2026.02.01 면접준비(spring, spring boot의 비교)

담비12 2026. 2. 1. 23:41

◆ 공통점

1. 제어의 역전(Inversion of Control / IoC)

- 개발자는 선언만 진행하고, 스프링과 스프링부트에서는 컴포넌트를 이용해 실제 객체를 만들어준다. 즉 객체 생성을 개발자 자신이 아닌 스프링과 스프링부트에게 넘기는 것이다.

IoC의 장점 : 객체의 생명주기 관리를 개발자가 아닌 컨테이너가 담당함으로써, 객체 간의 결합도를 낮추고 유연한 코드를 작성할 수 있게 해준다. 덕분에 비즈니스 로직에만 집중할 수 있고, 테스트 코드를 작성할 때도 가짜 객체를 주입하기 쉬워져 테스트 용이성이 높아진다.

 

2. 의존성 주입 (Dependency Injection/ DI )

- IoC라는 큰 원칙을 실제로 구현하는 방법이 바로 DI다. 필요한 객체를 내가 직접 만드는 게 아니라, 외부(컨테이너)에서 "주입"받는 방식이다.

 

 

3. 관점 지향 프로그래밍(Aspect Oriented Programming / AOP)

- AOP는 여러 클래스에 흩어진 공통 로직을 따로 모아 모듈화하는 기술이다. 핵심 비즈니스 로직의 순수성을 유지하고 코드의 재사용성을 높일 수 있다. 
예를 들어 공정설비를 위한 여러개의 로봇사용법에 대한 핵심 로직이 있다면, 이 로봇들의 사용시간이 어떻게 되는지 궁금할 때 사용할 수 있다. 사용시간을 모두 모아두어 따로 관리하는 것이 AOP인 것이다. 그리고 각 로봇의 보안을 위한 로직이 있다고 가정하면 그 보안로직도 부가 기능을 모아둔 [Aspect 클래스] 안에 작성할 수 있다.

 

 

 

◆ 차이점

구분 스프링 스프링부트
설정 수동으로 설정이 필요(XML 또는 자바 설정) Auto Configuration(자동설정) 기능을 통해 빈(bean)을 자동으로 등록
서버 Tomcat같은 외장 WAS를 별로도 설치하고 WAR 파일을 배포해야함 내장서버를 포함하고있어 JAR 파일만으로 즉시 실행 가능
의존성 관리 버전 간 호환성을 직접 확인하며 라이브러리를 추가해야 함. Starter 의존성을 통해 관련 라이브러리 묶음을 버전 호환 걱정 없이 한번에 가져옴.
운영지원 모니터링이나 헬스 체크 기능을 직접 구현. Actuator를 통해 애플리케이션 상태 모니터링 기능을 기본 제공