Lombok 라이브러리에서 제공하는 객체 생성 패턴으로, 복잡한 객체 생성 과정을 간단하고 직관적으로 표현할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 목적 | 복잡한 객체 생성을 명확하고 간결하게 표현 |
| 장점 1 | 매개변수 순서에 구애받지 않음 (유연한 생성) |
| 장점 2 | 필요한 매개변수만 선택적으로 초기화 가능 |
| 관련 라이브러리 | Lombok (@Builder) |
| 메소드 | 설명 |
|---|---|
.builder() | 빌더 객체를 생성 (빌드 시작) |
.속성명(속성값) | 지정한 속성명에 값을 대입 |
.build() | 설정된 속성값으로 객체 생성 (빌드 완료) |
@Builder // Lombok 어노테이션 추가
public class MemberDto {
private String name;
private int age;
private String email;
}
// 빌더 패턴 사용 예시
MemberDto member = MemberDto.builder()
.name("유재석")
.age(41)
.email("yoo@test.com")
.build();
| 규칙 | 설명 |
|---|---|
| 1️⃣ 생성자 존재 규칙 | 존재하지 않는 생성자는 호출 불가 |
| 2️⃣ 순서 제약 존재 | 매개변수 순서를 바꾸면 오류 또는 다른 의미로 인식 |
| 3️⃣ 유연성 부족 | 특정 생성자만 사용할 수 있어 제약이 큼 → Builder로 극복 |
웹페이지에서 원하는 데이터를 자동으로 수집하는 기술입니다.
| 페이지 종류 | 설명 | 사용 라이브러리 |
|---|---|---|
| 정적 페이지 | HTML 문서 내에서 데이터가 바로 존재 | Jsoup |
| 동적 페이지 | HTML 내 JS 스크립트로 데이터가 로딩됨 | Selenium |
웹사이트가 크롤러 접근을 허용하거나 제한하는 규칙 파일입니다.
웹사이트주소/robots.txthttps://example.com/robots.txtHTML 문서를 다루는 Java 기반 크롤링 라이브러리입니다.
📦 https://mvnrepository.com/ 에서 Jsoup 검색 후 Maven/Gradle 의존성 추가
| 메소드 | 설명 |
|---|---|
Jsoup.connect(URL).get() | URL의 HTML을 Document 객체로 불러오기 |
document.selectFirst("CSS선택자") | 첫 번째 해당 엘리먼트 추출 |
document.select("CSS선택자") | 여러 개의 Elements 리스트로 추출 |
element.text() | 요소의 텍스트 데이터 추출 |
element.attr("속성명") | 해당 마크업 속성값 추출 (예: src, href 등) |
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupExample {
public static void main(String[] args) throws Exception {
// 1. HTML 소스를 Java 객체로 변환
Document document = Jsoup.connect("https://example.com").get();
// 2. 특정 태그 선택
Elements elements = document.select("div.content h2");
// 3. 데이터 출력
for (Element e : elements) {
System.out.println(e.text());
}
}
}