최근 새로운 프로젝트를 시작하면서 새로운 개발 환경을 세팅해야 했다.
그 과정에서 스프링부트 프로젝트를 설정해야 했는데, 기본 세팅 방법을 기록해두려고 한다.
spring initializr는 프로젝트를 구축할 때 기본 세팅을 쉽게 진행할 수 있도록 도와주는 사이트다. 초기 프로젝트를 세팅할 때, 해당 사이트를 통해 빠르게 구축할 수 있었다.
참고로 인텔리제이는 유료 버전에서만 spring initializr 사용이 가능하다.
참고로 SpringBoot를 사용한다면 보통 JAR를 선택하여 서비스하는 편이 좋다.
프로젝트에 사용할 코드나 라이브러리를 미리 세팅할 수 있다. 프로젝트를 세팅할 때 보통 Lombok과 Spring Web은 기본적으로 선택하는 걸 추천하는 편이다. 다른 라이브러리는 필요한 것만 세팅하면 된다.
모든 세팅이 끝났다면 화면 하단의 GENERATE 버튼을 클릭한다. 그럼 자동으로 기본 세팅된 프로젝트가 다운로드될 것이다. 해당 프로젝트를 git와 개발환경(인텔리제이, 이클립스 등)에 연결하여 사용하면 된다.
기본 패키지를 설정한 이후엔 프로젝트 별로 기본 세팅이 필요하다. 이건 공통된 사항이 아니니 참고만 하자.
프로젝트를 빌드하면 resource 경로 안에 'application.properties'가 기본으로 세팅되어 있을 것이다. 나는 'application.yml'으로 이름을 변경하여 사용했다.
최근 JSP는 점점 사용하지 않는 추세이지만, 백엔드 개발자라 프론트엔드를 최대한 가볍게 다루며 프로젝트를 진행하고 싶다면 JSP도 나쁘지 않은 선택이다.
다만 스프링부트는 JSP를 따로 세팅해주어야 한다. 스프링부트 3.0 이상은 javax 대신 jakarta 패키지를 사용해줘야 한다.
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'jakarta.servlet:jakarta.servlet-api'
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
배너 디자인 사이트에서 원하는 배너를 만든다.
resources 파일 아래 banner.txt 파일을 만들어 배너를 붙여넣는다.
spring:
banner:
location: classpath:banner.txt
logging:
level:
root: info #warn, info, debug
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<property name="CONSOLE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %magenta([%thread]) %highlight([%-3level]) %logger{5} - %msg %n" />
<!-- Console appender 설정 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>${CONSOLE_PATTERN}</Pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF" additive="false">
<appender-ref ref="STDOUT"/>
</logger>
<logger name="jdbc.sqlonly" level="DEBUG" additive="false" >
<appender-ref ref="STDOUT"/>
</logger>
<logger name="jdbc.sqltiming" level="OFF" additive="false" >
<appender-ref ref="STDOUT"/>
</logger>
<logger name="org.hibernate.SQL" level="DEBUG" additive="false">
<appender-ref ref="STDOUT"/>
</logger>
<logger name="com.example.todolist.controller" level="DEBUG" additive="false" >
<appender-ref ref="STDOUT"/>
</logger>
<logger name="com.example.todolist.service" level="DEBUG" additive="false" >
<appender-ref ref="STDOUT"/>
</logger>
<logger name="com.example.todolist.domain" level="DEBUG" additive="false" >
<appender-ref ref="STDOUT"/>
</logger>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>