본문 바로가기

전체 글181

[전송계층 1] Multiplexing and Demultiplexing UDP 헤더필드 프로세스간 통신 방법 1. 어플리케이션 계층에서 전송계층으로 message 를 전달한다 2. 전송 계층은 받은 message를 segment(HEADER + DATA) 형태로 네트워크 계층에 전달한다 3. 네트워크 계층은 받은 segment를 pocket(HEADER + DATA) 형태로 데이터링크 계층에 전달한다 4. 데이터링크 계층은 받은 pocket을 frame(HEADER + DATA) 형태로 물리 계층에 전달한다 5. 물리계층에서 라우터를 타고 목적지의 물리계층에 도착한다 6. 물리계층은 받은 데이터를 frame 형태로 데이터링크 계층에 전달한다 7. 데이터링크 계층은 받은 frame을 pocket 형태로 네트워크 계층에 전달한다 8. 네트워크 계층은 받은 pocket을 segment 형태로 전.. 2024. 1. 19.
[애플리케이션 계층2] 소켓 (TCP소켓, UDP소켓) Socket은 os가 제공하는 api 중 하나이며 프로세스 간의 통신을 위한 api이다. 여러가지 function을 갖고 있다 => os 내부의 것만 사용 가능하다 => os의 transport에는 TCP, UDP가 있다 => 소켓은 두 종류가 있다 TCP 소켓 ( SOCK_STREAM ) UDP 소켓 ( SOCK_DGRAM ) bind는 서버의 특정포트를 bind한다 => 클라이언트에서 bind를 쓰지 않는 이유는, 클라이언트는 특정 포트에 관계없이 아무거나 써도 되기 때문이다. TCP 소켓 웹서버 진행 순서 1. 소켓 생성 socket() int socket(int domain, int type, int protocol) int type에 tcp/udp 입력 2. bind() 방금 생성한 소켓을 특정.. 2024. 1. 19.
[프로그래머스 LV2] 우박수열 JS https://school.programmers.co.kr/learn/courses/30/lessons/134239 문제 설명 콜라츠 추측이란 로타르 콜라츠(Lothar Collatz)가 1937년에 제기한 추측으로 모든 자연수 k에 대해 다음 작업을 반복하면 항상 1로 만들 수 있다는 추측입니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2.결과로 나온 수가 1보다 크다면 1번 작업을 반복합니다. 예를 들어 주어진 수가 5 라면 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 이되어 총 5번만에 1이 됩니다. 수가 커졌다 작아지기를 반복하는 모습이 비구름에서 빗방울이 오르락내리락하며 우박이 되는 모습과 비슷하다고 하여 우박수 또는 우박수열로 불리기.. 2024. 1. 19.
[프로그래머스 LV3] 아이템 줍기 JS https://school.programmers.co.kr/learn/courses/30/lessons/87694 문제 설명 다음과 같은 다각형 모양 지형에서 캐릭터가 아이템을 줍기 위해 이동하려 합니다. 지형은 각 변이 x축, y축과 평행한 직사각형이 겹쳐진 형태로 표현하며, 캐릭터는 이 다각형의 둘레(굵은 선)를 따라서 이동합니다. 만약 직사각형을 겹친 후 다음과 같이 중앙에 빈 공간이 생기는 경우, 다각형의 가장 바깥쪽 테두리가 캐릭터의 이동 경로가 됩니다. 단, 서로 다른 두 직사각형의 x축 좌표 또는 y축 좌표가 같은 경우는 없습니다. 즉, 위 그림처럼 서로 다른 두 직사각형이 꼭짓점에서 만나거나, 변이 겹치는 경우 등은 없습니다. 다음 그림과 같이 지형이 2개 이상으로 분리된 경우도 없습니다... 2024. 1. 18.
Route53으로 EC2 HTTPS 설정하기 문제: Google OAuth 프로젝트는 https 페이지로만 redirect uri를 보낼 수 있다. 해결: http ⇒ https로 변경 EC2는 SSL certificate를 갖고 있지 않아서 https를 지원하지 않기 떄문에 밑의 방법들을 찾아봤다. Enable HTTPS on EC2 instance Without Elastic Load Balancer Configure HTTPS on AWS EC2 without a Custom Domain Configure HTTPS on AWS EC2 for Free Using Cloudflare 그 중 가장 간단해보이는 Route53 방법을 선택했다 route53에서 나만의 도메인을 구입하기 인스턴스와 도메인을 연결하기 위해 record를 추가 subdom.. 2024. 1. 15.
[프로그래머스] 테이블 해시 함수 JS https://school.programmers.co.kr/learn/courses/30/lessons/147354 완호가 관리하는 어떤 데이터베이스의 한 테이블은 모두 정수 타입인 컬럼들로 이루어져 있습니다. 테이블은 2차원 행렬로 표현할 수 있으며 열은 컬럼을 나타내고, 행은 튜플을 나타냅니다. 첫 번째 컬럼은 기본키로서 모든 튜플에 대해 그 값이 중복되지 않도록 보장됩니다. 완호는 이 테이블에 대한 해시 함수를 다음과 같이 정의하였습니다. 해시 함수는 col, row_begin, row_end을 입력으로 받습니다. 테이블의 튜플을 col번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키인 첫 번째 컬럼의 값을 기준으로 내림차순 정렬합니다. 정렬된 데이터에서 S_i를 i .. 2024. 1. 14.