Spring Framework는 자바 기반의 오픈 소스 애플리케이션 개발 프레임워크입니다. 특히 웹 애플리케이션을 구축하는 데에 많이 사용되며, 높은 생산성과 유연한 구조를 제공합니다.
이 글에서는 Spring Framework를 사용하여 웹 애플리케이션을 구축하는 기본적인 방법을 알아보겠습니다.
1. 환경 설정
Spring Framework를 사용하기 위해 개발 환경을 설정해야 합니다. 아래는 Spring Boot를 예로 들어 환경 설정하는 방법입니다.
- Java 개발 키트 (JDK)를 설치합니다.
- IDE (통합 개발 환경)를 설치하고, Spring Boot 플러그인을 추가합니다.
- Maven 또는 Gradle을 이용하여 프로젝트를 생성합니다.
Spring Boot는 편리한 개발 환경을 제공하며, 자동 설정과 간단한 구현을 통해 빠르게 개발할 수 있습니다.
2. 프로젝트 구조
Spring Framework 기반의 웹 애플리케이션은 일반적으로 다음과 같은 구조를 가지고 있습니다.
src
|- main
|- java
|- com.example
|- controller
|- service
|- model
|- repository
|- resources
|- static
|- templates
|- application.properties
|- test
|- java
|- com.example
|- controller
|- service
|- model
|- repository
controller
: 웹 요청 처리와 응답을 담당하는 컨트롤러 클래스를 포함합니다.service
: 비즈니스 로직을 담당하는 서비스 클래스를 포함합니다.model
: 데이터 객체를 정의하는 모델 클래스를 포함합니다.repository
: 데이터베이스와의 상호작용을 담당하는 리포지토리 클래스를 포함합니다.static
: 정적 리소스 파일 (CSS, JavaScript 등)을 포함합니다.templates
: 뷰 템플릿 파일 (HTML 등)을 포함합니다.application.properties
: 애플리케이션 구성을 설정하는 프로퍼티 파일입니다.
3. 컨트롤러 작성
웹 애플리케이션에서는 URL 요청을 처리하기 위해 컨트롤러 클래스를 작성해야 합니다. 아래는 예시로 작성한 컨트롤러 클래스입니다.
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "index";
}
}
@Controller
는 해당 클래스가 컨트롤러임을 나타내는 어노테이션입니다. @GetMapping("/")
은 “/” URL 요청을 처리하는 메소드를 정의한 것입니다. 해당 메소드는 “index” 문자열을 반환하여 “index”라는 뷰 템플릿을 찾아서 렌더링합니다.
4. 뷰 템플릿 작성
뷰 템플릿은 사용자에게 보여지는 화면을 구성하는 역할을 합니다. 여기에서는 Thymeleaf라는 템플릿 엔진을 사용하여 예시로 작성한 뷰 템플릿을 보여드립니다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h1>Welcome to my Spring application!</h1>
</body>
</html>
뷰 템플릿 파일은 HTML 파일과 유사하지만, Thymeleaf의 문법을 이용하여 동적 데이터를 처리할 수 있습니다.
5. 실행 및 확인
웹 애플리케이션을 실행하기 위해 터미널에서 다음 명령을 실행합니다.
./mvnw spring-boot:run
이제 웹 브라우저에서 “http://localhost:8080/” 주소로 접속하면 “Welcome to my Spring application!”이라는 문구가 표시됩니다.
이로써 Spring Framework를 사용하여 간단한 웹 애플리케이션을 구축하는 방법을 알아보았습니다. Spring의 다양한 기능과 라이브러리를 활용하여 더 복잡하고 유연한 애플리케이션을 개발할 수 있습니다.
더 자세한 내용은 공식 Spring Framework 문서를 참고하시기 바랍니다.