본문 바로가기

3.1 SpringBoot/Java19

[Java] 웹 스크래핑하기 (Jsoup) 웹 스크래핑(Web Scraping): 웹 페이지에서 특정 데이터를 추출하는 기술입니다. 페이지의 HTML 코드를 분석하여 원하는 텍스트, 이미지, 링크 등 다양한 정보를 추출한 후 저장하는 기술 자바로 웹 스크래핑하기 위해서 필요한 jsoup 라이브러리를 사용하보겠습니다.Jsoup라이브러리는 자바로 만들어진 HTML parser로 DOM 구조를 추적하거나 CSS 선택자를 사용하여 데이터를 찾아 추출할 수 있습니다.HTML의 구조와 데이터를 손쉽게 관리 할 수 있게 도와주는 라이브러리이다. Jsoup 공식사이트https://jsoup.org/ SpringBoot에서 사용해보기 (Gradle기준)(일반 java프로젝트에서는 lib폴더에 Jar를 넣으면된다. https://jsoup.org/download.. 2024. 10. 5.
[Java/구현] 집합 집합(Set)특정 조건에 맞는 원소들의 모임집합 표현 방법원소나열법 : A = { 1, 2, 3, 4, 5 }조건제시법 : A = { A|A는 정수, 0벤 다이어그램자바에서는 주로 집합에 HashSet을 사용한다Java로 표현HashSet - java에서 집합으로 사용HashSet a = new HashSet();a.add(1);a.add(1);a.add(3);a.add(1);System.out.println(a); //[1, 3]직접구현class MadeSet{ ArrayList list; //기본생성자 MadeSet(){ this.list = new ArrayList(); } //원소 한개받고 처리 MadeSet(int a){ this.lis.. 2024. 8. 9.
[Java/기초] Stream 보호되어 있는 글 입니다. 2024. 8. 5.
[Java/기초] 주석 주석(comments)프로그램 코드의 내용에 전혀 영향을 미치지 않는 말 코멘트를 남기는 행위한줄 주석 //// 이후로부터 그줄의 마지막까지 주석으로 인식// 한줄주석 int c = 0;블록 주석 /* *//* 은 주석 시작을 표시함 */ 는 주석 종료를 표시주로 여러줄에 걸쳐 주석 사용보통 프로그램 처음에 작성자와 소스파일 관련 정보를 주석으로 주입할때 사용```/*블록 주석/문서화 주석블록 주석에 *를 한개더 붙여서 사용/** */javaDoce의 문서를 볼수있게 처리함/******/Javadoc이란?Java 소스 코드에서 HTML 형식의 API 문서를 생성하는 문서 생성기소스코드 파일에서 문서화 주석로 기술된 설명을 추출해 API 문서로 변환한다 2024. 7. 22.
[Java/기초] 스트림 스트림(Stream)배열,컬렉션 등의 데이터를 하나씩 참조하여 처리가능한 기능for문의 사용을 줄여 코드 간결화주로 배열,컬렉션을 사용할땐 for 또는 foreach 문을 돌면서 요소 하나씩 꺼냄코드의 양이 많아져 여러 로직이 섞이게 되고, 여러 루프를 타는경우 발생스트림은 배열 또는 컬렉션 인스턴스에 함수들을 조합해서 가공된 결과 얻음. 즉, 배열과 컬렉션을 함수형으로 처리스트림 구성크게 3가지로 구성Stream 생성중개 연산최종 연산데이터소스객체.Stream생성().중개연산().최종연산()스트림 생성배열 스트림String[] arr = new String[]{"A","B","C"};Stream stream = Arrays.stream(arr);컬렉션 스트림ArrayList list = new Arra.. 2024. 7. 21.
[JAVA/기초] 람다식 람다 표현식(Lambda Expression)메소드 대신 하나의 식으로 표현익명 함수 (Anonymous function)(매개변수,..) ->{실행문}(int x,inty)->{return x+y;}장단점장점일반적으로 코드가 간결코드 가독성이 높아짐생산성 증가단점재사용 불가 (익명)디버깅 어려움 ( 메소드를 중간중간 확인 하면서 불가)재귀함수로는 맞지 않음 (이름이 없다보니 재사용불가)인터페이스에 사용예시 interface B { public abstract int plus(int num1, int num2); //public abstract int minus(int num1, int num2);}public class A { public static void main(String[] .. 2024. 7. 20.
[JAVA/기초] 컬렉션프레임워크 컬렉션프레임워크 (Collection Framework)여러 데이터를 편하게 관리할 수 잇게 만들어 놓은 것자료구조 및 알고리즘을 구조화대표 인터페이스List 인터페이스class : ArrayList LinkedListSet 인터페이스class : HashSet, TreeSetMap 인터페이스class : HashMap , TreeMapList 인터페이스순서가 있는 데이터의 집합데이터 중복 허용대표 구현 클래스ArrayList주요 메소드 : add() ,remove(인덱스) ,get() , size(), indexOf(), contains()LinkedList주요 메소드 : add() ,addFirst(), addLast(), remove(), removeFirst(),removeLast(),size(.. 2024. 7. 19.
[java/기초] 예외처리 예외(Exception)정상적이지 않은 case개발자가 해결가능한 문제사용자의 잘못된 조작, 개발자의 실수로 인한 문제 발생예외가 발생시 프로그램 종료, 단 예외 처리를 통해 정상적인 상태로 실행 가능ex) 0으로 나누기, 배열의 인덱스 초과, 없는 파일 열기 ...에러 (Error)개발자가 해결이 불가능한 문제하드웨어의 오류 혹은 고장으로 인한 문제 발생에러가 발생시 프로그램 종료후, 그후 정상적인 상태로 실행 불가능예외 처리(Exception Handling)정상적이지 않은 case에 대한 적절한 처리 방법try{//에외가 발생할수도 있는 부분;}catch(예외case1){//예외case1 발생시 실행문}catch(예외case2){//예외case2 발생시 실행문}finally{//항상 실행이 되는 부.. 2024. 7. 16.
[Java/기초] 입출력 입출력콘솔 입출력파일 입출력콘솔콘솔 입력입출력 방식중에 콘솔로 입력받는 방법System.in.read()char값을 한개를 받아옴입력받고 엔터와 같은 나머지 데이터도 남겨놓기때문에 다 사용후에 남은데이터를 소진해야함소진하지 않을경우 입력스트림에 남은 값들이 추후 영향예외처리 권장 try-catch or throws IOExceptionint a = System.in.read() - '0'; // char 값이기 때문에 아스키코드로 저장 System.in.read(new byte[System.in.available()]) //남은데이터 소진 //System.in.available():메소드는 입력 스트림에 읽을 수 있는 데이터의 크기를 바이트 단위로 반환하는 메소드입니다.InputStreamReader배열.. 2024. 7. 14.
[Java/기초] 내부클래스 내부클래스(Inner Class)클래스 안에 선언한 클래스를 의미긴밀한 관계가 있는 클래스를 클래스 안에 선언하여 사용하는 방법특징내부 클래스에서 외부 클래스 멤버에 접근가능외부에서는 내부 클래스에 접근 불가코드의 복잡성을 줄임종류인스턴스 클래스 (instance class)외부 클래스의 멤버변수 선언 위치에 선언static class는 바로 접근가능 정적 클래스 (static class)외부 클래스의 멤버변수 선언 위치에서 선언하는 static 키워드가 붙은 내부 클래스외부클래스는 static이 아니라 정적클래스에서 외부클래스 변수를 사용할경우 경고지역 클래스 (local class)외부 클래스의 메소드안에서 선언선언된 메서드 블록 영역 내부에서만 사용가능익명 클래스 (anonymous class)클래.. 2024. 7. 14.
728x90