전체 글
![웹서버와 WAS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbR6F7w%2FbtrbpP8ROP6%2F5Ztli2KEYDNHH0gKjv2ikk%2Fimg.png)
웹서버와 WAS
네이버 부스트 코스 웹 백엔드 과정을 공부하고 정리한 내용입니다. 0. 웹 브라우저에 화면이 띄워지기까지 우리가 웹 브라우저를 실행한 후, 원하는 URL 주소를 입력하면 그 URL 주소에 해당하는 페이지가 웹 브라우저에 보인다. 그 과정을 풀어보면, 웹 브라우저는 URL 주소에 해당하는 웹 서버에 연결하게 되고, 화면에 필요한 HTML 문서나 각종 자원을 요청하게 된다. 정적인 콘텐츠는 웹 서버를 통해, 동적인 콘텐츠는 WAS를 통해 요청받은 자원을 전달하고 웹 브라우저는 해당 자원들을 읽고 해석, 렌더링 하여 화면에 띄워주게 된다. 1. Web Server란? - 소프트웨어적 정의는 웹 브라우저로부터 HTTP 요청을 받아 정적인 콘텐츠(html, css, 이미지 등)를 제공하는 컴퓨터 프로그램 - 하드..
![웹의 동작과 이해(HTTP 프로토콜, URL)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb62zYR%2Fbtrbe45srx5%2F91VHKErJtEh2J05AUfRZ2K%2Fimg.png)
웹의 동작과 이해(HTTP 프로토콜, URL)
네이버 부스트 코스 웹 백엔드 과정을 공부하고 정리한 내용입니다. 1. 인터넷의 이해 - 인터넷이란 TCP/IP 기반의 네트워크가 전 세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크이다. - 인터넷은 WWW(World Wide Web)이라고 말할 수 없으며, WWW는 인터넷 기반의 대표 서비스 중 하나이다. ex) WWW이란 인터넷 기반 서비스는 HTTP 프로토콜을 사용하며 기본적으로 80 포트를 사용, 웹서비스 기능에 이용된다. 2. HTTP란? - HTTP란 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜(통신 규약)이다. - 보통 클라이언트는 서버에게 요청하고, 서버는 요청에 따라 자원을 전달(응답)한다. - 이때, 무작정 주고받는 것이 아닌 정해진 통신 규약에 의해 이루어지..
[baekjoon 2307] 도로검문 (다익스트라) (C++)
https://www.acmicpc.net/problem/2307 2307번: 도로검문 그림 1은 어떤 도시의 주요 지점과 그 지점들 간의 이동시간을 나타낸 그래프이다. 그래프의 노드는 주요 지점을 나타내고 두 지점을 연결한 도로(에지)에 표시된 수는 그 도로로 이동할 때 걸 www.acmicpc.net 용의자가 주어진 그래프를 빠져나가려는데, 그래프 중 하나의 간선을 막아서 얼마나 지연시킬 수 있는지 출력하는 문제이다. 구역은 최대 1000개, 간선의 개수는 최대 5000개가 주어진다. 따라서 완전 탐색으로 모든 도로를 지우며 비교하는 것은 시간 초과가 날 것이다. 우선 1번부터 N번까지 최단 거리를 구해야 하므로 다익스트라를 이용하고, 최단 거리가 나오는 경로를 구해서 그 경로에 해당하는 도로만 지우..
[baekjoon 21276] 계보 복원가 호석 (트리, 위상정렬, 맵) (C++)
https://www.acmicpc.net/problem/21276 21276번: 계보 복원가 호석 석호촌에는 N 명의 사람이 살고 있다. 굉장히 활발한 성격인 석호촌 사람들은 옆 집 상도 아버님, 뒷집 하은 할머님 , 강 건너 유리 어머님 등 모두가 한 가족처럼 살아가고 있다. 그러던 어느 날 www.acmicpc.net 가문의 족보를 복원해야 하는 문제이다. 각 가문은 tree구조이고, 각 주민의 조상이 주어지는데 조상은 자신의 부모 또는 부모의 부모가 포함되어 있다. 따라서 이 문제를 풀기 위해서 필요한 것은, 순서 관계에 의해 주어진 입력값을 위상 정렬하는 것과 문자열로 주어진 입력값을 맵을 이용 해서 인덱싱 해주는 것이 필요하다. 전체적인 풀이 과정은 1. 입력값을 map을 이용해서 문자열, 숫..
[baekjoon 11779] 최소비용 구하기2 (다익스트라) (C++)
https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 최소비용 구하기 1의 업그레이드 버전이다. 추가된 것은 최소비용뿐만 아니라 최단 거리를 출력하는 것이다. https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지..
[baekjoon 16437] 양 구출 작전 (DFS, 트리) (C++)
https://www.acmicpc.net/problem/16437 16437번: 양 구출 작전 2, 3, 5번에 사는 모든 양들은 1번 섬으로 갈 수 있지만 7번 섬에 사는 양들은 1번 섬으로 가기 위하여 6번 섬을 거쳐야 하는데 6번 섬에 사는 늑대들의 수가 7번 섬에 사는 양들의 수보다 많으므로 www.acmicpc.net 각 섬에 있는 양들을 1번 섬으로 옮겨야 한다. 하지만 경로 상에 늑대가 있다면 양은 늑대의 수만큼 줄어든다. 각 섬에서 1번 섬으로 가는 루트는 유일하므로 트리 구조를 생각할 수 있고, 늑대는 양을 최대 1마리만 잡아먹으므로 섬에 계속 남아서 오는 양을 잡아먹는 것이 아닌, 한 마리 잡아먹으면 늑대 역시 줄여줘야 한다. 처음엔 DFS로 모든 양의 위치에서 루트까지 탐색을 해주었..
[baekjoon 2623] 음악프로그램 (위상정렬) (C++)
https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 입력값을 인접 그래프로 바꾼 뒤, 위상 정렬을 하면 되는 문제이다. 위상 순서가 여러 줄에 나눠서 주어지지만, 1 2 3을 1-2, 2-3으로 나눠서 생각해서 정리하면 된다. (가수들끼리의 순서만 유지해서 정리하면 되므로) 또한, 정렬할 수 없을 때 0을 출력해야 하는 조건만 잘 구현해주면 쉽게 풀릴 것이다. #include #include #include using names..
[baekjoon 2239] 스도쿠 (완전탐색, 백트래킹) (C++)
https://www.acmicpc.net/problem/2239 2239번: 스도쿠 스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다 www.acmicpc.net 말 그대로 9X9의 스도쿠 판의 빈칸을 채우는 문제이다. 처음에는 이걸 어떻게 알고 풀지?라는 생각이 들었는데 9x9의 작은 사이즈로, N-Queen문제처럼 완전 탐색으로 다 돌려보면 되겠다고 생각이 들었다. 스도쿠의 규칙으로는 세로줄, 가로줄, 9개의 작은 사각형 중 하나에 1~9까지 채워야 하고, 중복된 숫자가 있으면 안 된다. 따라서 해당 범위에 맞게 체크 함수 3개를 만들어줬고, 빈칸..