Java
[Java] 크롤링, Jsoup과 Selenium 중 어떤 도구를 선택해야할까?
[Java] 크롤링, Jsoup과 Selenium 중 어떤 도구를 선택해야할까?
2025.07.15웹 크롤링은 인터넷에 흩어진 정보를 자동으로 수집하고 분석하는 데 매우 유용한 기술입니다. 가격 비교, 뉴스 수집, 데이터 정제, 트렌드 분석 등 다양한 분야에서 활용되며, 반복적인 수작업을 자동화할 수 있다는 장점이 있습니다.Java 환경에서 웹 크롤링을 구현할 때 가장 많이 사용되는 Jsoup과 Selenium 두 가지 도구가 존재합니다. 이 두 도구는 목적과 특성에 따라 분명한 차이를 가지고 있어, 상황에 맞는 선택이 중요합니다.이번 포스팅에서는 Jsoup, Selenium의 특징, 실제 크롤링을 수행하는 예제를 통해 어떤 방식으로 동작하는지, 각 도구의 차이점에 대해 알아보도록 하겠습니다. SSR과 CSR의 개념Jsoup과 Selenium의 차이를 이해하기에 앞서, 웹 사이트가 데이터를 사용자에게..
[Java] Stream이란? 사용하는 이유와 활용 방법
[Java] Stream이란? 사용하는 이유와 활용 방법
2025.03.04Java에서는 배열, 컬렉션, 리스트 등을 사용해 많은 데이터를 처리합니다.기존에는 반복문이나 반복자(iterator)를 사용해 데이터를 하나씩 꺼내 처리했지만, 이러한 방식은 코드가 길어지고 가독성이 떨어진다는 단점이 있습니다. 또한, 코드의 재사용성이 낮아 유지보수에도 어려움이 따릅니다.이러한 불편함을 줄이고 더욱 직관적이고 효율적으로 데이터를 처리할 수 있도록 도와주는 것이 Stream API입니다. Stream을 활용하면 더욱 간결하고 가독성 높은 코드로 데이터를 다룰 수 있습니다.이번 포스팅에서는 Java의 Stream이 무엇인지, 사용하는 이유와 활용 방법에 대해 알아보도록 하겠습니다. Java Stream이란?`Stream API는 JDK 8 부터 추가된 기능` 중 하나입니다. `컬렉션 데이..
Entity에 Setter사용을 지양하는 이유 feat.DTO, Entity 간 변환
Entity에 Setter사용을 지양하는 이유 feat.DTO, Entity 간 변환
2024.09.26JPA학습을 하다 보면 한 번쯤은 Entity에 Setter사용을 지양하자 라는 내용을 들어보았을 것입니다.이번 포스팅에서는 Entity에 Setter사용을 지양하는 이유와 Setter를 사용하지 않고 데이터 저장 및 수정, DTO, Entity 간 변환에 대하여 알아보겠습니다. Entity에 Setter사용을 지양하는 이유Entity의 경우 비즈니스 로직이 존재하고 실제 데이터가 변경되는데 그 과정에서 Setter를 사용하여 값을 설정할 경우 몇 가지 불리한 점이 존재합니다. 사용자의 의도파악이 불분명하다Member member = new Member();member.setEmail("tao@exemple.com");member.setName("오팔봉");Setter를 사용해 값을 설정할 경우 생성하..
Java - Scanner 클래스 next(), nextLine()의 차이
Java - Scanner 클래스 next(), nextLine()의 차이
2024.05.27next()와 nextLine()의 차이 next()공백( \t ), 엔터( \n )를 기준으로 한 단어 또는 한 문자씩 입력받는다.문자열 내에 엔터( \n ), 공백( \t ) 등은 입력되지 않는다.nextLine()엔터( \n )를 포함한 문자열 전체를 입력받는다.버퍼에 포함된 개행문자를 포함해서 입력받는다.한마디로, next()와 nextLine()은 개행문자의 포함 유무로 나뉜다. 개행문자란?표시 위치를 다음의 행으로 옮기는 데 사용되는 문자. 쉽게 말해 Enter( \n )등 을 의미한다. 예를 들어보자 System.out.print("첫번째 정수를 입력하세요: ");int num1 = scanner.nextInt();System.out.print("연산자를 입력하세요: ");String o..