토비의 스프링 부트 - 이해와 원리

유사개발자·2023년 8월 17일
0
post-custom-banner

스프링 부트란

스프링 부트는 스프링을 기반으로 실무 환경에 사용 가능한 수준의 독립실행형 애플리케이션을 복잡한 고민 없이 빠르게 작성할 수 있게 도와주는 여러가지 도구의 모음이다.

스프링 부트의 핵심 목표

  • 매우 빠르고 광범위한 영역의 스프링 개발 경험을 제공
  • 강한 주장을 가지고 즉시 적용 가능한 기술 조합을 제공하면서, 필요에 따라 원하는 방식으로 손쉽게 변형 가능
  • 프로젝트에서 필요로 하는 다양한 비기능적인 기술(내장형 서버, 보안, 메트릭, 상태 체크, 외부 설정 방식 등) 제공
  • 코드 생성이나 XML 설정을 필요로 하지 않음

Containerless 개발

스프링 애플리케이션 개발에 요구되는 서블릿 컨테이너의 설치, WAR 폴더 구조, web.xml,
WAR 빌드, 컨테이너로 배치, 포트 설정, 클래스로더, 로깅 등과 같은 필요하지만 애플리케
이션 개발의 핵심이 아닌 단순 반복 작업을 제거해주는 개발 도구와 아키텍처 지원한다
설치된 컨테이너로 배포하지 않고 독립실행형(standalone) 자바 애플리케이션으로 동작

스프링의 설계 철학

  • 극단적인 유연함 추구
  • 다양한 관점을 수용
  • Not opinionated (주장을 고집하지 않는다)
  • 수많은 선택지를 다 포용

스프링은 너무나도 포용적이기 때문에 이런저런 고민들이 생겨날 수 있음

스프링 부트의 설계 철학

  • Opionionated - 자기 주장이 강한, 자기 의견을 고집하는, 독선적인
  • 일단 정해주는 대로 빠르게 개발하고 고민은 나중에
  • 스프링을 잘 활용하는 뛰어난 방법을 제공
  • 업계에서 검증된 스프링 생태계 프로젝트, 표준 자바 기술, 오픈소스 기술의 종류와 의존관계, 사용버전을 정해줌 (jpa를 예로 들자면 hibernate 구현체를 꽂아줌)
  • 각 기술을 스프링에 적용하는 방식(DI구성)과 디폴트 설정값 제공

스프링 부트의 이해

  • 부트가 결정한 기술과 구성, 디폴트 설정을 수용
  • 외부 설정 파일을 이용한 설정 변경 방법을 활용
  • 아주 빠르게 개발을 시작할 수 있다
profile
개발자와 유사한 개발자입니다
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 8월 17일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기