요약
application.properties: 애플리케이션 설정(서버 포트, DB 정보 등)을 관리하는 파일.
settings.gradle: 프로젝트 이름과 모듈 구성을 정의하는 파일.
src/main/java: 핵심 비즈니스 로직, 서비스, 컨트롤러, 리포지토리 등을 구현하는 Java 코드가 위치.
src/main/resources/static: CSS, JS, 이미지 등의 정적 리소스를 저장하는 폴더.
src/main/resources/templates: 템플릿 엔진을 사용하여 동적인 HTML 페이지를 생성할 때 사용하는 HTML 파일을 저장하는 폴더.
Spring Boot 프로젝트 구조 세부 설명
1. application.properties
위치: src/main/resources/application.properties
설명: Spring Boot 애플리케이션의 설정 파일로, 구동 시 필요한 다양한 환경 설정 정보를 정의하는 곳입니다.
사용 예시:
- 서버 설정:
server.port=8080
server.servlet.context-path=/myapp
- 데이터베이스 설정:
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 로그 설정:
logging.level.org.springframework=INFO
logging.file.name=app.log
- 프로파일별 설정:
spring.profiles.active=dev
2. settings.gradle
위치: 프로젝트의 최상위 폴더
설명: Gradle 빌드 시스템의 설정 파일로, 프로젝트의 이름과 모듈 구성을 정의합니다.
주요 내용:
3. src/main/java
위치: src/main/java
설명: Spring Boot 애플리케이션의 메인 Java 소스 파일이 위치하며, 비즈니스 로직, 컨트롤러, 서비스, 리포지토리, 엔티티 클래스 등이 여기서 정의됩니다.
주요 내용:
- Controller:
@RestController
public class MyController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
- Service:
@Service
public class MyService {
public String getGreeting() {
return "Hello from the service!";
}
}
- Repository:
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
}
- Entity:
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
}
4. src/main/resources/static
위치: src/main/resources/static
설명: 정적 파일(이미지, CSS, JavaScript 등)을 저장하는 폴더로, Spring Boot는 이 폴더의 파일을 정적 자원으로 제공합니다.
사용 예시:
src/main/resources/static/index.html
에 HTML 파일을 생성하면 애플리케이션의 루트 URL에 자동으로 연결됩니다.
src/main/resources/static/css/style.css
에 CSS 파일을 저장하여 프론트엔드 페이지에서 사용할 수 있습니다.
5. src/main/resources/templates
위치: src/main/resources/templates
설명: 템플릿 엔진(Thymeleaf, Freemarker 등)을 사용하여 동적 웹 페이지를 생성할 때 사용하는 HTML 파일을 저장하는 곳입니다.
사용 예시: