원본 본문으로 이동하기

스프링 4 입문강의 : 4. 롬복 / Lombok !!

박용서 - 이전강의 - https://gs.saro.me/#!m=elec&jn=676 이전 강의에서 이것저것 많이 썼기 때문에, 이번 장에선 조금 쉴 겸 롬복을 다뤄보도록 하겠습니다. 롬복은 스프링에 관련된 것은 아니지만, 자바에서 전반적으로 사용할 수 있습니다. 스프링 또한 getter, setter 가 많이 쓰여, 소스가 어지러운 현상이 있기에 이번 장을 추가하게 되었습니다. - 롬복은 getter, setter 외에도 많은 기능들이 있습니다. - 참고 : https://gs.saro.me/#!m=pd&pn=70 이전 강의에 쓰여진 코드 일부 package com.first.jpa; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name="simple_comment") public class SimpleComment implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="comment_no") private long comment_no; @Column(nullable = false) private String text; @Column(insertable = false, updatable = false) @Temporal(TemporalType.TIMESTAMP) private Date datetime; public long getComment_no() { return comment_no; } public String getText() { return text; } public void setText(String text) { this.text = text; } public Date getDatetime() { return datetime; } } 필요없는 getter, setter를 생략했는데도 소스가 get / set 으로 반은 차지하는 느낌이 듭니다. 1. 롬복을 설치해보자! - 이전 강의에서 작업했던 first 프로젝트를 불러옵니다. - pom.xml 의 <dependencies></dependencies> 사이에 아래 코드를 추가합니다. <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.8</version> <scope>provided</scope> </dependency> - 롬복이 getter / setter 를 만들어주더라도 이클립스가 이를 인식해야 인텔리센스를 만들고 오류도 나지 않기 때문에 아래와 같은 작업을 해주셔야합니다. 방법 1 - 메이븐repository경로/org/projectlombok/lombok/1.16.8/lombok-1.16.8.jar 실행 방법 2 - https://projectlombok.org/mavenrepo/index.html 에서 lombok.jar 를 다운받아 실행. 실행이 안될때... 필자는 7zip을 쓰기 때문에 몰랐지만... 주변사람들 중 특정 압축 프로그램을 사용하고 있으면 jar를 해당프로그램이 선점하고있어서 압축파일이 열리는 경우가 있습니다. 해당 프로그램 옵션에서 제외하거나 java 명령어로 실행시켜주시면 됩니다. 실행 후 IDE(STS / 이클립스)를 찾아서 입력해줍니다. 이 과정이 끝나면 해당 IDE는 린트 / 오토컴파일 / 인텔리센스에서 롬복이 인식되어 사용할 수 있습니다. 기타 - 이 과정에서 프로젝트 최상위에 오류표시가 되어있다면. - 우클릭 -> Maven -> Update Project 를 해주시면 됩니다. 2. 롬복을 적용해보자! 위 SimpleComment 클래스를 다음과 같이 바꿔줍니다. package com.first.jpa; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import lombok.Data; import lombok.Getter; import lombok.Setter; @Entity @Table(name="simple_comment") @Data public class SimpleComment implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="comment_no") @Getter private long comment_no; @Column(nullable = false) @Getter @Setter private String text; @Column(insertable = false, updatable = false) @Temporal(TemporalType.TIMESTAMP) @Getter private Date datetime; } - 이렇게 해서 훨씬 보기 깔끔해졌습니다. - 롬복을 사용할 클래스엔 @Data 를 써주고 @Getter @Setter 를 지정해주시면 됩니다. - 이제 직접 실행하여 제대로 작동하는지 확인해봅시다. 3. 좀 더 응용하면 아래와 같이 쓸 수 있습니다. - 롬복을 적용하지 않은 예제 ....... import java.util.Date; public class TextData { public long getNo() { return no; } public void setNo(long no) { this.no = no; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getLink() { return link; } public void setLink(String link) { this.link = link; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } private long no; private String subject; private String text; private String link; private Date date; } - 롬복 적용 import java.util.Date; import lombok.Data; import lombok.Getter; import lombok.Setter; @Data @Getter @Setter public class TextData { private long no; private String subject; private String text; private String link; private Date date; } - 까... 깔끔해!! 여기 까지 하셨다면 앞으로의 강의는 리눅스에 톰켓과 MySQL을 설치하고 war 배포를 해보는 강의를 하도록 하겠습니다. 다음강의 https://gs.saro.me/#!m=elec&jn=679 스프링 4 입문강의 0. STS 설치 - https://gs.saro.me/#!m=elec&jn=673 1. Spring Starter Project 를 이용한 JSTL 예제 - https://gs.saro.me/#!m=elec&jn=674 2. Spring Starter Project 를 이용한 Mustache 예제 - https://gs.saro.me/#!m=elec&jn=675 3. 데이터베이스 연동 ( MySQL / 하이버네이트 ) - https://gs.saro.me/#!m=elec&jn=676 4. 롬복 / Lombok !! - https://gs.saro.me/#!m=elec&jn=677 5. 우분투 리눅스 Java / Tomcat / MySQL 설치 - https://gs.saro.me/#!m=elec&jn=679 6. 리눅스 서버에 배포 - https://gs.saro.me/#!m=elec&jn=680 - 이클립스 스프링 자바