Β κΈμΌ μ€νλ§λΆνΈμ κ΄ν΄μ 곡λΆνλ λμ€, recordλΌλ ν€μλλ₯Ό λ°κ²¬νλ€.
Β κ·Έλμ recordλΌ ν¨μ λ°μ΄ν°λ² μ΄μ€μμλ λ€μ΄λ΄€μ§, μ€μ λ‘ μλ°μμ ν΄λΉ ν€μλλ₯Ό λ°κ²¬ν μ μ΄ μμκΈ°μ μ΄ ν€μλκ° μ νν μ΄λ€ μν μ νλ μ§ λΉμ°ν μ λ¦¬κ° μμλ€.
Β κ·Έλμ κΈμΌμ κ°λ¨νκ² μ΄ recordλΌλ ν€μλλ μ΄λ€ μν μ νλ©°, μΈμ μ¬μ©νλ κ²μΈμ§ μ 리ν΄λ³΄κ³ μ νλ€.
class λμ μ¬μ©ν μ μλ ν€μλJava 14 μ΄μμμλ§ μ¬μ© κ°λ₯ν μμ½μ΄1) λΆλ³μ±
final λ‘ μ μΈ2) μλ μμ± λ©μλ
getter , toString() , equlas() , hashCode() λ±μ λ©μλλ₯Ό μλμΌλ‘ μμ±3) ꡬ쑰μ νμ΄ν
public record PostWriteForm(String title, String content) {}
@RestController
@RequiredArgsConstructor
@RequestMapping("/posts")
public class PostController {
private final PostService postService;
@PostMapping("/write")
public PostWriteForm writePost(@RequestBody PostWriteForm form) {
return new PostWriteForm(form.title, form.content);
}
}
record μμ± μ { }μ μλ΅ λΆκ°λ₯title κ³Ό content μ λν λ©μλλ€μ μλμΌλ‘ μμ±getter , toString() ...record μ λ§€ν ν λ§€κ°λ³μλ‘ postService.write μ μ λ¬record κ°μ²΄κ° μμνκ² λ°μ΄ν°λ§μ λ΄λ μ©λλΌλ μλλ₯Ό λͺ
ννκ² λνλπ‘ νμ κ·Έλ μ§λ μμ
DTO μ μν λ‘ class λ₯Ό μ¬μ©νλ κ²½μ°λ μ¬μ ν λ§μclass λ₯Ό μ¬μ©νλ κ² λ μ’μ κ²½μ°DTO λ₯Ό μ¬μ©νκ³ μΆμ κ²½μ°record λ μμμ΄ λΆκ°λ₯DTO κ° λ³΅μ‘ν λΉμ¦λμ€ λ‘μ§μ ν¬ν¨νλ κ²½μ°record μμ μλ μμ±λλ λ©μλλ₯Ό κ·Έλλ‘ μ¬μ©νλ κ²μ΄ μλ, 컀μ€ν°λ§μ΄μ§μ΄ νμν κ²½μ°μ°Έκ³ ) OpenAI. (2024).ChatGPT(4o)[Large language model].https://chatgpt.com/