01. Intro
프로그래밍을 하면서 거의 비슷한 코드인데, 반복적으로 적게되는 코드를 마주 한 적 많이있다.
대표적으로 getter와 setter같은 것들이 있습니다. 프로그래밍에서는 이러한 것들을 “보일러 플레이트 코드”라고 합니다. 1890년대 신문사업에서, 광고나 컬럼같이 계속 사용하는 텍스트들을 강철로 인쇄판으로 찍어냈던 것에서 유례.
Java에서도 반복적인 코드를 쉽게 작성해주는 Lombok과 같은 라이브러리
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
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;
}
}
|
cs |
02. 롬복 사용 준비 - 설치
1. 롬복 라이브러리 추가
|
1
2
3
4
5
6
7
8
9
10
|
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
}
|
cs |
2. Plugins에서 Lombok을 검색한 후 설치합니다.

3. Settings > Annotation Processors 검색 후 Enable annotaion processing에 체크해줍니다.

03. 롬복 사용하기
설정을 마치셨다면 이제 아래의 코드처럼 사용이 가능합니다. 롬복 사용 전에는 getter, setter 코드가 반복적으로 엄청 많았는데, 아래 코드의 Getter, Setter만으로 대체된 부분이 보이시나요? 특히 자주 사용하는 생성자 관련 롬복 어노테이션도 아래 코드에 예시로 적어놨으니 참고하시면 좋을 것 같습니다. 실제 코드로 적어둔 생성자 코드들은 위에 적어둔 어노테이션으로 대체됩니다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
@Getter // getter()
@Setter // setter()
@Builder // 빌더 패턴의 보일러플레이트 구현
@NoArgsConstructor // 기본 생성자
@RequiredArgsConstructor // 필수 arguments가 있는 생성자
@AllArgsConstructor // 모든 arguments 가 있는 생성자
public class Car {
private String wheel01;
private String wheel02;
private String wheel03;
private String wheel04;
private String steeringWheel;
private final int carNumber;
private final Engine engine;
private Wiper wiper;
/**
// @NoArgsConstructor 예시
public Car() {
}
// RequiredArgsConstructor 예시
public Car(Engine engine, int carNumber) {
this.engine = engine;
this.carNumber = carNumber;
}
// AllArgsConstructor 예시
public Car(String wheel01, String wheel02, String wheel03, String wheel04, String steeringWheel, int carNumber, Engine engine, Wiper wiper) {
this.wheel01 = wheel01;
this.wheel02 = wheel02;
this.wheel03 = wheel03;
this.wheel04 = wheel04;
this.steeringWheel = steeringWheel;
this.carNumber = carNumber;
this.engine = engine;
this.wiper = wiper;
}
*/
}
|
cs |
'JAVA > Spring' 카테고리의 다른 글
| 2023.01.03 @PreAuthorize @Secured 사용하기 (0) | 2023.01.04 |
|---|---|
| 2023.01.02 Spring Security...ing (0) | 2023.01.02 |
| 2022.12.08 JPA 2 (0) | 2022.12.08 |
| 2022.12.07 JPA 기초 ...ing (0) | 2022.12.07 |
| 2022.12.06 Database와 SQL (0) | 2022.12.06 |