[Spring] Spring-boot

한호성·2022년 7월 27일
0

Web Backend로 많이 사용되는 Spring 에 대해 공부하게 되었다.
Spring 이 무엇인지 알아보자

Spring Framework

용어 정리

Framework & Library

우리는 Spring 을 프레임워크라고 부른다. 프레임 워크란 무엇일까? Frame(틀) + work(일) 단어를 나누어서 생각해보자. 어떤 일정한 짜여진 틀, 뼈대를 가지고 다양한 형태의 결과물을 만들어 낼수 있다.

개발에서의 프레임워크를 '특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램'으로 정의할 수 있겠다.

*cf) 프레임워크와 비교가 많이 되는 라이브러리는 프레임워크와 마찬가지로 개발을 하기 위해 사용된다는 점에서는 같지만, 프레임워크 같이 지켜야 하는 절대적인 룰은 없다. 도구로써 자유롭게 사용가능하다는 점이 차이점이다.

Spring

Spring Framework는 자바 플랫폼을 위한 오픈소스 어플리케이션이다. 동적인 웹 사이트를 개발하기 위해 여러가지 서비스를 제공하고 있다.

스프링의 장점

  • 경랑 컨테이너
  • IoC (Invertion of Control: 제어 역행)
  • DI (Dependency Injection : 의존성 주입)
  • AOP( Aspect-Oriented Programming : 관점지향 프로그래밍)

위의 장점들을 앞으로 spring을 사용하면서 알아가며 사용해보면 spring 프레임워크를 이해하는데 도움이 될 것으로 생각된다.

Spring Boot

우리가 지금 Spring initializer를 통해 사용하고 있는 것은 Spring boot이다. Spring 프레임워크의 환경설정은 굉장히 복잡하고, 이것을 간편하게 해주는 것이 spring boot 이다. 환결성정의 많은 부분을 자동화 하여 사용자가 스프링을 편하게 사용할 수 있도록 도와준다. (실행환경, 의존성 관리 등 인프라 관련해서 고려를 덜하게 더하주는 것이라 생각할 수 있겠다.)

spring boot 특징

spring boot의 특징

  • Spring boot는 Embedded Tomcat 을 사용한다. 따라 Tomcat을 설치하거나 매번 버전을 관리해 주지 않아도 된다.

  • starter를 통한 dependency 자동화 이전의 spring에서는 각각의 dependency들이 호환되는 버전을 맞춰서 사용해야 했지만, starter가 dependency를 자동으로 관리해준다.

  • jar file을 이용해 자바 옵션만으로 쉽게 배포가 가능하다(실제로 현재 배포하는 방식)

    Spring Boot starter

    dependency의 자동화가 Spring boot의 큰 장점이라고 이야기 했다.
    그렇다면 starter란 ? 특정 목적을 달성하기 위한 의존성 그룹이다. npm 처럼 간편하게 dependency를 제공해준다.

    Example

       
       implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
       implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
       implementation 'org.springframework.boot:spring-boot-starter-web'
       testImplementation 'org.springframework.boot:spring-boot-starter-test'

    위와 같이 필요한 것들을 gradle에 추가해주면 라이브러리들을 알아서 가져온다.

    Reference

    https://velog.io/@courage331/Spring-%EA%B3%BC-Spring-Boot-%EC%B0%A8%EC%9D%B4
    https://sas-study.tistory.com/274

profile
개발자 지망생입니다.

0개의 댓글