2. SpringBoot - 의존성 주입

한승록·2023년 11월 27일
0

스프링 부트 기초

목록 보기
2/6
post-thumbnail
SpringBoot는 아무래도 IDEIntellij를 많이 사용하는거 같아 찾아볼수 있는 자료가 많다보니 Intellij를 사용하게 되었습니다.

확실히 차이점이 있다는 것을 알게되었고 기본적으로 프로젝트 생성 시 주입하는 의존성에 대해 설명해보고자 합니다.

1) Spring Boot DevTools

말그대로 SpringBoot 환경에서 개발하고 디버깅하는 도구 모음을 의미합니다.
기본적으로 제공하는 기능은 다음과 같습니다.
  1. Property Defaults
  2. Automatic Restart
  3. Live Reload
  4. Global Settings
  5. Remote Applications

1-1) Property Defaults

Maven에서 JSP를 기반으로 작성하는 대신 Gradle에서는 주로 Thymeleaf라는 템플렛을 사용하게 됩니다.
Thymeleaf에 대해서는 밑에서 자세하게 기술하겠지만 해당 템플렛 사용 시 캐싱 기능을 사용하게 되는데 이때 수정한 소스가 제대로 반영되지 않을 수 있기 때문에 cache 의 기본값을 false 로 설정할 수 있게 도와줍니다.

1-2) Automatic Restart

classpath에 있는 파일 변경 시 자동으로 재시작 해줍니다. Maven기반의 프로젝트에서는 수정 후 재시작을 해주어야 해당 내용이 반영되는 번거로움이 있었지만 이를 통해 생산성을 향상 시키게 되었습니다.

1-3) Live Reload

Automatic Restart 가 백엔드 영역의 코드 적용이었다면 Live Reload는 프론트 엔드 쪽 즉, 정적자원 수정 시 새로고침 없이 적용이 가능하게 도와줍니다.

1-4) Global Settings

Global Settings는 위 3개의 기능과는 달리 주로 사용되지는 않기 때문에 간략하게 설명하자면 자주 변경되는 설정을 지정하여 사용할 수 있는 기능입니다.

1-5) Remote Application

Remote Application 또한 필수적이고 자주 사용되는 기능이 아니기 때문에 간략하게 말씀드리도록 하겠습니다.
로컬 환경이 아닌 원격 서버에서 실행하고 개발하는데 도움을 주는 기능이며 로컬과 실제 서버 환경 간의 차이를 최소화합니다. 따라서 실제 운영 환경이 아닌 개발 또는 테스트 환경에서 사용하는 것이 적합합니다.




2) Lombok

어노테이션 기반 코드를 자동완성해주는 라이브러리입니다.
DTO형태의 클래스를 예를 들어 설명해보겠습니다.
@Getter
@Setter
public class Human {
	
    private String eyes;
    private String nose;
    private String mouth;
    
    
}
해당 방식을 사용하게 되면 Human 클래스의 모든 변수에 대해 Getter, Setter가 생성되게 됩니다. 이처럼 어노테이션을 통해 코드가 완성될 수 있도록 하여 가독성과 편의성의 증대를 불러오게 됩니다.




3) Spring Web

사실상 SpringBoot를 사용하는 주된 이유 중 하나라고 생각합니다.
Spring WebWeb MVC를 사용하여 웹 애플리케이션을 개발하는데 필요한 기본 요소를 가지고 있으며 내장형 컨테이너로 Tomcat을 내장하고 있기 때문에 따로 서버를 설치할 필요가 없습니다.




4) Thymeleaf

ThymeleafJSP와 같이 요청받은 응답 결과를 화면으로 구현해주는 역할을 수행합니다.
HTML, XML, JavaScript, CSS 및 일반 텍스트 까지 처리하며 템플릿의 유지 관리가 쉬운 방법을 제공하는 역할을 수행합니다.
또 다른 주요 특징으로는 HTMLNatural Template을 유지하기 때문에 협업하기 편리하고 웹 브라우저에서 파일을 열어도 내용확인이 가능하다는 점입니다.
profile
개발 학습

0개의 댓글