분류 전체보기
-
WEB - 웹과 통신CS/WEB 2021. 2. 10. 21:42
웹과 통신 웹의 동작 원리 웹 페이지 URL정보로 HTTP요청 메시지를 만든다. 입력한 URL주소를 DNS서버에서 조회하여 IP주소를 검색한다. 라우터를 통해 해당 서버의 게이트웨이까지 이동한다. ARP로 IP를 MAC주소로 변환한다. 대상 서버와 TCP 통신을 시도한다. 서버와 연결이 되면 HTTP프로토콜로 요청한 다음 이에 대한 응답 메시지를 생성한다. 만들어진 HTTP 응답 메시지는 온 방식 그대로 원래 컴퓨터로 전송한다. 도착한 HTTP 응답 메시지는 HTTP프로토콜을 사용하여 웹 페이지 데이터로 변환된다. 변환된 웹 페이지는 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 된다. CORS Cross Origin Resource Sharing. 현재 도메인과 다른 도메인으로 리소스가 요청되는 경..
-
Network - 캐시/쿠키/세션CS/Network 2021. 2. 10. 21:07
캐시/쿠키/세션 캐시 리소스 파일들의 임시 저장소. 같은 웹 페이지에 접속할 때 사용자의 PC에서 로드하여 서버를 거치지 않아도 된다. 이전에 사용되었던 데이터는 다시 사용될 가능성이 높으므로 저장하여 페이지 로딩 속도를 개선한다. 쿠키/세션을 이용하는 이유 HTTP의 약점인 connetionless, stateless를 보완하기 위해서 사용한다. 계속 커넥션을 유지하지 않기 때문에 서버 리소스 낭비가 줄어드는 것은 큰 장점이지만, 통신할 때마다 새로 커넥션을 만들기 때문에 클라이언트 측면에서는 상태를 유지(인증 등)하기 위해 통신할 때마다 어떤 절차를 가져야 한다는 단점이 생긴다. 만약 쿠키와 세션이 없다면 어떤 페이지에서 다른 페이지로 넘어갈 때마다 인증을 다시 받아야 하는 것이다. 쿠키 클라이언트에..
-
Network - HTTPCS/Network 2021. 2. 10. 20:53
HTTP HTTP HyperText Transfer Protocol. 하이퍼 텍스트(html) 문서를 교환하기 위해 만들어진 protocol. 요청/응답 구조로 통신이 이루어 진다. stateless: 요청이 오면 그에 맞는 응답을 한 뿐 요청/응답끼리 연결되어 있지 않다. 이전의 요청과 응답에 대한 데이터가 필요할 때는 쿠키나 세션을 사용한다. 암호화 과정이 없기 때문에 보안에 취약하다. HTTPS HTTP + SSL(암호화) 기존의 HTTP는 TCP와 직접 통신했지만, HTTPS는 HTTP와 TCP 사이에 SSL이 끼워져 있는 것이다. HTTP는 SSL과 통신하고 SSL는 TCP와 통신하게 된다. 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 공개키 암호화를 지원한다. 안전하게 데이터를 주고..
-
Network - TCP/UDPCS/Network 2021. 2. 10. 19:56
TCP/UDP TCP 연결형 서비스를 지원하는 전송계층 프로토콜. 신뢰할 수 있는 통신을 한다. UDP에 비해 속도는 느린 편이다. 데이터의 순서가 보장된다. TCP헤더 구성(중요한 것 위주) 출발지의 포트 목적지의 포트 Sequence number: TCP 세그먼트의 순서를 의미한다. Acknowledgement number: 확인 응답 번호로 상대방이 보낸 세그먼트를 잘 받았다는 것을 알려주기 위한 번호. 마지막 수신 성공 번호 + 1을 해서 전달한다. offset: TCP헤더의 길이. flags: 제어비트. 세그먼트의 종류를 표시한다. checksum: 오류 검출. 3-way-handshake: TCP통신을 이용하여 데이터를 전송하기 위한 네트워크 연결을 하는 과정 클라이언트가 (임의의)sequen..
-
[백준]2470: 두 용액 - JAVA문제풀이/백준 2021. 2. 10. 18:45
[백준]2470: 두 용액 www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 풀이 이분탐색 문제를 풀어보려고 풀었는데 풀고나니 이분탐색 문제보다는 투포인터? 라는 문제라고 한다. 배열을 정렬한 후 첫 인덱스와 마지막 인덱스 값을 증감하며 적절한 위치를 찾아주었다. scanner를 써서 풀면 시간초과가 났다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2..
-
[백준]14503: 로봇 청소기 - JAVA문제풀이/백준 2021. 2. 10. 16:32
[백준]14503: 로봇 청소기 - JAVA www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 조건에 맞는 모든 경우를 탐색해야 하므로 dfs를 사용하여 풀었다. 여기서 중요한 조건은 탐색을 할 때에는 이전으로 되돌아 갈 수 없다는 조건이다. 예를들어서 아래와 같은 경우이고 시작 위치가 1,1일때 1 0 0 1 0 1 1 0 0 dfs로 탐색을 한 방향으로 하고 나면 아래와 같아진다. 1 2 2 1 2 1 1 0 0 이후에는 원래 dfs라면 1,1로 돌..
-
[프로그래머스]경주로 건설 - JAVA문제풀이/프로그래머스 2021. 2. 10. 14:57
[프로그래머스]경주로 건설 - JAVA programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 풀이 최소 비용을 구하는 문제이므로 모든 경우를 다 탐색하는 ..
-
Network - DNSCS/Network 2021. 2. 10. 01:41
DNS DNS 서버의 역할 Dmain Name Server: 도메인을 IP와 같은 숫자로 변환해 컴퓨터가 서로 통신할 수 있도록 교환한다. 도메인은 전 세계 유일하다. 도메인 이름은 트리 구조로 되어있어 오른쪽 부터 탑 레벨 도메인, 제2레벨 도메인 순으로 불린다. 동작 원리 웹 브라우저에 www.example.com을 입력한다. Local DNS에서 IP주소를 질의한다. Local DNS에 없으면 Root DNS에 www.example.com을 질의한다. Root DNS서버로 부터 com도메인을 관리하는 TLD(최상위 도메인)서버 정보를 전달 받는다. TLD에 www.example.com을 질의한다. TLD에서 example.com을 관리하는 DNS서버 정보를 전달 받는다. example.com 도메인..