웹 크롤링(실시간 데이터 수집) 정식 명칭은 web scraping이며, 웹 사이트에서 원하는 정보를 추출하는 것을 의미한다. 보통 웹 사이트는 HTML 기반이므로 정보를 추출할 페이지에서 개발자 모드 실행 후 원하는 태그를 검색하는 스킬이 요구된다. 웹 크롤링 라이브러리 1. Jsoup 정적 데이터를 비교적 빠르게 수집할 수 있지만 브라우저가 아닌 HTTP Request를 사용하기 때문에 동적 데이터를 수집하기 위해서는 해당 서버의 인증 키 요구 등 수집할 수 없는 경우가 많다. 2. Selenium Jsoup에 비해 느리지만 브라우저 드라이버를 사용하여 동적 데이터도 수집 가능하다. 주로 python에서 많이 사용 ※ 셀레니움 사용 시 주의사항 - 브라우저의 url을 변경할 때에는, 미리 WebEle..
■date, calendar date > 내부API(sql, util / 주로 util 사용) pattern -> (개발자들) 약속 (패키지 : dateTest) ■파일 입출력(Java Application 관점) 자바입장(관점)에서 보기 java -> txt : 출력 / txt -> java : 입력 ■Stream 데이터가 전송될 때 필요한 연결통로 (byte(0,1)로 변환해서) 출력 시 byte 변환 방식 -> encoding 방식 / 도착지에서 decoding encoding, UTF-8 전 세계에서 많이 사용 완성형(MS949), 조합형(효율적, UTF-8, 가변형) ■stream 개별처리(byte로 보냄) buffer 임시저장공간(일괄처리를 위한)(완성된 문자나 문자열을 보냄), stream ..
쓰레드가 동시에 있으면 제어할 수 없음. 하나하나의 쓰레드가 들어와야 제어권이 부여됨 멀티 쓰레드로 구현했는데 여러개가 있으면 오류 생김 >>하나씩 접근해야 해. 동기화! 내가 쓰레드를 제어하기 위해서 사용 wait을 쓰려면 동기화를 해야 함. 패턴 설계할 때 쓰는 거구나~ 내가 쓰는 코드는 다른 사람도 쓰니까~ 약속한 설계 방식이구나~ 싱글톤패턴 무조건 객체는 단 한 개, 그걸 돌려서 쓰자 다른 곳에서 생성자를 만들지 못하게 해줌. 객체는 무조건 한 개만 만들고 돌려 쓴다. 쓰레드가 멈췄을 때(join,wait,sleep) 쓰레드를 멈출 수 있다 멈추고 싶을 때 오류 걸려서 catch로 탈출한다. -------------------------------------------- Thread 종료 방법 1..
■프로그램 : 소스코드로 잘 짜여진 틀 : 실행되지 않은 상태. ■프로세스 : 실행된 프로그램. ■쓰레드 : 프로세스 처리 경로. 서버에 관련된 내용을 이해하기 위함 실무에서 잘 쓰진 않지만 알고는 있어야 : 프로세스 안에서 처리하는 경로의 갯수 ■단일 쓰레드(경로가 1개 / 비효율적), 멀티 쓰레드(경로가 여러 개) - 단일 쓰레드(싱글 쓰레드) 처리 경로를 한 개만 가지고 있기 때문에 직렬적이다. 동시에 많은 양을 처리하기 힘들기 때문에 상대적으로 비효율적이다.(하나씩 처리) 하지만 하나의 작업에 문제가 발생하더라도 다른 작업에는 영향을 끼치지 않는다.(각각의 작업이 독립적) 따라서 안정성이 보장되고 설계 시 멀티 쓰레드에 비해 쉽다. - 멀티 쓰레드(다중 쓰레드) 하나의 프로세스를 동시에 처리하는 ..
■자료구조 : 데이터 관리하고 저장하는 것. 의미 없던 데이터를 자료구조를 통과하면 하나의 정보가 됨. ArrayList : 여러 개 데이터가 들어올 때, index로 데이터 관리할 때 사용 Set : 집합 - 구현 클래스 HashSet 집합에서는 중복되는 원소를 포함할 수 없는 것처럼 HashSet이라는 자료구조는 중복되는 값을 무시한다. 저장된 값들은 인덱스가 없기 때문에 순서가 없다. 값의 유무 검사에 특화되어 있는 자료구조이고 해쉬코드로 유무 검사가 진행되고 속도가 상대적으로 좋다. 순서가 없어서 값을 가져올 수가 없음. 검사에 적합한 자료구조, contains() 특화, DBMS에서는 검색, 조회 빨라야 함 - 순서 부여 : iterator() 순서가 없는 객체에 순서를 부여하거나, 순서가 있어..
■Object클래스 1.toString() 2.equals() 3.hashCode() JVM에서 관리하는 중복없는 값. 실제 메모리에 할당되는 주소와 다르다. String 클래스에서는 필드의 해쉬코드값이 아닌 필드 안에 있는 문자열 상수값의 해쉬코드값을 리턴하도록 재정의하였다. ※ 컬렉션 프레임워크 챕터에서 재정의 목적을 이해하도록 한다. (해쉬코드) 메모리 관리를 JVM이 해줌. 필드 > JVM(에 할당할 때 갖는 필드의 고유한 값을 hashCode) > hashCode값이 메모리에 올라가면 주소값 메모리까지 가기전의 주소 실제 주소가 부여되기 이전의 주소 메모리에 올리기 전에 준비할 때 쓰는 주소 자바 자체적으로 만들어 놓은 중복없는 값 hashCode가 부여가 됐으면 거기에 맞게끔 실제 메모리에 할..
■ Day1~10 총정리 출력 메소드 : 오류 구체화 변수 : 저장공간 자료형 : int(4byte), float(4byte), double(8byte), char(2), String(?), boolean(1) 1byte가 정보의 최소단위 형변환 : 문자+정수 = 정수 입력 메소드 연산자 : 최단삼쉬관리삼대, 결합성 제어문 : 조건문, 반복문(for : 반복 횟수를 알 때, while : 반복 횟수를 모를 때) 배열 : 저장공간의 나열, 시작 주소, 인덱스 0부터 시작? 배열은 시작 주소를 가지고 있으니까 [], 1. 여러 칸 만들기, 2.규칙성 부여 메소드 : 이름(), 저장공간(소스코드의 주소값), 매개변수?화면에서 입력받은 값을 전달받는 공간 클래스 : 반, 한 번씩만 선언하기 위해서, 재사용, 1..
■ 추상 클래스 설명 클래스가 추상적이라는 말이 아님 원래 모든 클래스가 추상적임 클래스 안에 선언한 필드 중에서 추상적인 개념이 있다는 뜻 추상 메소드를 선언할 수 있는 클래스 클래스 선언하면 그 안에 필드가 구현이 안되어있는 메소드 >> 추상 메소드 >> {}가 없다는 뜻 메소드를 선언할 때 구현이 되어 있으면 {} {}가 비어있어도 구현된 것 실무에서는 {}를 '바디'라고 칭함 반드시 재정의해야 하는 메소드는 추상 메소드 상속받으면 무조건 오류 >> 재정의하라고 강제성 부여 ■ 추상 클래스 필드 안에 구현이 안 된 메소드(바디가 없음)가 선언되어 있는 클래스를 추상클래스라고 한다. 이 때 구현되지 않은 메소드를 추상 메소드라고 부른다. 반드시 재정의를 통해 구현을 해야지만 메모리에 할당되기 때문에 ..
Bank