1. ๐lombok์ด๋?
- Java์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฐ๋ณต๋๋ ๋ฉ์๋๋ฅผ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋ณดํต DTO๋ Model, Entity์ ๊ฒฝ์ฐ ์ฌ๋ฌ ์์ฑ์ด ์กด์ฌํ๊ณ ์ด๋ค์ด ๊ฐ์ง๋ ํ๋กํผํฐ์ ๋ํด Getter, Setter, ์์ฑ์ ๋ฑ์ ๋งค๋ฒ ์์ฑํด์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ์ด๋ฌํ ๋ถ๋ถ์ ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
2. ๐คlombok ์ธํ
๋งจ ์ฒ์์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๋ lombok ์์กด์ฑ์ ์ถ๊ฐํด์ฃผ์๋ค.
์ด์ STS์์ ์ฌ์ฉํ ์ ์๋๋ก ์ค์น๋ฅผ ํด์ค์ผ ํ๋ค. pom.xml์ ๋ณด๋ฉด dependency๊ฐ ์๋์ ๊ฐ์ด ์ถ๊ฐ๋์ด ์๋ค.
<java />
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
user ํด๋์ .m2 -> repository ํด๋๊ฐ ์์กด์ฑ์ด ์ถ๊ฐ๋๋ ํด๋์ธ๋ฐ

์ฌ๊ธฐ์์ ์์ dependency์ ์ ์ธ๋์ด ์๋ org.projectlombok ํด๋๋ฅผ ๋ค์ด๊ฐ ๋ณด๋ฉด jarํ์ผ์ ํ์ธํ ์ ์๋ค.

git bash ํด์ฃผ๊ณ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด ์ฃผ๋ฉด ๋กฌ๋ณต ์ค์น ์ฐฝ์ด ๋ฌ๋ค.
<java />
java -jar lombok-1.18.22.jar
์ฌ๊ธฐ์์ STS4๊ฐ ์ค์น๋ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ STS4๋ฅผ ์ถ๊ฐํด ์ค ๋ค Install ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ค์น ์๋ฃ!

3. ๐คlombok ์ฌ์ฉํด๋ณด๊ธฐ
๊ธฐ์กด์ ๋ง๋ค์๋ Member.java ํ์ผ์ ์์ ํด ์ค๋ค.
์ด์ ๋กฌ๋ณต์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ ์ธํ๋ getter/setter๋ฅผ ์ง์์ค๋ ๋๋ค.
- @Getter : ๊ฒํฐ ๋ง๋ค๊ธฐ
- @Setter : ์ธํฐ ๋ง๋ค๊ธฐ
- @Data : ๊ฒํฐ, ์ธํฐ ๋์์ ๋ง๋ค๊ธฐ
- @AllArgsConstructor : ์์ฑ์ ๋ง๋ค๊ธฐ
- @RequiredArgsConstructor : final์ด ๋ถ์ ๋ณ์์ ๋ํ ์์ฑ์ ๋ง๋ค๊ธฐ

final ์ ์ธ์ ์์ง ํ์์๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ์์ ํด ์ค๋ค.

HttpController.java ํด๋์ค๋ก ์์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ฉด ๋กฌ๋ณต ๋๋ถ์ ์์ฑ์๋ฅผ ์ ์ธํ ์ ์๊ฒ ๋์๋ค. ๋น ์์ฑ์๋ ์๊ฒผ๋ค.

๊ทธ๋ฆฌ๊ณ ๊ฒํฐ, ์ธํฐ๋ ์ฌ์ฉํ ์ ์๋ค. ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ ํ๊ณ

๋งคํํด๋ ์ฃผ์๋ก ์ด๋ํ๋ฉด ํ๋ฉด์ด ์ ๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.

์ฝ์์ฐฝ์ getter/setter ๊ฐ๋ ์ ๋์ด์จ๋ค.

์ด๋ฒ์ builder๋ฅผ ์ฌ์ฉํด์

์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ ํ๋ค. ๊ธฐ์กด์๋ ์ ๋ ๊ฒ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๊พธ๋ ค๋ฉด ์ค๋ฒ๋ผ์ด๋ฉ์ด ํ์ํ์ง๋ง @Builder ๋กฌ๋ณต ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ถ์ ํด๋น ๊ณผ์ ์ ์๋ตํ๊ณ ํจ์ฌ ๊ฐ๊ฒฐํ ์ฝ๋๊ฐ ๊ฐ๋ฅํด์ก๋ค.

๋ค์ ์คํํด ๋ณด๋ฉด ์ฝ์์ฐฝ์ ๊ฐ์ด ์ ๋์ด์จ๋ค. id๊ฐ์ ์ฃผ์ง ์์๊ธฐ ๋๋ฌธ์ 0(์ซ์ null์ผ ๋์๋ 0)์ผ๋ก ๋์ด์จ๋ค.
