본문 바로가기
SpringBoot/이해와 원리

Opinionated과 Out of the box

by D.O.T 2024. 3. 4.
Opinionated

 

'자기 주장이 강한'이라는 의미를 갖는 이 용어는 SpringBoot의 Concept로 볼 수 있다.

SpringBoot는 매번 Servlet을 띄워야하는 Spring의 문제점을 해결하려고 탄생한 Framework이다.

이런 Containerless 성질뿐만 아니다.

개발자가 개발에 집중할 수 있도록 기본적인 가이드(?), 로드맵(?)을 제공하고있다.

 

Spring Framework의 설계 철학
  1. 극단적으로 유연하다.
    • 의존성 주입 (Dependency Injection, DI)
    • 관점지향 프로그래밍 (Aspect-Oriented Programming, AOP)
    • IoC(Inversion of Control) Container
    • 다양한 모듈, 확장성, ...
  2. 다양한 관점을 수용한다
    • 웹 개발, 보안, 트랜잭션 관리, 테스트, ...
  3. Not Opinionated
    • 다양한 선택지를 다 허용한다.
    • 개발자가 프로젝트 구조를 설계 해야 함.
Spring Boot Framework의 설계 철학

 

Not Opinionated → Opinionated

  • 전문간의 의견을 기반으로 스프링을 잘 활용할 수 있는 방법을 제공한다.
  • Spring Boot에서 제공하는 방법대로 빠르게 개발할 수 있도록 한다.
  • 광범위한 Spring의 진입장벽을 많이 개선시켜주는 방법
  • Starter 패키지

Out of the box : 별다른 설정 없이 즉시 사용 가능한

  • 표준 자바 기술, 의존관계, 사용버전
  • 각 기술을 스프링에 적용하는 방식(DI 구성)
  • 디폴트 설정값 제공
커스터마이징을 하거나 코어 기술을 업그레이드 시?
호환성 문제, 프레임 워크 자체의 수정의 문제가 발생

 

유연한 확장

 

properties, yaml 과 같은 외부 설정 파일로 유연한 확장이 가능하다.

@Configuration 어노테이션으로 커스텀 구성 클래스를 만들어 사용할 수 있다.