전체 글 108

[Java] Vector 선언과 사용

우선 Vector에 삽입 할 객체를 생성하기 위해 Point 클래스를 선언해주었다. 이제 Vector를 생성해보자. Vector를 사용하기 위해서는 먼저 import.java.util.Vector를 통해 Vector를 선언해준다. 이후 위와 같이 Vector를 선언할 수 있다. 안에는 Vector의 자료형이 들어간다. add() 메소드를 통해 새로운 원소를 Vector에 삽입할 수 있으며, remove()메소드를 통해 원하는 위치의 원소를 제거할 수 있다. 또한 size()메소드를 통해 Vector의 크기를 얻을 수 있으며, get()메소드를 통해 원하는 인덱스에 접근할 수 있다. 이 이외에도 여러가지 메소드를 가지고 있다.

Java 2021.10.24

[데이터 과학] R 알아두면 편리한 함수들

data() 데이터셋을 모두 출력한다. str() 데이터셋의 구조를 확인한다. plot() 데이터를 시각화한다. getwd() 현재 작업 디렉토리를 출력한다. setwd() 현재 작업 디렉토리를 세팅한다. head() 데이터셋의 앞부분만 출력한다. tail() 데이터셋의 뒷부분만 출력한다. library() 라이브러리를 장착한다. c() 배열을 생성한다. data.frame() 데이터 프레임을 생성한다. list() 연결 리스트를 생성한다. max() 최대값을 구한다. mean() 평균값을 구한다. min() 최소값을 구한다. colnames() 열의 이름들을 출력한다. rownames() 행의 이름들을 출력한다. nrow() 행의 개수를 출력한다. ncol() 열의 개수를 출력한다. rowSums() ..

데이터 과학 2021.09.28

[컴퓨터 네트워크] IPv4주소

IPv4주소는 32비트 주소로 라우터나 호스트의 인터넷 연결을 범용적이고 유일하게 만들어준다. IP주소는 장치가 다른 네트워크로 이동 시 변경되기 때문에 라우터나 호스트가 아닌 연결의 주소이다. IPv4주소는 각 인터넷으로의 연결을 하나씩 유일하게 정의한다. 만약 하나의 장치가 두 네트워크를 통해 인터넷으로 2개의 연결을 가지고 있을 경우, 2개의 Ipv4주소를 가지게 된다. IPv4는 32비트의 주소를 사용하므로 주소 공간은 2^32, 즉 40억개 이상이 된다. 표기법으로는 2진수 표기법, 10진수 표기법(도트 표기법), 16진수 표기법 등이 있다. IPv4주소는 두 부분으로 구분되는 계층적 구조이다. 주소의 첫 부분은 접두사로 네트워크를 정의하고 두 번째 부분은 접미사로 노드(호스트)를 정의한다. 접..

[컴퓨터 네트워크] 네트워크층 성능

네트워크의 성능은 지연(delay), 처리량(throughput), 패킷 손실률(packet loss)로 측정 가능하다. 혼잡 제어는 성능을 향상시킬 수 있는 이슈이다. 전송 지연은 패킷의 첫 비트가 t1, 마지막 비트가 t2ㅡ이 시간에 놓였을 때, t2-t1이 되다. 따라서 패킷의 길이가 길수록 전송 지연도 길어지며, 전송 시간이 짧아진다. 즉 전송 시간은 packet length / Transmittion rate이다. 전파 지연은 전송 매체를 통해 A지점에서 B지점까지 1비트가 전달되는 데 걸리는 시간이다. 즉 전파 지연은 Distance / Propagation speed이다. 처리 지연은 라우터나 목적지 호스트가 입력 포트로 패킷을 받고, 헤더를 제거하고, 오류 탐지를 수행한 뒤, 출력 포트로 ..

[컴퓨터 네트워크] 패킷 스위칭 방식

데이터그램 방식: 비연결 서비스 인터넷을 처음 만들 때, 네트워크층의 간소화를 위해 모든 패킷을 독립적으로 처리하는 비연결형 서비스를 제공하도록 설계되었다. 네트워크층의 기본 개념은 근원지에서 목적지로 패킷을 전달하는 것이였다. 이 방식에서는 메시지의 패킷들이 목적지까지 같은 경로나 혹은 다른 경로로 전달될 수 있게 한다. 네트워크층에서 비연결형 서비스를 제공할 때 인터넷 상의 모든 패킷은 각각 독립적인 개체이다. 가상 회선 방식: 연결 지향형 서비스 (virtual-circuit approach) 가상 회선 방식에서는 한 메시지에 속한 모든 패킷은 연관성이 있다. 메시지의 모든 데이터그램이 전송되기 전에 데이터그램을 위한 가상의 경로가 설정된다. 연결이 설정된 뒤, 데이터그램을 모두 같은 경로로 전송할..

[컴퓨터 네트워크] 라우팅(routing)과 포워딩(forwarding)

네트워크층은 패킷이 근원지에서 목적지까지 갈 수 있도록 경로를 라우팅해야 한다. 물리적인 네트워크(LAN과 WAN)와 네트워크를 연결하는 라우터의 조합이다. 이는 근원지에서 목적지까지 적어도 하나 이상의 라우터가 있다는 의미이다. 네트워크층은 가능한 모든 경로 중 가장 좋은 경로를 찾는 역할도 수행한다. 따라서 네트워크층은 가장 좋은 경로를 정의하는 구체적인 규칙이 필요하다. 각 라우터의 의사결정 테이블을 만들기 위해 라우팅에 규칙을 적용하고 라우팅 프로토콜을 실행할 때 포워딩(forwarding)은 라우터 상의 하나의 인터페이스로 패킷이 도착했을 때 라우터가 취하는 행동으로 정의할 수 있다. 이런 행동을 취하기 위해 라우터가 일반적으로 사용하는 의사결정 테이블은 포워딩 테이블(forwarding tab..

[Node] mysql 쿼리문 안에 변수 삽입

먼저 쿼리문을 하나 만들어 보자 AND 또는 OR를 사용해 조건을 연결할 수 있으며 변수로 넣을 데이터에 '?' 를 넣어주면 쿼리문 안에 변수를 삽입할 수 있다. 또한 order by rand()구문을 사용하여 결과 튜플을 무작위로 섞을 수 있다. query 함수의 첫 번째 인자로 쿼리문, 두 번째 인자로 '?'안에 넣어 줄 변수, 세 번째 인자로 콜백함수를 넣어주면 된다. '?'가 하나일 경우 [] 안에 값을 입력하지 않아도 되지만, '?'가 여러개일 경우 반드시 대괄호 안에 값을 나열해주어야 한다.

Node.js 2021.09.26

[JAVA] 랜덤 수(난수)생성

JAVA에서 난수를 생성하기 위해서는 Random 객체를 사용하면 된다. Random 객체를 생성하기 위해 먼저 Import java.util.Random 명령어를 사용하여 Random 라이브러리를 사용한다고 명시해 준다. 이후 위와 같이 Random 키워드를 통해 객체를 생성해주면 된다. 객체의 메소드인 nextInt를 사용해서 난수(정수)를 생성할 수 있다. 위 코드는 난수를 생성하여 주사위를 20번 던진 것과 같은 결과를 보여준다. nextInt 메소드의 매개변수로 6을 넣어준다면 0~5사이의 난수를 발생시킨다. 이에 1을 더해주면 1~6사이의 난수, 즉 주사위를 던지는 경우를 가정할 수있다.

Java 2021.09.19