일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준
- swea
- CS
- 구현
- mst
- 시뮬레이션
- Effective Java
- dfs
- 세그먼트 트리
- 에라토스테네스의 체
- JUnit 5
- Network
- 완전탐색
- 후니의 쉽게 쓴 시스코 네트워킹
- 플로이드-와샬
- 위상정렬
- 수학
- 알고리즘
- BFS
- 스택
- 그리디
- 동적계획법
- 프로그래머스
- 유니온 파인드
- 투 포인터
- Kotlin
- 이분탐색
- 백트래킹
- 문자열
- java
목록CS (9)
반갑습니다!
우연히 네트워크 계층에 대해 잘 설명된 영상을 보게되어 정리하게 되었습니다. 1. Pysical Layer 두 대의 컴퓨터가 통신하려면? 모든 파일과 프로그램은 0과 1의 나열 0과 1만 주고받으면 된다. 1을 보낼 때는 +5V의 전기를 전선으로 흘려보내고 0을 보낼 때는 -5V의 전기를 전선으로 흘려보내면 0과 1의 전송이 가능. → 이론상으로는 간단하지만 실제로는 잘 작동하지 않음 왜 그런지는 다음 그림을 보며 생각해보자. 만약 전자기파가 위의 그림과 같다면? → 주파수 값이 숫자 하나로 고정되지 않는다. 그런데 전선은 모든 주파수를 다 통과시킬 수 없기 때문에 데이터가 유실될 것이고, 데이터를 받는 컴퓨터에서는 전송한 데이터와 다른 데이터를 받게 될 것이다. 이런 수직선과 수평선이 있는 전자기파는 ..
HTTPS? HTTPS란 HyperText Transfer Protocol over Secure Socket Layer의 줄임말로 HTTP 프로토콜에 보안을 담당하는 레이어(SSL 또는 TLS)를 추가하여 보안성이 강화된 프로토콜이다. HTTP 프로토콜은 단순히 텍스트를 주고받는 프로토콜이기 때문에 누군가가 네트워크에서 신호를 가로챌 수도 있고, 위조된 자료를 전송할 수도 있기 때문에 보안성이 떨어진다는 보안상의 문제가 있었다. 이를 해결하기 위해 등장한 것이 HTTPS 이다. SSL 인증서 HTTPS 프로토콜을 얘기하기 위해서는 SSL 인증서라는 것이 꼭 필요하다. SSL 인증서는 클라이언트와 서버간의 통신을 보증해주는 문서를 의미한다. 인증서의 기능은 크게 2가지가 있다. 클라이언트가 접속한 서버가 ..
XML? JSON? XML과 JSON은 모두 구조화된 문서를 전송 가능하게 만든 텍스트 포멧 형식을 말한다. 쉽게 말해 서버와 클라이언트가 데이터를 주고 받을 때 지정하는 형식이라고 할 수 있다. XML XML은 eXtensible Markup Language의 약자로 HTML과 유사한 태그 기반 마크업 언어이다. XML은 태그 기반 언어이기 때문에 다음과 같이 구성되있다. 멍멍이 3 64 2.14 이처럼 태그를 통해 간단하게 데이터를 표현한다 장점을 알 수 있다. 하지만 XML의 치명적인 단점도 태그 때문에 발생한다. 태그를 통해 데이터를 표현하기 때문에 배열구조, 반복구조일 경우 불필요한 데이터가 계속 나타나고, 불필요한 태그로 인해 데이터의 크기가 커진다. 데이터가 커짐으로써 읽기/쓰기 시간이 오래..
화장실에 가려하는데 누군가가 사용하고 있다면 사용할 수 없다. 화장실에 문을 잠근다면 (Locking) 다른 사람이 들어올 수 없어 기다려야한다(Waiting). 안에 있던 사람이 문을 열고 나온다면 (Unlocking), 다른 사람은 화장실을 이용할 수 있다. Lock 이란 프로세스/쓰레드에서 데이터를 베타적으로 사용 또는 갱신하고 싶을 때 사용한다. 이 때, 각 프로세스/쓰레드에서 공유 데이터를 접근하는 프로그램 코드 부분을 임계 영역 (Critical Section) 이라고 한다. 일반적으로 사용하는 대부분의 OS는 선점형 시분할 운영체제이다. 예를 들어 인터넷 브라우저와 메모장을 동시에 실행시키면 각 프로그램은 일정 시간 동안만 CPU를 선점하여 사용한다. 이 때 할당되는 시간 단위를 타임 슬라이..
프록시 서버(Proxy Server) 프록시란 사전적으로 '대리'를 의미한다. 서버의 입장에서 프록시를 본다면 클라이언트의 대리가 되고, 클라이언트의 입장에서 프록시를 보면 서버의 대리가 된다. 아래 그림을 본다면 이해하기 쉬울 것이다. 우리가 Google에 접속하게 되면 일반적인 경우는 왼쪽의 그림과 같다. 하지만 프록시 서버를 사용한다면 클라이언트는 프록시 서버에게 구글에 접속할 것을 요청(Request)하고, 프록시 서버는 구글로부터 받은 데이터들을 다시 클라이언트에게 전달해줌으로써 구글에 접속하게 된다. 그렇다면 프록시를 사용하는 이유는 무엇일까? 사용 목적 보안을 위해 익명으로 컴퓨터를 유지 캐시를 사용하여 리소스의 빠른 접근 네트워크 서비스나 콘텐츠로의 접근 정책을 적용하기 위해..