- STS
- JDK
1) STS
STS(Spring Tool Suite)
- 스프링 기반 애플리케이션을 개발하기 위한 IDE 중 하나이다.
- Eclipse IDE를 기반으로 구축되었다.
👉 Window & macOS
- Window:
spring-tool-suite-4-4.21.0.RELEASE-e4.30.0-win32.win32.x86_64.self-extracting.jar
파일 다운로드 -> 프로젝트 폴더로 이동 -> 더블 클릭 -> 압축 해제- macOS:
spring-tool-suite-4-4.21.0.RELEASE-e4.30.0-macosx.cocoa.aarch64
파일 다운로드 -> 프로젝트 폴더로 이동 -> 더블 클릭 ->SpringToolSuite4.app
을 프로젝트 폴더로 이동
2) JDK
- 🚩 SpringBoot 3.x 버전에선 자바 17 버전 이상이어야 한다.
해당 포스팅의 JDK 설치
와 환경 변수 설정
을 참고한다.
- JSP를 위한 플러그인 설치
- 글자 인코딩 설정
1) JSP를 위한 플러그인 설치
- STS에서 JSP를 더 편리하게 사용하기 위한 과정이다.
Eclipse Enterprise Java and Web Developer Tools 3.31
(톱니 바퀴 아이콘, 하단의 jsp 확인) install 버튼 클릭Window는 Window > Preferences
, macOS는 SpringToolSuite4 > Settings
에 Web 메뉴가 있다면 제대로 설치된 것이다.
2) 글자 인코딩 설정
- 한글 깨짐을 방지하기 위해 Encoding을 UTF-8로 설정하는 작업이다.
Window > Preferences
, macOS는 SpringToolSuite4 > Settings
클릭ISO 10646/Unicode(UTF-8)
선택ISO 10646/Unicode(UTF-8)
선택ISO 10646/Unicode(UTF-8)
선택
- 프로젝트 기본 설정
- Dependencies 설정
1) 프로젝트 기본 설정
2) Dependencies 설정
- 프로젝트 생성 이후 Lombok과 Spring Data JPA 설치 방법은 연결된 링크를 참고한다. 물론 이 단계에서 체크한다면 이후 따로 설치할 필요는 없다.
build.gradle
파일에서 dependencies를 확인할 수 있다.
👉 프로젝트명Application.java 파일
- 메인 애플리케이션 클래스이다.
- main 메소드를 포함하고 있어, Spring Boot 애플리케이션의 시작점이 된다.
👉 베이스 패키지
- 프로젝트의 패키지 구조에서 가장 상위에 위치하는 패키지이다.
- 일반적으로 메인 애플리케이션 클래스(
프로젝트명Application.java
)가 위치한 패키지를 베이스 패키지로 사용한다.- 애플리케이션 클래스(
프로젝트명Application.java
)의 1번째 줄에 작성된 패키지 명으로 베이스 패키지를 확인할 수 있다.- 만약 베이스 패키지 외부에 클래스를 두면 Spring Boot가 스캔하여 해당 클래스를 자동으로 Spring 빈으로 등록하지 못하므로 주의한다.
ex.src/main/java/com/example/프로젝트명Application.java
인 경우,com.example
이 베이스 패키지이다.
👉 포트번호 변경하기(
http://localhost:포트번호/매핑된주소
)
- application.properties 파일에 작성하는 방법
src/main/resources/application.properties
파일에 아래 코드 작성 후 저장server.port=포트번호
- application.yml 파일에 작성하는 방법
src/main/resources/application.yml
파일에 아래 코드 작성 후 저장server: port: 포트번호
👉 주요 폴더
- src/main/java: Java 소스 코드 파일
- src/main/resouces: 설정 파일/리소스 파일(MyBatis의 XML 매퍼 파일, 데이터베이스 연결 정보, 로깅 설정 등)
- src/main/webapp: JSP, HTML 파일(webapp 폴더는 view 연동 시 직접 생성해야 함)
- DataSource 관련 에러
- 디버그 관련 에러
1) DataSource 관련 에러
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
- 해석: 데이터 소스를 구성하지 못했습니다. 'url' 속성이 지정되지 않았으며 포함된 데이터 소스를 구성할 수 없습니다.
- 원인: DB 연동 전이므로 나타나는 에러이다.
- 해결: DataSourceAutoConfiguration.class는 제외하고 자동 구성을 활성화하겠다는 어노테이션(
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
)을 작성한다.
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
어노테이션 작성// 🟢 src/main/java/com/example/SpringExampleApplication.java
// 위의 경로에서 com/example는 베이스 패키지, SpringExample은 프로젝트명이다.
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) // ⭐️
@SpringBootApplication
public class SpringExampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringExampleApplication.class, args);
}
}
2) 디버그 관련 에러
- Spring Boot 애플리케이션 실행 시, 디버그 모드로 실행하도록 하는 옵션(
--debug
)을 설정한다.- 디버그 모드로 실행하는 아이콘이 존재하지만, 추후 디버그 관련 에러가 발생하는 경우가 있어 해당 옵션을 초기에 설정해두는 것이 좋다.
- 한 번이라도 실행하지 않았다면, Run Configurations 창의 탭이 활성화되지 않을 수 있다.
--debug
작성@Controller + @ResponseBody + return String
메서드에 요청 시, HTML로 응답하는가?@Controller + @ResponseBody + return 객체
메서드에 요청 시, JSON로 응답하는가?