🧩 Spring Boot Project란

정의

Spring Boot Project는 Spring Boot로 API 서버를 시작할 때 필요한 기본 의존성, 설정, 진입점, 컨트롤러 구조를 갖춘 프로젝트이다. 보통 웹, JPA, 검증, 테스트, 보안 설정을 함께 묶어서 시작한다.

  • 빠르게 API 서버를 구성할 수 있다.
  • 내장 Tomcat을 사용하므로 별도 WAS 설정이 단순해진다.
  • 개발 초기에 필요한 기본 구조를 한 번에 잡기 좋다.

⚙️ 환경 설정

먼저 새 Gradle 프로젝트를 생성하여 의존성을 설정한다.

dependencies {  
    implementation 'org.springframework.boot:spring-boot-starter-web'  
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'  
    implementation 'org.springframework.boot:spring-boot-starter-validation'  
    implementation 'org.mariadb.jdbc:mariadb-java-client'  
    runtimeOnly 'com.h2database:h2'
    compileOnly 'org.projectlombok:lombok:1.18.34'  
    annotationProcessor 'org.projectlombok:lombok:1.18.34'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'  
    testImplementation 'org.springframework.security:spring-security-test'  
}

application.properties

Spring Boot는 내장 Tomcat을 제공하므로 별도의 WAS 설정이 단순하다.

spring.application.name=edocserver  
server.port=8080  
spring.datasource.url=jdbc:mariadb://localhost:3309/edoc
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.username=edoc
spring.datasource.password=qwer1234
spring.jpa.properties.hibernate.show_sql=true  
spring.jpa.properties.hibernate.format_sql=true  
spring.jpa.properties.hibernate.use_sql_comments=true  
spring.jpa.hibernate.ddl-auto=update

H2를 쓸 경우

spring.datasource.url, driverClassName, username, password를 H2 설정으로 바꾸면 된다.

🛠 진입점

실행은 Application 진입점 클래스에서 시작한다.

@SpringBootApplication  
public class EdocserverApplication {  
    public static void main(String[] args) {  
       SpringApplication.run(EdocserverApplication.class, args);  
    }  
}

🛠 Controller 추가

Spring Boot는 경량 API 서버 개발을 위한 프레임워크이므로 Controller를 간단히 추가할 수 있다.

@RestController  
@RequestMapping("/test")  
public class TestController {  
	@GetMapping("/string")  
	public String testString(){  
	    return "test";  
	}  
	  
	@GetMapping("/json")  
	public TestResponse getUserInfo(){  
	    return new TestResponse("홍길동", "010-3333-3333");  
	}  
	  
	@PostMapping("/json/withbody")  
	public TestResponse getEchoUserInfo(@RequestBody TestRequest request){  
	    return new TestResponse(request.getName(), request.getRegistrationNumber());  
    }
}

@RestController를 사용하면 문자열 반환은 물론 JSON 데이터도 함께 반환할 수 있다.

image

⚠️ 주의사항

  • application.properties에 민감 정보를 평문으로 두지 않는 것이 좋다.
  • spring.jpa.hibernate.ddl-auto=update는 개발 편의성이 높지만 운영에서는 신중해야 한다.
  • 테스트 의존성과 운영 의존성을 구분해서 관리하는 것이 좋다.
  • 컨트롤러가 커지면 요청/응답 DTO를 분리하는 편이 유지보수에 유리하다.

📌 정리

  • Spring Boot Project는 API 서버의 기본 뼈대를 만드는 문서다.
  • 웹, JPA, 검증, 테스트, DB 설정을 함께 묶어 시작하는 흐름이 일반적이다.
  • 내장 Tomcat과 @SpringBootApplication이 핵심 진입점이다.

연결문서

댓글남기기