728x90

분류 전체보기 260

[네트워크] HTTP와 HTTPS의 동작 과정

우리가 Chrome 을 실행시켜 주소창에 특정 URL 값을 입력시키면 어떤 일이 일어나는가? HTTP의 경우 동작 과정 1. 브라우저는 DNS 서버로 가서 그 주소에 해당하는 ip주소를 찾아서 이를 받아온다. 2. 목적지의 ip를 알게 되었으니 TCP 통신을 통해서 소켓을 개방한다. 3. 브라우저는 해당 사이트의 사본을 클라이언트에게 보내달라는 HTTP 요청 메시지를 서버로 전송한다. 4. 만약 라우팅 중 프록시 서버를 만나는 경우 웹 캐시에 저장된 정보를 응답 받게 된다. 5. 프록시 서버를 만나지 못하여 특정 URL을 서빙하는 서버에 도달하게 되어 이 메세지를 받은 서버는 클라이언트의 요청을 승인하고, 요청에 맞는 데이터를 전송한다. 6. 서버는 웹사이트의 파일들을 데이터 패킷으로 브라우저에 전송하고..

[백준 1072 - C++] 게임 : 수학

https://www.acmicpc.net/problem/1072 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 문제 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시작했다. 의심을 피했다고 생각한 형택이는 다시 게임을 켰다. 그 때 형택이는 잠시 코딩을 하는 사이에 자신의 게임 실력이 눈에 띄게 향상된 것을 알았다. 이제 형택이는 앞으로의 모든..

카테고리 없음 2021.05.20

[백준 2776 - C++] 암기왕 : 이분 탐색

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 문제 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, 연종이 하루 동안 본 정수들을 모두 ‘수첩1’에 적어 놓았다. 그것을 바탕으로 그가 진짜 암기왕인지 알아보기 위해, 동규는 연종에게 M개의 질문을 던졌다. 질문의 내용은 “X라는 정수를 오늘 본 적이 있는가..

[백준 2805 - C++] 나무 자르기 : 이분 탐색

https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱..

[백준 2512 - C++] 예산 : 이분 탐색

https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 문제 국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것이다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있다. 그래서 정해진 총액 이하에서 가능한 한 최대의 총 예산을 다음과 같은 방법으로 배정한다. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정한다. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한..

[Github] README.md로 Github 프로필 꾸미기

오늘은 미루고 미루던 깃허브 프로필을 좀 꾸며보려고 합니다. 허름한 집보다는 휘황찬란하게 꾸며둔 집이 내부가 더 궁금한 법이니까요!! 1. Owner의 이름과 동일한 새로운 repository생성 우선은 Owner의 이름과 동일한 레포를 하나 생성해줍니다. 깃허브 고양이가 이건 깃허브 프로필에 README.md를 보여줄 수 있는 special한 레포라는 사실을 알려주고 있네요! 여기서 중요한 것은 반드시 public이고 README file을 Add하여 만들어야 한다는 것입니다. 이렇게 레포를 생성하게 되면 아래처럼 생성이 됩니다. READ.me파일을 수정하기 위해 저 연필 모양의 수정 버튼을 누르면 주석처리된 무언가들이 써있네요. 자 이제 이를 수정해서 본격적으로 예쁜 프로필을 만들기 위해 수정을 해보..

[네트워크] HTTP와 HTTPS

HTTP와 HTTPS HTTP (HyperText Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 사용하는 통신 규약 이는 텍스트 교환이기 때문에 누군가가 네트워크에서 신호를 가로채면 내용이 노출된다는 보안적인 문제가 존재한다. 비연결성 프로토콜이며 REQUEST에 대한 RESPONSE만 전달되며 연결을 유지하지 않는다.(Hyper Text를 주고 받기 위해 만들어져서 따로 연결을 할 필요가 없음) HTTPS (HyperText Transfer Protocol Secure) 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 HTTPS는 텍스트를 암호화한다. (공개키 암호키 방식을 사용) HTTP의 문..

[네트워크] UDP

UDP (User Datagram Protocol) UDP 통신은 데이터를 데이터그램 단위로 처리하는 방식으로, 비연결형이며 신뢰성 없는 전송 프로토콜이다. TCP에 비해 속도가 빠르나 TCP에서는 제공하는 흐름제어, 오류제어, 손상된 세그먼트의 수신에 대한 재전송을 하지 않는다. TCP와 UDP가 등장하게 된 배경 IP의 역할은 Host to Host (장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결되지만, 하나의 장비안에서 수많은 프로그램들이 통신을 할 경우에는 IP만으로는 한계가 있다. IP에서 오류가 발생한다면 ICMP에서 알려준다. 하지만 ICMP는 알려주기만 할 뿐 대처를 못하기 때문에 IP보다 위에서 처리를 해줘야 한다. 1번을 해결하기 위하여 포트 번호가 나오게 됐고, ..

[네트워크] TCP (흐름 제어 / 혼잡 제어)

TCP (Transmission Control Protocol) TCP 통신은 신뢰적이고 순차적인 연결 방식이다. UDP에 비해선 느리다. unreliable한 인터넷을 통해 종단간에 신뢰성 있는 바이트 스트림을 전송하도록 설계되었음. TCP는 송신자와 수신자 모두가 소켓이라고 부르는 종단점을 생성함으로써 이루어짐. 이때 연결 설정은 3-way handshake를 통해서 행해짐. 흐름제어 (Flow Control) : 송신측(호스트) - 수신측(호스트) - 수신측이 송신측보다 데이터 처리 속도가 빠르면 문제가 없지만, 송신측이 더 빠를 경우 문제가 발생한다. - 수신측의 제한된 저장 용량을 초과한 이후에도착하는 데이터는 손실 될 수 있다. 만일 손실 된다면 불필요하게 응답과 데이터 전송이 송/수신 측 간..

[네트워크] TCP 3-way handshake & 4-way handshake

TCP 3-way handshake : 연결 성립 1) 클라이언트가 서버에 접속을 요청하는 SYN(client_isn) 패킷을 보냄. 2) 서버는 클라이언트의 요청인 SYN(client_isn)을 받고 클라이언트에게 그 요청을 수락한다는 ACK(client_isn + 1)와 SYN(server_isn) 패킷을 보냄. 3) 클라이언트는 서버의 수락 응답인 ACK(client_isn + 1)과 SYN(server_isn) 패킷을 받고 ACK(server_isn + 1)을 서버로 보냄. 이렇게 3개의 단계를 거치면 연결이 성립하게 됨. TCP 4-way handshake : 연결 해제 1) 클라이언트는 서버에 연결을 종료한다는 FIN flag를 보냄. 2) 서버는 FIN을 받고, 확인했다는 ACK를 클라이언트..

728x90
반응형