๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/์„œ๋ฒ„ ํ™˜๊ฒฝ

[Lombok] ๋กฌ๋ณต ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ• :: ๋งˆ์ด์ž๋ชฝ

by ๐ŸŒปโ™š 2018. 9. 4.

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
 

cs



 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";
    }
}

cs





์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.





๋งŒ์ผ ์ „์ž์ •๋ถ€ํ”„๋ ˆ์ž„์›Œํฌ ์ฒ˜๋Ÿผ ์ปค์Šคํ…€๋œ ์ดํด๋ฆฝ์Šค ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ ์šฉ์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด,

 Lombok jarํŒŒ์ผ์„ ์‹คํ–‰์‹œ์ผœ์ค„๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‹คํ–‰์‹œ์ผœ์ฃผ์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด๋œ๋‹ค.

1
Jamong@macui-MacBook-Pro ๎‚ฐ ~/Downloads ๎‚ฐ java -Dlombok.installer.fullpath -jar lombok.jar
cs


๋Œ“๊ธ€