전체 글 223

[8-1강] Basics on Data Link Layer(Mac ,Nodes and Links, Three Types of addresses, ARP)

시작하면서그동안 physical layer만 공부했지만 이번에는 data link layer를 공부하겠습니다.3계층 4계층에 대한 지식이 있다면 더 깊게 이해가 가능하기 때문에 기본적인 설명을 하면서 진행하겠습니다. (더 깊은 내용은 네트워크 통신에서 배웁니다.)Data link layerNetwork layer: IPTransport layer: TCP & UDP이렇게 배우도록 하겠습니다.Data link Layer에서 통신직접적으로 wifi에 연결 할 때 사용하는 layer 가 physical layer와 data link layer 입니다.1,2 계층 같은 경우 직접적으로 디바이스가 전기적 신호를 주고 받습니다.서로 다른 디바이스여도 서로 통신이 가능한 이유는 라우터가 서로 통신을 연결해주기 때문입..

HTTP 개관 및 버전별 특징 [webserv 개념 1-1]

HTTP의 정의HTTP는 HTML 문서와 같은 리소스를 가져올 수 있도록 해주는 프로토콜입니다.여기서 HTTP 요청의 대상을 "리소스"라고 하며, HTTP는 리소스의 특성을 제한하지 않습니다.다만, 리소스와 상호 작용하는 데 사용할 수 있는 인터페이스를 정의할 뿐입니다.대부분의 리소스는 URI(Uniform Resource Identifier)로 식별됩니다.클라이언트-서버 프로토콜 : 수신자(거의 웹브라우저)에 의해 요청이 초기화 되는 프로토콜을 말합니다.HTTP의 특징 : 요청(Request)과 응답(response)으로 통신 한다.요청은 일반적으로 브라우저지만, 검색엔진 인덱스 채우는 로봇인 경우도 존재합니다.요청과 응답 사이에는 여러 개체들이 있습니다.( 예 : 게이트웨이 또는 캐시 역할을 하는 프..

42서울/webserv 2024.04.26

Webserv 과제 분석 및 개요

인사말안녕하세요. 너무 늦게 찾아왔네요. 가이드를 만들고자고 다짐한 지 한참인데, 다른 할 일들을 하다 보니 너무 늦어졌네요. 꽤 긴 시리즈가 될 것 같은데요, 이제 시작해보고자 합니다.이번 게시물은 Webserv 과제를 한글로 분석해보고, 과제에서 공부해야 하는 개념들을 목록으로 나누겠습니다.과제 요약이 과제를 한 문장으로 요약하면 아래 문장으로 나타낼 수 있을 것 같습니다.HTTP 1.1 기준을 따르는 Nginx와 유사하게 동작하는 웹서버를 만들어라.오 그러면 nginx는 깃허브에 소스코드를 공개하니까 그걸 따라서 만들면 되겠다..! 라고 생각하고 처음에는 nginx 깃허브를 봤습니다.하지만 저희는 nginx의 동작을 참고하는 것이지, nginx를 똑같이 만들려먼 3명의 팀원으로는 1년이 걸려도 모자..

42서울/webserv 2024.04.25

백준 17071번 숨바꼭질 5(C++)

문제 https://www.acmicpc.net/problem/17071 17071번: 숨바꼭질 5 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 500,000)에 있고, 동생은 점 K(0 ≤ K ≤ 500,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 정답 코드 /* 수빈이 위치 : N 동생 위치 : K 수빈 이동 : +-1, *2 동생 이동 : 1, 1+2, 1+2+3, 1+2+3+4 ... 동생을 처음 만나는 시간 : time 0 2->4->8 2->3->5->8 답 : 3 5 17 5->10->20 17->18->20 답 : 2 17 5 17->16->15->16->15 5-> 6 ->8 ->11..

백준 3196번 백조의 호수(C++)

문제 https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 정답 코드 #include #include #include #include #define X first #define Y second using namespace std; /* - X: 빙판 - .: 물 - L: 오리 */ int dx[4] = {0,0,-1,1}; int dy[4] = {1,-1,0,0}; char duck='1'; char table[1501]..

백준 14497번 주난의 난(C++)

https://www.acmicpc.net/problem/14497 14497번: 주난의 난(難) 주난이는 크게 화가 났다. 책상 서랍 안에 몰래 먹으려고 숨겨둔 초코바가 사라졌기 때문이다. 주난이는 미쳐 날뛰기 시작했다. 사실, 진짜로 뛰기 시작했다. ‘쿵... 쿵...’ 주난이는 점프의 파 www.acmicpc.net 정답 코드 /* 주난 : * 초코바 : # 빈칸 : . 1: 친구 bfs해서 닿은 1은 다 녹이면된다. 처음으로 #에 다은 경우 끝 */ #include #include #include #define X first #define Y second using namespace std; int dx[4] = {0,0,-1,1}; int dy[4] = {1,-1,0,0}; bool vis[30..

백준 12851번 숨바꼭질 2 (C++)

문제 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 정답 코드 #include #include #include using namespace std; #define CNT second #define POS first int N,K; bool vis[100001]; int num_cnt[100001]; int min_cnt = 100001; //최소 거리 /* 5 17 5 10 20 19 18 17 5 6 7..

백준 15684번 사다리 조작 (C++)

문제 정답 코드 #include #include #include #include using namespace std; int N,H;//점선 가로, 점선 세로 int M;//놓인 가로 bool table[31][11]; // table[H][N-1] int ret = 5; int dp[31][11]; bool calcDp(){//초기 주어진 값으로 dp배열 계산 for(int i=1;i> H; for(int i=0;i> a>>b; table[a][b] = true; } dfs(1,0); if (ret == 5) ret = -1; cout 5,000,000 (5백만) 사다리를 타는 연산 시간 : 사다리당 높이만큼 연산 -> 전부 계산하는데 300번 연산 진행 만약 브루스 포스로 하게 되면 15억정도 진행됨..

Webserv 그 길었던 과정의 기록[1편]

시작하면서 42 공통 과정 중 큰 규모와 긴 기간, 난이도로 악명 높은 WebServ 과제를 진행하였습니다. 과제는 공부와 설계 그리고 코드 완성까지 해서, 2023년 6월 26일부터 2023년 8월 21일까지 진행하였습니다. 팀원은 총 4명이서 진행하였고, 진행과정 및 팀 프로젝트 후기에서 어떻게 협업을 진행했는지 다루도록 하겠습니다. WebServ 과제를 한 단어로 말하면 HTTP1.1로 동작하는 웹서버를 만드는 과제입니다. 과제의 공부했던 내용과 코드에 대한 디테일 한 부분은 추후에 게시물로 가이드 형식으로 남기고 이곳에는 프로젝트를 어떻게 진행했는지와 느낀점을 위주로 쓰는 회고록을 먼저 작성하도록 하겠습니다.개념공부 시간 (대략 1주~2주)과제의 주제는 'nginx의 동작을 참고하여 웹서버를 만들..

42서울/webserv 2024.01.28
728x90