본문 바로가기

23년 2학기 학교공부

(82)
[CN] locust로 서버 성능 테스트하기 (파이썬) 📁 Locust 가장 유명한 도구 중하나인 locust. locust라는 도구를 이용하면 가상의 클라이언트 n개를 만들고 그 가상의 사용자들이 우리의 웹서버로 get post delete같은 요청을 하는 일련의 테스트 과정을 만들 수 있음. 📁 Locust 설치 방법 (윈도우) 📁 Stress test vs. Load test 스트레스 테스트는 극한의 환경들, 추운 환경, 더운 환경, 먼지가 많은 환경에서 어떻게 동작하는가, 그런 곳에서 에러 컨트롤이 되는가를 보는 것. 이럴때는 보통 에러 메세지를 보고 시스템을 복원하는 등의 작업을 함. Load test는 하나의 PC, 우리의 서버가 몇명까지 서빙이 되고 케어할 수 있는가를 봄. 그래서 사용자 수, 동시 접속자 수, 응답 속도 등을 봄. 📁 locus..
[CP] 어휘분석기 만들기 📁 분석도구 어휘분석 및 구문분석을 돕는 도구가 존재한다. Lex : C 기반으로 만들어진 전통적인 어휘분석기 생성기 flex : Lex의 발전된 버전 ANTLR : JAVA를 기반으로 만들어진 구문분석도구 yacc : Lex와 밀접한 관련이 있는 구문분석기 JAVACC : 구문분석도구 SableCC : 구문분석도구 📁 Lex(렉스) Lex(렉스)는 1975년 레스크에 의해 발표된 가장 전통적이고 유명한 어휘분석기 생성기이다. 사용자가 정의한 정규표현식과 실행코드를 입력받아 C언어로 쓰여진 프로그램, 즉 입력받은 정규표현식을 처리하는 어휘분석기를 결과물로 출력한다. 즉 Lex는 프로그램을 만드는 프로그램이다.
[CN] 통신 계층과 식별자 f 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 OSI 계층과 대표적인 프로토콜 및 식별자 초기 OSI는 7계층으로 이루어져있는데, 통신 프로토콜이 발전함에 따라 이를 더 적은 단계로 묶어 표현하는 통신 모델을 사용하기도 한다. 각 계층마다 대표적인 프로토콜과 주요 식별자는 아래와 같다. 1. 데이터 링크 계층(Physical + Data link, 1+2) - 주요 프로토콜 : 이더넷(Ethernet) - 주요 식별자 : 물리적 주소(MAC 주소) 2. 네트워크 계층(Network, 3) - 대표 프로토콜 : IP, ... - 주요 식별자 : IP주소 3. 전송 계층(Transport, 4) - 대표 프로토콜 : TCP, UDP, ... - 주요 식별자 : Por..
[CN] Socket을 사용해 HTTP Server 열기 (파이썬) 📁 Network Socket network socket이란 네트워크로 데이터를 송수신하는 컴퓨터의 통신의 접점에 위치한 통신 객체다. 양 쪽의 소켓을 연결함으로써 서로 다른 프로세스끼리 데이터를 전달할 수 있다. 소켓을 이용한 네트워크 프로그래밍은 소켓 연결 및 데이터 송수신을 위한 소켓 함수 몇가지를 사용한다. 일반적인 서버의 흐름은 다음과 같다. socket() : 소켓을 생성한다. bind() : ip와 port번호를 설정하여 소켓에 적용시킨다. listen() : 클라이언트 요청을 대기하는 상태가 된다. 클라이언트 요청에 대기열을 만들어 몇 개의 클라이언트를 대기시킬지 결정한다. accept() : 클라이언트와 연결한다. 서버에 접속한 클라이언트와 통신할 수 있는 새로운 소켓을 생성한다. sen..
[ML] 기계학습이란? 📁 기계학습(Machine Learning) Mitchell에 따르면, 기계학습이란 tasks(작업) T에 대한 performance(성능) P가 experience(경험) E를 통해 성장하는 컴퓨터 프로그램을 말한다. 예를 들어 단순 계산과 같은 task는 수많은 experience, 즉 수많은 계산을 수행하더라도 성능이 향상되지 않으므로 기계학습이 아니다. 분류 task를 살펴보자. 위 그림처럼 프로그래머가 if문으로 분기나 조건을 모두 설정한 프로그램은 수많은 experience을 겪더라도, 즉 수많은 데이터를 분류하더라도 설정된 조건에 맞추어 분류하는 것 뿐 프로그램 자체의 성능이 향상되지 않으므로 기계학습이 아니다. 하지만 위 그림에서는 trained model이 수많은 숫자를 분류함으로써 사람..
[CN] Docker로 웹 서버 구축하기 (Window) 📁 Docker Docker란 chroot 등을 활용하여 제작된 Container 관리 도구이다. Image는
[CN] Wireshark 패킷 캡쳐
[CN] HTTP의 버전 2023학년도 2학기 충남대학교 이영석 교수님의 컴퓨터네트워크 수업 정리자료입니다. 📁 HTTP의 발전 현재는 HTTP/1.1 이상 버전만 사용중이다. 📁 HTTP/1.0 HTTP/1.0 버전은 객체를 하나 전송할때마다 GET 메소드 한번, TCP 연결 한번으로 1:1 연결 방식을 사용했다. 객체는 웹페이지를 이루는 요소들이므로, 위와 같이 연결하게되면 웹페이지 하나에 여러개의 TCP 연결이 사용된다. 이때 TCP 연결을 만드는데 왕복지연시간 문제가 발생하며, non-persistent HTTP라고 부른다. TCP는 서버와 클라이언트를 연결해야하는데, 만약 서버가 바다 건너 있다면 객체 하나를 불러오는데 바다를 한번씩 건너야 해서 전파지연시간이 오래 걸릴 수 있는 것이다. 📁 HTTP/1.1 위 1.0 ..