1. Spring 이란?
: Spring Framework는 자바 기반의 엔터프라이즈 애플리케이션 개발을 위한 핵심 프레임워크로,
IoC(제어의 역전)와 DI(의존성 주입), AOP 등을 통해 유연하고 확장성 있는 애플리케이션 개발을
지원하는 기술
2. Spring Boot 란?
- Spring Boot는 Spring Framework를 더 쉽게 사용할 수 있도록 만든 도구.
- 설정을 최소화하고, 빠르게 실행 가능한 애플리케이션을 만들 수 있음.
- 핵심 특징
1) 자동 설정(Auto Configuration): 의존성 기반 자동 Bean 등록
2) 내장 서버(Embedded Server): Tomcat/Jetty 등을 내장 → 별도 WAS 필요 없음
3) 독립 실행형 JAR: java -jar 실행 가능
4) 의존성 관리(Starter): spring-boot-starter-web, spring-boot-starter-data-jpa 등 제공
https://docs.spring.io/spring-boot/index.html
Spring Boot :: Spring Boot
Spring Boot helps you to create stand-alone, production-grade Spring-based applications that you can run. We take an opinionated view of the Spring platform and third-party libraries, so that you can get started with minimum fuss. Most Spring Boot applicat
docs.spring.io
3. 주요 구성 요소
- SpringApplication → 앱 실행 진입점
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class Application
fun main(args: Array<String>) {
// 앱 실행 시작점
runApplication<Application>(*args)
}
- @SpringBootApplication
: @Configuration, @EnableAutoConfiguration, @ComponentScan 결합
@SpringBootApplication
class Application
// 내부적으로 포함된 애노테이션들
// @Configuration → Bean 정의 클래스
// @EnableAutoConfiguration → 자동 설정 활성화
// @ComponentScan → @Component, @Service, @Repository 스캔
- 자동 구성(Auto Configuration) → 환경에 맞게 Bean 자동 주입(자동으로 Bean이 등록되지만, 필요하면 직접 설정 가능)
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.web.client.RestTemplate
@Configuration
class AppConfig {
@Bean
fun restTemplate(): RestTemplate = RestTemplate()
}
- 프로파일(Profile) → application-dev.yml, application-prod.yml로 환경별 분리
//application-dev.yml
server:
port: 8081
spring:
config:
activate:
on-profile: dev
//application-prod.yml
server:
port: 8082
spring:
config:
activate:
on-profile: prod
- Actuator → 운영/모니터링 기능 제공 (health, metrics)
//build.gradle.kts
dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
}
//application.yml
management:
endpoints:
web:
exposure:
include: health,info
4. 기본 구조
//패키지 구조
src/main/kotlin/com/example/demo
┣ Application.kt // 메인 진입점
┣ controller/HelloController.kt
┣ service/HelloService.kt
┗ resources/
┣ application.yml
//application.yml
server:
port: 8080
spring:
application:
name: demo-app
//Rest API 예시
package com.example.demo.controller
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class HelloController {
@GetMapping("/hello")
fun hello(): String = "Hello, Spring Boot with Kotlin!"
}
//실행
./gradlew bootRun
(상기 외 AOP, Spring Data(JPA, JDBC), Spring MVC, Spring Security, Spring Test 등이 더 있지만, 차차 배워보는걸로!
- 예시별 사용 방법을 학습하기)
'Kotlin Spring > Kotlin Spring 강의 내용' 카테고리의 다른 글
4) Spring @controller, @service, @repository (0) | 2025.08.29 |
---|---|
3) Spring 컨테이너, Bean (0) | 2025.08.26 |
1. (2) Kotlin 주요 문법 (0) | 2025.08.25 |
1. Kotlin 이란? & (1) 주요 자료구조 (1) | 2025.08.24 |
0. [과정을 들어가면서] 과정소개 (1) | 2025.08.24 |