μμμ κΈ°λ³Έμ μΈ Maven Project μ λν directory ꡬμ±μ λνμ¬ μ΄ν΄λ³΄μλ€. κ·Έλ¬λ μμ§ νμΈνκ³ λμ΄κ°μΌ ν νμΌλ€μ΄ λͺκ° λ μ‘΄μ¬νλ€.
Maven Wrapper Files

mvnw νμΌ, μ¦ Maven Wrapper λ μλμΌλ‘ μ¬λ°λ₯Έ verison μ Maven μ μ€ννλλ‘ λμμ£Όλ μ€ν νμΌμ΄λ€. Wrapper λΌλ μ΄λ¦μ κ°μ§λ§νΌ, Maven μ μ€ν κ³Όμ μ λμ κ°μΈκ³ μ²λ¦¬νλ μν μ νλ€. κ°λ°μκ° μ§μ μμ μ νλ‘μ νΈμ μ ν©ν version μ Maven μ μ ννμ¬ μ€μΉνμ§ μλλΌλ Maven Wrapper κ° μ΄ λμμ μλμΌλ‘ μ²λ¦¬ν΄μ€λ€. μ¦, local νκ²½μ Maven μ΄ μ‘΄μ¬νμ§ μλλ€λ©΄ Wrapper κ° μμμ λ€μ΄λ‘λνμ¬ μ€μΉνλ€.
directory λ₯Ό 보면 mvnw.sh μ mvnw.cmd λ κ°μ wrapper κ° μ‘΄μ¬νλλ°, νλλ Linux/Mac νκ²½μμ μ¬μ©λλ shell script νμμ νμΌμ΄κ³ , λ€λ₯Έ νλλ Windows νκ²½μμ μ€νν μ μλ νμΌμ΄λ€.
Application Properties
Spring Boot νλ‘μ νΈμμ application.properties νμΌμ μ ν리μΌμ΄μ
μ λ€μν μ€μ μ κ΄λ¦¬νλ€. μ΄ νμΌμ μ ν리μΌμ΄μ
μ€ν μ μλμΌλ‘ λ‘λλλ©°, Spring Initializr λ‘λΆν° μλμΌλ‘ μμ±λλ€.

ν΄λΉ νμΌμμλ Spring Boot μ properties λΏλ§μ΄ μλλΌ κ°λ°μκ° κ°μΈμ μΌλ‘ μ¬μ©ν μ μλ properties λ μΆκ°ν μ μλ€. μλ₯Ό λ€μ΄μ,
# configure server port
server.port=8585
# configure my properties
coach.name=Arne Slot
team.name=Liverpoolκ³Ό κ°μ΄ μ¬μ©ν μ μλ κ²μ΄λ€. custom properties μ κ²½μ°, Controller λ±μμ Injection μ μ¬μ©νμ¬ Java class μ field μ κ°μ ν λΉν μ μλ€. μλμ²λΌ λ§μ΄λ€.
@RestController
public class SampleController {
@Value("${coach.name}")
private String coachName;
@Value("${team.name}")
private String teamName;
}Static Content

λ€μμ static directory μ λν λΆλΆμ΄λ€. μ΄ μμμλ static resources λ€μ΄ μ μ₯λλ κ³³μ΄λ€. HTML, CSS, JavaScript λ±μ νμΌκ³Ό μ΄μ μ¬μ©λλ image νμΌλ€μ΄ μ¬κΈ°μ μνλ€. ν΄λΉ νμΌλ€μ Spring Boot κ° μλμΌλ‘ load νμ¬ μ¬μ©νλ€.
Templates

templates μμλ Thymeleaf, FreeMarker, Mustache λ±μ template engine λ€κ³Ό ν¨κ» μ¬μ©λλ€. μ΄λ₯Ό ν΅νμ¬ controller μμ μ λ¬λ°μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ dynamic νκ² HTML νμ΄μ§λ₯Ό μμ±νλ€.
Unit Test

λ§μ§λ§μΌλ‘ Unit Test μμ μ¬μ©λλ test directory μ΄λ€. Spring Initializr λ₯Ό ν΅νμ¬ κΈ°λ³Έ Test class κ° νλ λ§λ€μ΄μ Έ μμΌλ©°, κ°λ°μκ° μνλ unit tests λ₯Ό μΆκ°ν μ μλ€.