<aside> <img src="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" alt="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" width="40px" /> ์ฐธ์กฐ Github Code

</aside>

1. ๋กฌ๋ถ ์ •์˜

Lombok์ด๋ž€ Java์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผย Annotation์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋™์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‹ค. ๋ณดํ†ต DTO๋‚˜ Model, Entity์˜ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์†์„ฑ์ด ์กด์žฌํ•˜๊ณ  ์ด๋“ค์ด ๊ฐ€์ง€๋Š” ํ”„๋กœํผํ‹ฐ์— ๋Œ€ํ•ด์„œ Getter๋‚˜ Setter, ์ƒ์„ฑ์ž ๋“ฑ์„ ๋งค๋ฒˆ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ DTO์™€ ๊ฐ™์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์—†์–ด์งˆ ๋•Œ๋งˆ๋‹ค Getter, Setter, ์ƒ์„ฑ์ž ๋“ฑ์„ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์—๋„ย Lombok์„ ์ด์šฉํ•˜๋ฉด ๋‹จ์ˆœํžˆ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•˜๋‹ค.

Lombok์„ ์ด์šฉํ•ด์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œย Annotation์„ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋Ÿฐ ๊ฒฐ๊ณผ๋ฌผ์ดย .class์— ๋‹ด๊ธฐ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ท€์ฐฎ์€ ๊ณผ์ •์„ ์ค„์—ฌ์ฃผ๊ณ  ๋ฐ˜๋ณต๋˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์„ ๋Œ€์‹  ํ•ด์ค€๋‹ค๋Š” ์ ์—์„œ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์„ ํ˜ธํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์ง€๋งŒ ํ˜ธ๋ถˆํ˜ธ๊ฐ€ ๊ฐˆ๋ฆฌ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ๋„ ํ•˜๋ฏ€๋กœ ํŒ€ ํ”„๋กœ์ ํŠธ์— ๋„์ž…ํ•˜๋Š” ๊ฒฝ์šฐ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

๋˜ํ•œ ๋‹จ์ˆœํžˆย Annotation์„ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฏ€๋กœ ๊ฐย API๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์ˆ™์ง€ํ•œ ์ฑ„๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ดย @Data๋‚˜ย @ToString์˜ ๊ฒฝ์šฐ ์ˆœํ™˜ ์ฐธ์กฐ ๋˜๋Š” ๋ฌดํ•œ ์žฌ๊ท€ ํ˜ธ์ถœ๋กœ ์ธํ•ดย StackOverFlowError๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋Š” ์•„๋ž˜์„œ ์ž์„ธํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ฒ ๋‹ค.

2. ๋กฌ๋ถ ์ฃผ์ž…

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-03-06 แ„‹แ…ฉแ„’แ…ฎ 11.30.54.png

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-03-06 แ„‹แ…ฉแ„’แ…ฎ 11.35.14.png

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

3. ์‚ฌ์šฉ๋ฐฉ๋ฒ•

import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Setter
@Getter
public class DevDto {
    String name;
    Integer age;
    LocalDateTime startAt;
}