분류 전체보기
[Network] 트랜스포트 계층 : TCP 혼잡제어 알고리즘(TCP Tahoe, TCP Reno, TCP NewReno)
TCP Tahoe Slow-Start + 혼잡 회피 동작 방식 TCP 연결 window size는 1에서 시작 window size 지수적으로 증가 loss 발생시, 현재 window size의 절반을 ssthresh 값으로 설정 후 window size는 1에서 다시 시작. ssthresh 값에 다시 도달하면, window size는 1씩 증가. TCP Tahoe의 특징 fast retransmit : 타임아웃이 발생하기 전이라도 세 개의 중복된 ACK를 받으면 위와 똑같은 혼잡제어 동작 방식을 적용한다. timeout과 fast retransmit의 특징 timeout은 시간내에 패킷응답이 아예 오지 않는 것이다. 하지만 fast retransmit은 타임 아웃 전에 중복 ACK가 세개가 온다는 뜻이..
[Network] 트랜스포트 계층 : 혼잡제어
'혼잡' 이란? 너무 많은 전송자가 너무 많은 데이터를 너무 빠르게 전송해서 네트워크가 감당하지 못하는 그런 현상 혼잡제어가 흐름제어와 다른점 흐름제어는 Sender와 Receiver간의 1:1 문제이다. 하지만 혼잡제어는 네트워크를 공유하고 있는 모든 node들이 서로 양보를 해야하는 문제이다. 양보를 해야 네트워크 트래픽 양이 줄어들면서 원활하게 문제를 해결할 수 있기 때문에 이것은 전체 노드가 관련 된 글로벌한 이슈에 해당된다. 혼잡제어에 대한 방식 1. network-assisted - 라우터가 관여해서 호스트들에게 '지금 혼잡하니 네트워크양을 얼마만큼 줄이세요'라고 정보를 알려주는 방식 - 여러 복잡한 문제가 있기 때문에 잘 사용하지 않는다고 한다. 2. end-to-end - 라우터가 전혀 관..
[백준 1486] 등산 (C++)
1486번: 등산 첫째 줄에 산의 세로크기 N과 가로크기 M 그리고, T와 D가 주어진다. N과 M은 25보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지도가 주어진다. T는 52보다 작거나 같은 자연수이고, D는 1,000 www.acmicpc.net 다익스트라를 사용해서 풀었다. 가로와 세로의 최대 길이가 26으로 짧다. 시작점으로 되돌아와야 한다. 1. 모든 점에 대해서 원점으로 돌아오는 최단거리를 구한다. 우선순위 큐에 들어갈 수 없는 정점은 아래와 같다. 1. 현재 위치의 높이와 다음 위치의 높이 차이가 T보다 크다 2. 다음 정점에 대해서 이미 최단거리가 구해져 있다. 3. 다음 정점으로 가는 거리가 D보다 크다. 4. 다음 정점이 Map을 벗어난다. 위 4가지의 경우에 대해서 con..
[DB] 쿼리문 연습하기 (LEFT JOIN, INNER JOIN, GROUP BY)
SQL Test Free Online SQL Test Tool sqltest.net 연습은 위 사이트에서 3, 4, 5번 문제만 올바르게 구할 수 있는 테이블 작성 CREATE TABLE Product ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, maker VARCHAR(30), model VARCHAR(30) ); CREATE TABLE PC ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, model VARCHAR(30), speed INT(6), price FLOAT(6) ); CREATE TABLE Labtop ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, model VARCH..
[컴퓨터 구조] 컴퓨터 시스템 개요
1. 컴퓨터의 기본 구조 컴퓨터는 프로그램 코드들을 정해진 순서대로 실행한다. 이 과정에서 데이터를 읽고(Read), 처리(Processing)하고, 저장(Store)한다. CPU 프로세서(Processor)라고 불리기도 하며, 컴퓨터의 두뇌이다. 컴퓨터의 성능은 CPU의 성능과 직결된다고 볼 수 있다. 32-bit, 64-bit 컴퓨터도 분류되는 이유도 CPU가 한 번에 처리할 수 있는 비트 수에 따라서 나눈것이다. 주기억장치(main-memory) 우리가 알고 있는 RAM과 ROM이 주기억장치에 속한다. 메인보드상에서 CPU와 가까이 위치하며 빠른 읽기, 빠른 쓰기 속도를 가진다. 하지만 가격이 비싸고 면적을 많이 차지하며 적은 저장 용량을 가진다는 단점이 있다. 따라서 CPU가 프로그램을 실행하기 ..
[디자인 패턴] Observer Pattern (behavioral)
용어 정리 Subject : 데이터(db) Observer : subject에 관심을 가지고 사용하는 클래스 또는 컴포넌트 사용 용도 및 상황 각각의 observer들이 subject에 대한 알림에 대응해 서로 다른 행동을 취해야 할 때 subject이 하나의 observer에 의해 변경되었을 때, 모든 observer들이 알림을 받아야 하고 그에 따른 업데이트를 진행해야 하는 경우 해결 방안 subject을 설계할 때 observer의 행동에 영향을 받지 않도록 설계해야한다. 모든 subject은 observers에 대해서 독립적이어야 한다. Observer Pattern의 구조 Subject와 Observer 클래스는 추상클래스로서 각각 ConcreteSubject와 ConcreteObserver의 ..
[Docker] 컨테이너 기능별, 포트별 분리 (feat. nginx)
QuantManegement 퀀트 투자의 간편화 quant.or.kr 현재 진행중인 프로젝트 웹 페이지이다. 페이지를 구성하기 위해서는 현재 상장된 약 2400개 기업의 재무제표를 모두 크롤링 해와야 한다. 단순히 빠르게 크롤링 하려면 파이썬의 병렬 스레드나 멀티 프로세싱 기술을 사용해서 크롤링 하면 수십만개의 재무제표를 크롤링 하는데 그리 오랜 시간이 걸리지 않을 것이다. 하지만 크롤링을 하기위해서 접근하는 opendart 페이지와 opendart의 api를 사용하기 위해서는 1분당 접근이 1000회를 넘어가서는 안되며 하루에 10000번으로 접근횟수가 제한되어있다. 따라서 재무제표 크롤링은 시간을 들여야하는 조심스러운 작업이라고 생각했고, 크롤링을 위한 컨테이너를 따로 만들어줘서 안정적인 크롤링 환경..
[Nginx] ip_hash method 주의사항 (backup X)
일기식 Nginx.conf 파일에서 upstream server를 정의하는곳에서 발생한 오류이다. upstream quant { # default = round_robbin; # least_conn; ip_hash; server quant_home1:8000; server quant_home2:8001; server quant_home3:8002; server quant_backup:8003 backup; } 현재 진행중인 프로젝트의 서버를 포트 4개로 나눠서 서비스하려고 했다. 3개의 컨테이너는 round-robbin 방식으로 서로 균등하게 부하는 나눠가지는 방법을 선택했고, 만약 모든 컨테이너가 오류가 나서 사용하지 못하는 상황이라면 8003번 포트의 컨테이너를 backup 서버로 지정해 두었기 때문..
[백준 1726] 로봇 (c++)
1726번: 로봇 많은 공장에서 로봇이 이용되고 있다. 우리 월드 공장의 로봇은 바라보는 방향으로 궤도를 따라 움직이며, 움직이는 방향은 동, 서, 남, 북 가운데 하나이다. 로봇의 이동을 제어하는 명령어는 www.acmicpc.net 오랜만에 푼 알고리즘 문제 명령 1. Go k: k는 1, 2 또는 3일 수 있다. 현재 향하고 있는 방향으로 k칸 만큼 움직인다. 명령 2. Turn dir: dir은 left 또는 right 이며, 각각 왼쪽 또는 오른쪽으로 90° 회전한다. 두 가지 조건을 만족하며 출발 로봇이 도착지점의 상태와 같아질 때까지 이동시키는 프로그램을 구현하면된다. 나는 K칸 만큼 움직일 때 갈 수 없는 모든 조건에 break를 걸어주어서 많이 틀렸다. 벽에 막혀서 갈 수 없는 경우에만 ..
[Network] 무선 네트워크 : Wireless LAN(Wi-Fi)
Wi-Fi 802.11: 1999년경 발표된 802.11b부터 ~ 2014, 2016년에 발표된 802.11ac까지 802.11이라는 것이 전체적으로 와이파이 기술을 의미한다. 11a, 11b, 11g 기술은 한 채널에 약 20Mhz 범위를 가진다. 하지만 n부터는 한 채널에 약 40Mhz 범위를 가지게 된다. 802.15: WPAN(Wireless Personal Area Network) 즉, 블루투스 같이 전송범위는 넓지 않지만 전력을 적게 소모하는 기술이다. 2G, 3G, 4G 등등: 휴대폰과 관련된 기술이다. 그림의 각 BSS를 보면 2개의 안테나를 가진 공유기처럼 생긴 물체가 있다. 이를 BaseStation(이하 기지국)이라고 한다. 하지만 Wifi에서는 기지국이라고 잘 부르지 않고 AP(Ac..