2024.06.20

김무영·2024년 6월 21일

Spring Boot

  • 스프링 기반의 애플리케이션을 빠르고, 쉽게 개발할 수 있도록 도와주는 도구
  • 장점 :
    • 간편한 설정(복잡한 설정을 줄여주고, 개발자는 업무로직 구현에 집중할 수 있게 한다.)
    • 높은 생산성(빠르고 쉽게 개발하고 실행할 수 있게 해준다)
    • 내장된 기능(내장된 서버, 보안기능 등 다양한 기능 내장 되어있다.)
    • 자동화된 설정(많은 설정들을 자동으로 처리하여 개발초기에 시간 절약가능)
  • 단점 :
    • 복잡성 : 강력한 기능을 제공하나, 너무 많은 기능이 포함되어있어서 복잡함.
      • 옵션과 설정이 많아 초보자가 이해하고 관리하기 어렵다.
    • 추가적인 리소스의 사용 : 내장서버와 다양한 라이브러리가 포함되어있어 크기가 상대적으로 크다 (프로그램 시작 시간이 길어질 수 있다. - 소규모 프로젝트는 크게 영향을 주지 않지만 대규모 프로젝트나 서버리스환경에서는 고려해야할 사항.)
    • 유연성 부족 : 개발자가 원하는 설정을 직접 추가하거나 수정하기 어렵다.
      • 특정한 경우 자동구성이 원하는 대로 동작하지 않을 수 있다.
    • 지원되지 않는 기능 : 특정 데이터베이스 연동x 특정프로토콜 지원 x - customizing 필요

STS가 실행되지 않으면

  • SpringToolSuite4.ini 를 열어서 -VM옵션을 설정(STS4 JDK17 부터 인식)

설명

  • Service URL : 스프링사이트에서 제공 : spring initializr를 통해서 boot project를 생성할 때 사용되는 자동 옵션을 제공하는 URL
  • Name : MSA서비스의 대표적인 이름(Microservices Architecture)
  • Group, Artifact, Version : Maven에서 사용되는 id

  • Spring Boot DevTools : 자동재시작
    • 소스코드가 변경되면 애플리케이션을 자동으로 재시작
    • 라이브리로드 : 웹브라우저에서 페이지를 자동으로 새로고침.
      • (HTML, CSS, JS파일 수정 유용 - 브라우저에 플러그인을 설치)
    • 캐시의 비활성화 : 개발중에는 소스변경을 바로 적용시켜서 반영해야하기 때문에 운영 중(프러덕션환경)에는 성능을 위해 캐시가 활성화되는 것이 좋다.
    • 개발설정 적용 : 개발환경에 맞춘 기본 설정을 제공.

  • src/main/java/kr/co/sist : Java source code
  • static : HTML,CSS,JS 저장
  • application.properties : Project 환경설정(개발,테스트,프로덕션 환경용 분리해서 개발할 수 있다.)
    • application-dev.properties
    • application-prd.properties
  • webapp/WEB-INF/views : JSP저장

  • 빨간박스의 코드가 없다면 개발은 되나 배포할 때 Servlet/JSP가 실행되지 않는다.

개발설정(application.properties)

  • 설정파일을 개발, 서비스용으로 분리하고 application.properties에서 spring.profiles.active=사용할 properties파일
    • spring.profiles.active=dev -> 개발용설정파일을 로딩한다. (application-dev.properties)

static 폴더를 인식

  • application.properties (HTML이 서비서 되지 않으면 설정한다 - 서비스 되면 제거가능)

JSP를 서비스

  • pom.xml에 설정
  • boot 3.0이하(Tomcat9 - javax.servlet) 1가지
  • boot 3.0이상(Tomcat10 - jakarta 패키지 사용) 3가지

CharSet 강제적용

  • charset = UTF-8 : 서버에서 사용되는 기본 문자 encoding을 UTF-8로 설정

  • enabled = true : 서버에서 요청과 응답에 대한 지정한 charset을 사용하도록 활성화

  • force = true : 요청과 응답 인코딩을 다른 설정에서 변경하더라도 이 설정을 강제적용

0개의 댓글