๐ Lombok
- ๊ฐ๋จํ ์ด๋
ธํ
์ด์
์ถ๊ฐ๋ก ์๋ฐ๋น ์คํ์ผ์ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐ผ Lombok ์ค์นํ๊ธฐ
- ๋กฌ๋ณต ๋ค์ด๋ก๋์์ ๋ค์ด๋ก๋ ํ ์คํ
- sts.exe์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์์ ์ง์ (IDE ์ค์ ํ๊ธฐ)
- sts ์ฌ์์
- maven repository์์ ๊ฐ์ ๋ฒ์ ์ maven์ ๋ณต์ฌ
- pom.xml์ dependencies์ ๋ถ์ฌ๋ฃ๊ธฐ
- ํ๋ก์ ํธ ์ฐํด๋ฆญ -> maven -> update project ... ์คํ
- Package Explorer์ Maven Dependencies์์ ํด๋น ๋ฒ์ ์ lombok์ด ์ ์ค์น๋์๋์ง ํ์ธ
๐ผ Lombok์ ์ด๋
ธํ
์ด์
๋ค
-
@Getter
- ํด๋์ค ์์ ๋ถ์ด๋ฉด ํด๋น ํด๋์ค์ ๋ชจ๋ ํ๋์ ๋ํ Getter๋ฅผ ์์ฑํ๋ค
- ํ๋ ์์ ๋ถ์ด๋ฉด ํด๋น ํ๋์๋ง Getter๋ฅผ ์์ฑํ๋ค
-
@Setter
- ํด๋์ค ์์ ๋ถ์ด๋ฉด ํด๋น ํด๋์ค์ ๋ชจ๋ ํ๋์ ๋ํ Setter๋ฅผ ์์ฑํ๋ค
- ํ๋ ์์ ๋ถ์ด๋ฉด ํด๋น ํ๋์๋ง Setter๋ฅผ ์์ฑํ๋ค
-
@ToString
- ํด๋น ํด๋์ค์ toString()์ ์์์ ์ ๋นํ ๊ตฌํํด์ค๋ค
-
@NoArgsConstructor
- ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์์ฑํ๋ค
-
@AllArgsConstructor
- ๋ชจ๋ ํ๋๊ฐ์ ์ด๊ธฐํํด์ผ ํ๋ ์์ฑ์๋ฅผ ์์ฑํ๋ค
-
@RequiredArgsConstructor
- ํ์๋ก ์ฑ์์ผํ๋ ํ๋๋ง ์ด๊ธฐํํ๋ ์์ฑ์๋ฅผ ์์ฑํ๋ค
- @NonNull์ด ๋ถ์ด์๋ ํ๋๋ฅผ ํ์๋ก ์ฑ์์ผ ํ๋ ํ๋๋ก ๊ฐ์ฃผํ๋ค
-
@EqualsAndHashCode
- ํด๋น ํด๋์ค์ equals()์ hashCode()๋ฅผ ์ ์ ํ๊ฒ ์ค๋ฒ๋ผ์ด๋ฉ ํ๋ค
- equals()๋ ๋ชจ๋ ํ๋์ ๊ฐ์ด ์ผ์นํ๋ฉด ๊ฐ์ ๊ฐ์ฒด๋ก ์ธ์ ํ๋ค
- hashCode()๋ ๋ชจ๋ ํ๋์ ๊ฐ์ด ์ผ์นํ๋ฉด ๊ฐ์ ๊ฐ์ ์์ฑํ๋ค
-
@Data
- @Getter
- @Setter
- @ToString
- @EqualsAndHashCode
- @RequiredArgsConstructor๋ฅผ ๋ชจ๋ ํฉ์น ์ด๋
ธํ
์ด์
- ์์ฃผ ์ฐ๋ ์กฐํฉ .. ?
๐ผ Lombok ์ฌ์ฉํ๊ธฐ
@Data
public class EmployeeDTO {
String first_name;
String last_name;
Date hire_date;
Integer salary;
}
- ํด๋์ค ์์ฑ ํ ๋ฉค๋ฒ๋ณ์๋ฅผ ์ถ๊ฐํ๋ค
- ํด๋์ค์ @Data ์ด๋
ธํ
์ด์
์ ์ถ๊ฐํ๋ค
- Lombok์ด Getter, Setter, ์์ฑ์, toString๋ฑ์ ๋ชจ๋ ์๋์ผ๋ก ์์ฑํด์ค๋ค