π μ€νλ§ νλ‘μ νΈ κΈ°λ³Έ ꡬ쑰 μμ
π¦ my-spring-project/
β£ π src/
β β£ π main/
β β β£ π java/
β β β β π com/example/demo/
β β β β β£ π DemoApplication.java
β β β β β£ π controller/
β β β β β£ π service/
β β β β β£ π repository/
β β β£ π resources/
β β β β£ π application.properties (or .yml)
β β β β£ π static/
β β β β£ π templates/
β£ π test/
β β£ π java/
β β β π com/example/demo/
β β β β£ π DemoApplicationTests.java
β£ π build.gradle or pom.xml
π μ£Όμ ν΄λ/νμΌ μ€λͺ
π src/main/java/
- μ€μ λΉμ¦λμ€ λ‘μ§μ΄ λ€μ΄κ°λ μ½λλ€μ΄ μ΄ μμ μμ.
- λ³΄ν΅ ν¨ν€μ§λ₯Ό κΈ°μ€μΌλ‘ λλ: controller, service, repository, domain λ±.
π DemoApplication.java
- νλ‘μ νΈμ μ§μ
μ (Entry Point).
- @SpringBootApplicationμ΄ λΆμ΄ μμ΄μ μ€ν μ μ΄ νμΌλΆν° μ€νλ¨.
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
π controller/
- μ¬μ©μμ μμ²(Request)μ λ°μ μ²λ¦¬νλ μΉ κ³μΈ΅.
- μ£Όλ‘ @RestController λλ @Controller μ¬μ©.
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello Spring!";
}
}
π service/
- λΉμ¦λμ€ λ‘μ§μ μ²λ¦¬νλ κ³μΈ΅.
- controllerμ repository μ¬μ΄μ μ€κ° λ¨κ³ μν .
- @Service μ λν
μ΄μ
μ¬μ©.
@Service
public class UserService {
public String getUserName() {
return "νκΈΈλ";
}
}
π repository/
- DBμ μ°κ²°λλ κ³μΈ΅.
- JPA, MyBatis, JDBC λ±μ ν΅ν΄ DB CRUD μμ
μν.
- λ³΄ν΅ @Repository λλ JpaRepositoryλ₯Ό μμν¨.
@Repository
public interface UserRepository extends JpaRepository<User, Long> {}
π resources/
- μ€μ νμΌκ³Ό μ μ νμΌ, ν
νλ¦Ώ λ±μ΄ λ€μ΄κ°.
π application.properties λλ application.yml
- νκ²½ μ€μ νμΌ.
- ν¬νΈ λ²νΈ, DB μ°κ²° μ 보, νμ리ν μ€μ λ±.
server.port=8081
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
π static/
- μ μ μμμ λλ κ³³ (CSS, JS, μ΄λ―Έμ§ λ±).
- μ: /static/style.css → λΈλΌμ°μ μμ /style.cssλ‘ μ κ·Ό κ°λ₯.
π templates/
- Thymeleaf λ±μ ν
νλ¦Ώ HTML νμΌ μμΉ.
- μ: templates/home.html → return "home"; μΌλ‘ λ°ν μ λ λλ§λ¨.
π src/test/java/
- ν
μ€νΈ μ½λλ₯Ό μμ±νλ 곡κ°.
- JUnit, Mockito λ±μ νμ©ν΄μ κΈ°λ₯μ κ²μ¦.
π build.gradle λλ pom.xml
- λΉλ λꡬ μ€μ νμΌ.
- μ΄λ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν μ§, μ΄λ€ νλ¬κ·ΈμΈμ μΈμ§ λͺ
μ.
μ 체μ μΈ νλ¦ μ 리
- μ¬μ©μ μμ² → controllerλ‘ μ λ¬
- controller → service νΈμΆν΄μ λΉμ¦λμ€ μ²λ¦¬
- service → repository ν΅ν΄ DB μ κ·Ό
- κ²°κ³Όλ₯Ό λ€μ κ±°κΎΈλ‘ λ°ν → μλ΅
- μΉ νμ΄μ§κ° νμνλ©΄ templatesμμ HTML λ λλ§