01. Intro

public class Car {
    private String wheel01;

    private String wheel02;

    private String wheel03;

    private String wheel04;

    private String steeringWheel;

    private int carNumber;

    private Engine engine;

    private Wiper wiper;

    public String getWheel01() {
        return wheel01;
    }

    public void setWheel01(String wheel01) {
        this.wheel01 = wheel01;
    }

    public String getWheel02() {
        return wheel02;
    }

    public void setWheel02(String wheel02) {
        this.wheel02 = wheel02;
    }

    public String getWheel03() {
        return wheel03;
    }

    public void setWheel03(String wheel03) {
        this.wheel03 = wheel03;
    }

    public String getWheel04() {
        return wheel04;
    }

    public void setWheel04(String wheel04) {
        this.wheel04 = wheel04;
    }

    public String getSteeringWheel() {
        return steeringWheel;
    }

    public void setSteeringWheel(String steeringWheel) {
        this.steeringWheel = steeringWheel;
    }

    public int getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(int carNumber) {
        this.carNumber = carNumber;
    }

    public Engine getEngine() {
        return engine;
    }

    public void setEngine(Engine engine) {
        this.engine = engine;
    }

    public Wiper getWiper() {
        return wiper;
    }

    public void setWiper(Wiper wiper) {
        this.wiper = wiper;
    }
}

<aside> ๐Ÿค” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋ฉด์„œ ๊ฑฐ์˜ ๋น„์Šทํ•œ ์ฝ”๋“œ์ธ๋ฐ, ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ๊ฒŒ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งˆ์ฃผ ํ•œ ์  ๋งŽ์œผ์‹œ์ฃ ? ๋Œ€ํ‘œ์ ์œผ๋กœ getter์™€ setter๊ฐ™์€ ๊ฒƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ โ€œ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œโ€๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1890๋…„๋Œ€ ์‹ ๋ฌธ์‚ฌ์—…์—์„œ, ๊ด‘๊ณ ๋‚˜ ์ปฌ๋Ÿผ๊ฐ™์ด ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ํ…์ŠคํŠธ๋“ค์„ ๊ฐ•์ฒ ๋กœ ์ธ์‡„ํŒ์œผ๋กœ ์ฐ์–ด๋ƒˆ๋˜ ๊ฒƒ์—์„œ ์™”๋‹ค๊ณ  ํ•˜๋„ค์š”.

</aside>

<aside> ๐Ÿ’ก Java์—์„œ๋„ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•ด์ฃผ๋Š” Lombok๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋กฌ๋ณต ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

</aside>

Project Lombok

02. ๋กฌ๋ณต ์‚ฌ์šฉ ์ค€๋น„ - ์„ค์น˜

  1. ๋กฌ๋ณต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'

	//lombok
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testCompileOnly 'org.projectlombok:lombok'
	testAnnotationProcessor 'org.projectlombok:lombok'
	//lombok
}
  1. Plugins์—์„œ Lombok์„ ๊ฒ€์ƒ‰ํ•œ ํ›„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

Untitled

  1. Settings > Annotation Processors ๊ฒ€์ƒ‰ ํ›„ Enable annotaion processing์— ์ฒดํฌํ•ด์ค๋‹ˆ๋‹ค.

Untitled

03. ๋กฌ๋ณต ์‚ฌ์šฉํ•˜๊ธฐ

<aside> ๐Ÿ’ก ์„ค์ •์„ ๋งˆ์น˜์…จ๋‹ค๋ฉด ์ด์ œ ์•„๋ž˜์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋กฌ๋ณต ์‚ฌ์šฉ ์ „์—๋Š” getter, setter ์ฝ”๋“œ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์—„์ฒญ ๋งŽ์•˜๋Š”๋ฐ, ์•„๋ž˜ ์ฝ”๋“œ์˜ Getter, Setter๋งŒ์œผ๋กœ ๋Œ€์ฒด๋œ ๋ถ€๋ถ„์ด ๋ณด์ด์‹œ๋‚˜์š”? ํŠนํžˆ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ƒ์„ฑ์ž ๊ด€๋ จ ๋กฌ๋ณต ์–ด๋…ธํ…Œ์ด์…˜๋„ ์•„๋ž˜ ์ฝ”๋“œ์— ์˜ˆ์‹œ๋กœ ์ ์–ด๋†จ์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ์ฝ”๋“œ๋กœ ์ ์–ด๋‘” ์ƒ์„ฑ์ž ์ฝ”๋“œ๋“ค์€ ์œ„์— ์ ์–ด๋‘” ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

</aside>