Lombok์ ์ฌ์ฉํด๋ณผ๊ฑฐ๋ค.
์์ ํ๋ก์ ํธ์์๋ ๊ตณ์ด... Lombok์ ์ ์ฌ์ฉํ๋ ์ถ๋ค.
ํ์ง๋ง, ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด Lombok์ด ์ ๋ง ์ ์ฉํด์ง๋ค.
Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด, VO, DTO์ ๊ฐ์ ํด๋์ค์์ Getter ์ Setter๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค๋ค.
์ฆ, ๊ตณ์ด Getter์ Setter๋ฅผ ๋ง๋ค์ด ์ฃผ์ง ์์๋ ์์์ ์์ฑํด์ค๋ค.
์ดํด๋ฆฝ์ค์ Lombok์ ์ฉ์ ์ํด jar ํ์ผ์ ๋ฐ์์ค๊ณ , ํฐ๋ฏธ๋ ํน์ ์ฝ์์ฐฝ์ผ๋ก ํ์ผ์ ์คํํด์ค๋ค.
https://projectlombok.org/download
1 2 3 | Jamong@macui-MacBook-Pro ๎ฐ ~ ๎ฐ cd Downloads Jamong@macui-MacBook-Pro ๎ฐ ~/Downloads ๎ฐ wget https://projectlombok.org/downloads/lombok.jar Jamong@macui-MacBook-Pro ๎ฐ ~/Downloads ๎ฐ java -jar lombok.jar |
jarํ์ผ์ ์คํ ์ํค๋ฉด ์๋์ ๊ฐ์ ์ฐฝ์ด ๋ฌ๋ค.
์ฌ์ฉํ๊ณ ์๋ ์ดํด๋ฆฝ์ค ์๋ํฐ๋ฅผ ์ฒดํฌํ๊ณ install/updateํ๋ฉด ๋!
๋ง์ฝ ์ดํด๋ฆฝ์ค๋ฅผ ์คํ์ํค๊ณ ์๋ค๋ฉด ์ฌ์คํ ์์ผ์ค๋ค.
Lombok์ ์ฌ์ฉํด์ฃผ๊ธฐ ์ํด์ ํ๋ก์ ํธ์ Maven์ถ๊ฐ ํด์ฃผ์ด์ผ ํ๋ค.
1 2 3 4 5 6 | <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.2</version> <scope>provided</scope> </dependency> | cs |
VO, DTOํด๋์ค์ @Data Annotation์ ์ฌ์ฉํด์ค๋ค.
1 2 3 4 5 6 7 | import lombok.Data; @Data public class LombokVO { String name; int age; } | cs |
Annotation์ ์ถ๊ฐํด์ฃผ๊ณ VOํด๋์ค์ ์์ฑํ์ง ์์ Getter์ Setter๊ฐ ์์ฑ๋๋ค.
๋ง์ผ ์์ฑ๋์ง ์์๋ค๋ฉด, ํ๋ก์ ํธ๋ฅผ clean์์ผ์ฃผ๊ณ Maven Clean ํ install์ ๋ค์ํด์ค๋ค.
์ ๋๋ก ๋ฐ์์ด ๋์๋ค๋ฉด, ์์ฑํ์ง ์์ Getter์ Setter๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
1 2 3 4 5 6 7 8 9 10 11 | @Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { LombokVO vo = new LombokVO(); vo.setName("์๋ชฝ"); vo.setAge(23); System.out.println(vo.getName() + " " + vo.getAge()); return "home"; } } |
์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ง์ผ ์ ์์ ๋ถํ๋ ์์ํฌ ์ฒ๋ผ ์ปค์คํ ๋ ์ดํด๋ฆฝ์ค ์๋ํฐ๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ ์ฉ์ด ๋์ง ์๋๋ค๋ฉด,
Lombok jarํ์ผ์ ์คํ์์ผ์ค๋ ์๋์ ๊ฐ์ด ์คํ์์ผ์ฃผ์ด์ ์ฌ์ฉํ๋ฉด๋๋ค.
1 | Jamong@macui-MacBook-Pro ๎ฐ ~/Downloads ๎ฐ java -Dlombok.installer.fullpath -jar lombok.jar | cs |
๋๊ธ