스프링 부트 시작하기

스프링 부트 소개

  • 토이 수준이 아닌 Spring 기반의 Production-grade의 독립적 어플리케이션을 빠르고 쉽게 만들 수 있도록 도와줌
  • Opinionated view: 개발자가 직접 설정하지 않고도, Spring boot가 정의하는 Convention을 자동으로 설정해주는 것
    • 따라서 모든 것을 일일이 설정하지 않아도 됨
    • Spring platform 뿐 아니라, third-party library에 대한 설정도 자동으로 해줌
      • ex) Tomcat의 8080 port 설정...
  • 스프링 부트의 목표
    • 모든 스프링 개발에 있어 빠르고, 폭 넓은 사용성을 제공
    • Opinionated view를 제공하지만, 개발자가 원할 시 쉽고 빠르게 설정 변경 가능
    • 비즈니스 로직을 구현하는데 필요한 기능 뿐 아니라 Non-functional한 기능도 제공
    • xml 설정을 더 이상 하지 않고, code generation을 하지 않음
      • 쉽고 명확하며, 더 편리하게 customizing이 가능해짐!

스프링 부트 시작하기

  • group id는 보통 package명으로 설정
  • spring boot의 parent로 spring-boot-starter-parent 추가해줌
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>
  • Maven 간 프로젝트 계층 구조 만드는 것

    • spring-boot-starter-parent를 부모 프로젝트로 설정
    • Spring boot가 제공하는 의존성 관리와 매우 관련이 깊은 설정!
  • spring-boot-starter-web 의존성 추가

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
  • build plugin 추가
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  • IntelliJ에서 psvm 으로 Main 함수 추가 가능
  • mvn package로 maven project build 가능
    • jar 파일을 결과물로 생성!
  • 이후, java -jar 'jar 명'으로 jar 파일 생성 가능

스프링 부트 프로젝트 구조

  • 메이븐 기본 프로젝트 구조와 동일
    • 소스 코드
    • 소스 리소스
      • classpath가 root dir 의미
    • 테스트 코드
    • 테스트 리소스
  • @SpringbootApplication이라는 annotation이 달려 있는 MainApplication class는 가장 최상위 패키지에 두는 것이 추천됨
    • @SpringbootApplication을 기점으로 Component scan을 하기 때문
    • java 폴더 바로 밑에 Main class 두게 될 경우, 프로그램에 존재하는 모든 패키지를 뒤져서 component를 찾는 비효율 발생
    • 따라서, 다른 패키지에 있는 moduleㅡㄹ은 component로 등록이 안되기 때문에 디렉토리 구조를 설정는데 주의!

+ Recent posts