본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 스프링 부트 이해

by 오주현 2022. 3. 8.
반응형

스프링 부트 이해

  • 경량 컨테이너를 사용하고 있다는 큰 특징이 있다.
    • 자바에서는 프로그램을 사용하기 위해 메모리에 올라가야 자바 프로그램을 사용할 수 있는데 스프링도 마찬가지로 자바에서 메모리에 올려주어야지 가져다 사용할 수 있다. 톰 캣 실행하면 자동으로 메모리에 올라간다. ( 컨트롤러, 서비스, 맵퍼 ) → 이처럼 메모리에 올린 것을 스프링이 관리를 한다.
  • AOP : 관점 지향 프로그래밍
    • 모든 자바 파일은 자바 오브젝트를 상속 받게 되고 중간에 부모가 끼게 된다. 공통 기능은 부모에 공통 기능을 정의하고 가져다 사용하는 방식으로 구현한다. 이렇게 하는 게 객체 지향 프로그래밍 → 문제 발생 : A라는 엄마가 있을 때 자식이 4명이 있다. 엄마의 기능을 모두 다 사용하지 않고 3명만 사용하고 1명만 사용하고 싶지 않을 때 엄마를 수정할 수 없고, 자식을 수정하기도 애매한 문제가 발생한다. → 객체지향 + 특정 이벤트, 상황이 발생되었을 때 코드를 넣는다. 즉, AOP를 통해 해결한다. 함수나 객체의 호출 제어권이 사용자가 아닌 스프링 프레임워크에서 제어 가능하게 된다.
  • 의존성을 주입할 수 있다.
  • 스프링 프레임워크는 다양한 서브 프로젝트로 구성된다.
    • 스프링 부트
    • 스프링 데이터
    • 스프링 배치
    • 스프링 클라우드
    • 스프링 시큐리티
    • 등등..
  • 스프링 프레임워크를 더 쉽게 활용 할 수 있게 도와주는 도구
  • 마이크로 서비스 아키텍처(MSA) 구현에 최적화
  • 단일(Stand-alone) 스프링 어플리케이션을 생성한다.
  • 톰캣, Jetty(WAS) 등 웹 서버들을 탑재할 수 있다. 즉, 내장되어 있다.
  • starter 명령어를 통해 패키징, 스프링 구현에 필요한 다양한 라이브러리를 패키징해 쉽게 의존성 추가 및 제거가 가능하다. 즉, start는 의존성과 설정을 자동화해주는 모듈이다.
  • 환경 설정에 사용되는 XML 파일을 모두 제거, 프로젝트 생성 시 자동으로 설정되도록 개발, 주요 설정은 application.properties 파일에 적용한다.
  • Maven과 Gradle 지원
    • Gradle은 메이븐의 xml 형태를 보다 쉽게 설정하기 위해 프로그래밍 코드와 유사하게 환경설정할 수 있도록 구현된 빌드 툴
반응형

댓글