반응형
SMALL

분류 전체보기 143

[컴네/CN] 비동기 프로그래밍

Blocking vs. Non-blocking Blocking 프로세스가 시스템을 호출하고 나서 결과가 반환되기까지 다음 처리로 넘어가지 않는 상태. 즉, block이 된 상태를 말한다. Non-blocking 시스템을 호출한 직후에 프로그램으로 제어가 돌아와 시스템 호출의 종료를 기다리지 않고 다음 처리로 넘어갈 수 있다. I/O(입출력)가 길어지는 경우 블로킹이면 대기시간이 길어지기 떄문에 논블로킹 사용한다. 좌측 코드는 서버, 우측 코드는 클라이언트의 코드이다. 서버 코드에서는 소켓을 바인딩하고, while문을 통해 accept(연결)를 기다린 후 데이터를 수신한다. 클라이언트 코드에서는 ip 주소와 포트번호를 설정하여 연결을 생성하고 "HelloWorld\n"라는 문자열을 300 * 1024 * ..

[컴네/CN] 신뢰성 있는 프로토콜

인터넷 프로토콜에는 두 가지의 종류가 있다. TCP/IP 표준과 OSI 표준 두 가지가 존재하는데, TCP/IP 표준에서 응용계층이 Application, Presentation, Session 세 가지의 계층으로 나뉜 것이 OSI 표준이다. 전송 계층 전송계층은 TCP 또는 UDP 연결을 하는 단계이다. TCP TCP 연결은 아래 네 가지 기능을 제공한다. - 신뢰성: 오류 발생 시 탐지 및 복구, 파일을 순서대로, 중복을 제거하여 전송 - 흐름제어: 수신자의 상태에 따른 전송량 조절 - 혼잡제어: 네트워크 + 수신자의 혼잡 상태(Buffer에 패킷이 많은 경우)에 따른 전송량 조절 - 연결 관리: TCP 연결을 관리함. UDP UDP는 어떠한 기능도 제공하지 않는다. TCP에서 기본적으로 제공하는 기..

[컴네/CN] 응용계층 프로토콜: FTP, SMTP

응용 계층 프로토콜 응용 게층 프로토콜은 여러 가지가 존재한다. - ftp: 파일을 전송 프로토콜 - smtp: 이메일 전송 프로토콜 - sip: 화상 회의 시 사용하는 프로토콜 - pop3: 이메일을 다운 받는 프로토콜 - imap: 이메일을 전송하는 프로토콜 - snmp: 망 관리 프로토콜 FTP 응용계층 프로토콜로 인터넷 초창기에 파일&메일을 교환하는 목적으로 사용하였기 때문에 파일을 전송할 때 자주 사용한 프로토콜이다. 하지만 최근 UI가 웹으로 바뀌면서 파일 전송도 HTTP를 통해 진행된다. SMTP, POP3/IMAP 메일을 전송하는 프로토콜이다. 이메일 서버에 전송할 때에는 SMTP를 사용하는데, 주로 서버 간 전송하는 경우를 말한다. (예를 들어 네이버 메일을 통해 구글 메일로 메일을 전송..

[컴네/CN] 응용 P2P

순수 P2P 구조 P2P는 peer to peer의 약자로 peer들끼리 직접 통신을 하는 프로토콜이다. 이때 peer는 동료라는 뜻으로 하나의 컴퓨터, 휴대폰 등을 일컫는다. 전통적으로 네트워크는 always on인 서버를 가지고 클라이언트들이 접속하는 상태이지만, p2p는 always on인 서버가 존재하지 않는다. 피어들이 직접적으로 가끔 연결되어 통신하는데, 보통 연결이 안 된 상태가 많다. 이러한 조건을 바탕으로 p2p 구조를 잘 만들기 위해서는 '파일 배포 방법'과 '정보 검색 방법'이 중요하다. Server-Client vs. P2P 1개의 서버가 N개의 피어에게 파일을 배포할 때 얼마의 시간이 걸리는지 비교해보자. - 파일의 크기: F - 서버에 파일을 업로드 하는 대역폭: us - 피어 ..

[컴네/CN] 응용 DNS

DNS(Domain Name System) DNS란 인터넷에 연결된 컴퓨터의 이름과 IP 주소를 매핑해주는 분산 시스템을 말한다. 우리는 어떤 사이트에 접속할 때 'http://naver.com'과 같이 도메인을 이용하여 접근할 수 있다. 도메인을 이용하여 접근을 하기 위해서는 실제 네트워크에서 사용하는 ip 주소로 변환하는 과정이 필요한데, 이러한 모든 일련의 과정을 DNS(Domain Name System)라고 한다. 도메인의 체계는 위 사진과 같다. 1. 최상위 도메인(TLD) 루트 바로 아래 도메인으로 각 국가 정보를 2자리 영문 약자로 표기한다. 2. 차상위 도메인(SLD) 최상위 바로 아래 도메인으로 최상위 도메인에서 정의된 문자열을 제외한 모든 문자열을 사용할 수 있다. 3. 하위 도메인(S..

[컴네/CN] 인터넷 성능

인터넷 속도 측정 https://speed.nia.or.kr/index.asp NIA 인터넷 속도측정 NIA 한국지능정보사회진흥원에서 제공하는 인터넷속도 품질측정 시스템 speed.nia.or.kr 인터넷의 속도 측정은 위 사이트로 진행할 수 있다. 이때, 인터넷의 속도를 측정하는 곳이 외국에 있다면 당연히 그 속도는 느리게 나올 것이다. 위 사이트는 속도를 측정하는 국가에 맞추어 국가를 설정해준다. https://www.speedtest.net/ Speedtest by Ookla - The Global Broadband Speed Test Use Speedtest on all your devices with our free desktop and mobile apps. www.speedtest.net 속..

[기계학습/ML] Bayesian Classifier

Intorduction Example: Salmon-Sea Bass Problem Bayesian Classifier에 대해 학습하기에 앞서 하나의 예를 먼저 들어보자. 우리는 연어와 베스를 구별하는 일을 할 때 두 가지의 선택지가 있다. 첫 번째는 사람이 구별하는 것이고, 두 번째는 자동화 시스템이다. 그렇다면 우리는 어떤 것을 선택할 것인가? 당연히 자동화 시스템을 통해 분류하는 것이 이득이므로 후자를 고를 것이다. 따라서, 전문가만이 할 수 있던 일을 알고리즘이 해결함으로써 이점이 높다. 이때 ML이 아닌 자동화 시스템을 사용한다면 if문(전통적)을 통해 분류를 진행할 수 있다. 하지만 ML을 통해 성능을 높여보자. 컨베이어 벨트에 연어로 베스를 통과시키면 우리는 카메라로부터 길이나, 밝기, 너비 ..

[기계학습/ML] Introduction to ML

Machine Intelligence Early AI 사람에겐 어렵지만, 컴퓨터에게 쉽다. 예로 수학적인 규칙이나, search가 있다 Modern AI 사람에게는 쉽지만 형식적으로 표현하기 어렵다.(컴퓨터에 가르치기 어려움) 직관적인 정보와 비공식적인 지식이 있다는 특징이 있다. 예로 사람의 말을 이해하는 것이나, 손으로 쓴 숫자를 인식하는 것이 있다. Machine Learning ML의 분류는 다음과 같다. Task T를 수행하는 능력을 Performance P로 측정할 때, Expression E로 T의 P가 향상되는 것을 ML이라고 한다. (1997, Mitchell) 이때, 엑셀로 한 계산이나 E로 P가 향상되지 않는 경우거나, If문을 통한 분류는 ML이 아니라고 할 수 있다. 위 사진과 같..

[컴개/CI] Bottom-Up 구문 분석, LALR Parser

LALR Parsing LR(1) 파싱의 문제점 LR(1) 파싱은 정교하기 때문에 상태의 개수가 어마어마하게 많다. Pascal 언어를 통해 만들면 SLR은 수백 개, LR(1)은 수천 개의 상태가 나온다. 하지만 이렇게 많은 개수의 상태는 메모리에 과부화를 준다. 따라서 우리는 이러한 LR(1)의 상태 개수를 줄이고자 LALR 파싱을 시작하였다. LALR Parsing LR에서 두 상태의 core가 동일하면 하나의 상태로 묶어준다. 위 사진에서 두 개의 상태 중 일부가 동일한 것을 볼 수 있다. 동일한 부분을 LALR 파서에서는 묶어준다. 이러한 LALR 파싱은 1. SLR보다 많이 정교하다. LR(1)보다 이론적으로 less powerful하지만, 실제 처리할 수 있는 의미 있는 문법의 종류는 거의 ..

[컴개/CI] Bottom-Up 구문 분석, 파싱 테이블과 SLR 파서

Shift와 Reduce의 의미 입력으로 '((a),b)'이 들어 온 경우 아래와 같이 파싱할 수 있다. SLR Parser 앞선 LR(0)의 파싱 테이블은 conflict가 발생한다. 왜냐하면 reduce 시에 모든 셀에 대해 reduce를 채우기 때문이다. 따라서 이러한 LR(0)의 충돌을 줄이기 위해 SLR(Simple LR) Parser가 등장했다. SLR 파싱 테이블은 약간의 노력을 더해 LR(0)의 conflict를 줄이고 정교하게 만들어 주는 것으로 I1이 [X -> β.]를 포함할 때, M[I1, a] = 'reduce X -> β'이다 (단, a ∈ FOLLOW(X)) 즉, 파싱 테이블에서 X의 팔로우에 속하는 터미널에 대해서만 reduce를 진행한다는 의미이다. 나머지는 LR(0)과 동..

반응형
LIST