Post

20개의 패킷을 40명에게 전달할 때 서버는 어느정도 시간이 걸릴까?
위 상황을 테스트 하기가 어려워서(더미클라도 없고.. 혼자서 40개 클라는 못킨다ㅇ<-<) 소스코드로 알아보려고 수정하였다.
for(int i = 0; i < 20; ++i)
{
for(int j = 0; j < 40; ++i)
{
Packet* p = new Packet();
SendPacket(p);
}
}


그런데 서버->클라 패킷 전달 횟수만 생각하고 패킷 생성 개수는 생각하지 않았다 ㅇ<-<
그래서 20개의 패킷만 생성해야하는데 800개의 패킷을 생성함;;; 시간도 엄청걸리고 기존의도와 완전히 달라짐...

아래처럼 SendPacket에서 40명한테 전달하도록 소스를 수정했다.

for(int i = 0; i < 20; ++i)
{
Packet* p = new Packet();
SendPacket(p);
}




Post

네이버 뉴스 크롤링


package Ex;


import java.io.IOException;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import org.jsoup.nodes.Element;


public class ExR {

// static String BASE_URL_F = "URL="; // 페이지 나오기 전 "="까지 복사해서 붙여넣음

// static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

// static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

// static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소


static String BASE_URL_F = "https://search.naver.com/search.naver?where=nexearch&sm=tab_htk.nws&ie=utf8&query=%EC%84%9C%ED%95%B4+%EA%B5%B0+%ED%86%B5%EC%8B%A0%EC%84%A0+%EB%B3%B5%EC%9B%90\r\n";

static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소



public static void main(String[] args) throws IOException

{

// 뉴스 URL

Document doc = Jsoup.connect("http://news.naver.com/main/hotissue/read.nhn?mid=hot&sid1=100&cid=1049580&iid=36776687&oid=001&aid=0009801535&ptype=052").get();

//System.out.println(doc); 

// 개발자도구 F12를 눌러서 본문을 찾는다. 만약 id라면 id=대신#, class= 라면 class대신.이다.

Elements body = doc.select("div#articleBodyContents");

System.out.println(body);

}

}


text 글 정제하기, 타이틀 가져오기


package Ex;


import java.io.IOException;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import org.jsoup.nodes.Element;


public class ExR {

// static String BASE_URL_F = "URL="; // 페이지 나오기 전 "="까지 복사해서 붙여넣음

// static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

// static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

// static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소


static String BASE_URL_F = "https://search.naver.com/search.naver?where=nexearch&sm=tab_htk.nws&ie=utf8&query=%EC%84%9C%ED%95%B4+%EA%B5%B0+%ED%86%B5%EC%8B%A0%EC%84%A0+%EB%B3%B5%EC%9B%90\r\n";

static String BASE_URL_B = "&refresh_star=0"; // "=" 뒤에 숫자를 제외한 나머지 부분을 붙여넣음

static int BASE_URL_PAGE = 1; // 페이지를 변경하기 위한 변수

static String COMPLETE_URL = BASE_URL_F + BASE_URL_PAGE + BASE_URL_B; // 완성된 URL 주소



public static void main(String[] args) throws IOException

{

//URL 연결

Document doc = Jsoup.connect("http://news.naver.com/main/hotissue/read.nhn?mid=hot&sid1=100&cid=1049580&iid=36776687&oid=001&aid=0009801535&ptype=052").get();

// 제목

Elements title = doc.select("h3#articleTitle");

String strTitle = title.text();

System.out.println(strTitle);

// 본문

Elements body = doc.select("div#articleBodyContents");

String str = body.text(); // 텍스트만 가져온다

System.out.println(str);

}

}



Post

1. R설치

R이란? 오픈소스로 통계, 데이터 시각화를 위한 언어

다운로드 URL : https://www.r-project.org/


2. R스튜디오 설치

R스튜디오란? 운영체제 환경에 상관없이 보편적으로 활용할 수 있는 오픈소스에 기반한 R관련 툴.

다운로드 URL : https://www.rstudio.com/


한국어 설정을 위한 기본 설정

Tools - Global Option - Code - Saving

Default text encoding 에서 UTF-8 을 선택하고 OK


3. Java 설치

다운로드 URL : http://www.oracle.com/technetwork/java/index.html


JDK 설치된 후 파일 경로

C:\Program Files\Java\jdk1.9.0_111

C:\Program Files\Java\jre8

C:\Program Fies (x86)\Java\jre8


Java 환경 변수 설정

제어판 - 시스템 - 시스템속성 - 고급 - 환경변수

시스템 변수를 새로만들기 클릭


* 폴더가 실제 있는지 확인할 것

변수이름 : CLASSPATH

변수 값 :  %classpath%;.


변수이름 : JAVA_HOME

변수 값 : C:\Program Files\Java\jdk-9.0.1


변수이름 : path

변수 값 : C:\Program Files\Java\jdk-9.0.1\bin


환경변수 잘 적용되었는지 확인(cmd 창에서 아래와 같이 친다)

java -version

java

javac


3개의 명령어가 잘 동작한다면 환경변수 설정이 잘 된것.

안된다면 다시 환경변수를 설정할 것.


4. 이클립스 설치

다운로드 URL : https://www.eclipse.org/


설치 후 Project , Packege, Class 순으로 생성한다.

Class 안에다가 소스를 넣으면 된다.



5. JSOUP 설치

HTML 형식의 STRING을 넘겨주면 자바에서 사용할 수 있는 DOM 객체로 만들어주는 라이브러리

(JSON 비슷한듯?)

다운로드 URL : https://jsoup.org/


설치 후 Project에서 오른쪽클릭으로 Preperties - Java Build Path - Libraries 에서 Add External JARs...클릭

그리고 나서 방금 다운받은 jar 파일을 클릭하고 확인.

그러면 라이브러리라 프로젝트 솔루션 창에 추가되어있다.


JSPOUP를 사용하기 위해 IMPORT 추가한다.



import java.io.IOException;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import org.jsoup.nodes.Element;




Post

2. 내부 조인, 외부 조인 차이

   - 내부 조인은 조건에 맞는 정보만 보여준다.

     외부 조인은 왼쪽에 있는 테이블의 정보를 모두 보여준다.

     이 때 오른쪽 테이블의 데이터가 없다면 NULL이 된다.


3. 레퍼런스 포인터 차이

   포인터는 참조 대상을 아무때나 참조 가능하다.

   레퍼런스는 선언과 동시에 초기화를 해야만 한다.

   포인터는 주소값을 대입하고 레퍼런스는 실제값을 대입한다.

   그리고 포인터는 가르키는 대상을 바꿀 수 있지만

   레퍼런스는 바꿀 수 없다.


6. 프로시저 사용이유?

   - 테이블에 접근권한을 주지 않으면서 프로시저 실행권한만 주면 DB 데이터를 보호를 할 수 있다.

   - 캐싱될 롹률이 높다. 캐싱이 

   * 실행계획 프로시저 캐시란? SQL 서버가 컴파일된 쿼리 실행 계획을 저장하는 저장소.

     그냥 쿼리는 띄어쓰기가 하나 틀리다던가.. 그런이유로 저장이 안될 확률이 높다.

     쿼리는 사용빈도가 높으므로 저장확률이 더 높다.

     캐시에 저장되면 컴파일 다시 하지 않아도 되므로 성능상 이점이 있다.


7. 외래키란 무엇인가?

   - 다른테이블에 있는 내용을 참조하는 키.

     외래키가 존재하지않는다면 에러가 난다.



'etc' 카테고리의 다른 글

클립스튜디오 자기 브러쉬 등록하는 법  (0) 2024.05.06
VBA 오류들  (0) 2018.06.22
tortoisesvn Path  (0) 2018.05.30
No bootable medium found ( VirtualBox Window 10 설치 )  (0) 2018.05.09
[R데이터]네이버 뉴스 크롤링  (0) 2018.01.09
R 기초 - 프로그램 설치  (0) 2018.01.09
▲ top