Computer Science
-
[Computer Network] SOP & CORSComputer Science/Computer Network 2020. 6. 2. 14:18
📝 Same-Origin Policy ◾ 자바스크립트 엔진 표준 스펙에 존재하는 보안 규칙이다. ◾ 브라우저는 스크립트 내()에서 초기화 되는 다른 도메인에 대한 HTTP 요청을 제한한다. ◾ 즉, 사용자가 특정 사이트에 접속중인 동시에 다른 사이트를 접근하는 것을 제한한다. ◾ XSS 기법(웹 사이트에 의도치 않은 스크립트를 넣는 기법)을 사용해 특정 정보를 다른 도메인으로 탈취하는 것을 방지할 수 있다. 📝 CORS (Cross Origin Resource Sharing) ◾ Client가 현재 접속한 사이트의 도메인 외에 다른 도메인에 접근할 수 있도록 처리 해주는 웹 브라우저 표준 기술이다. ◾ 웹 사이트를 백 엔드와 프론트엔드를 분리하여 API 묶는 방식으로 구현한 경우 백엔드 서버에 CORS ..
-
[Computer Network] Web CacheComputer Science/Computer Network 2020. 6. 1. 12:50
📝 Web cache ◾ Web Cache는 HTML, JS, CSS, Image 등 Client가 최근에 Request한 자원의 복사본을 Caching(임시 저장) 한다. ◾ User가 자원을 요청 하면 먼저 Web Cache에 해당 자원이 있는지 확인하고 있다면, 자원을 곧장 받는다. ◾ Web Cache를 사용하면, Client 요구에 대한 응답시간을 줄일 수 있고, 트래픽을 줄일 수 있다. ◾ Local DNS는 Web Cache 다. Client가 최근에 호출한 호스트네임에 대한 IP 주소를 Caching 한다. 📝 Web cache 종류 1️⃣ Browser Caches ◾ Client의 Browser에서 최근 요청한 자원을 Caching 한다. 2️⃣ Proxy Server ◾ Proxy S..
-
[Computer Network] HTTPComputer Science/Computer Network 2020. 5. 30. 15:00
📝HTTP (Hypertext Transfer Protocol) ◾ HTTP는 Web상에서 정보를 주고 받을 수 있는 프로토콜이다. ◾ HTTP/1, HTTP/2는 TCP 기반이고, HTTP/3은 UDP 기반이다. 1️⃣ Client-Server Model ◾ HTTP는 Client-Server Model로 구현된다. ◾ Chrome, Internet Explore, Fire Fox 등 웹 브라우저는 HTTP Client 단을 구현한다. ◾ Web Server는 HTTP의 Server 단을 구현한다. ◾ Client가 Server에게 정보를 Request 하면, Server는 Response 하며 정보를 Client에게 전달한다. 2️⃣ Stateless Protocol ◾ HTTP Server는 Cli..
-
[Computer Network] Protocol LayerComputer Science/Computer Network 2020. 5. 29. 14:03
📝 Protocol Layer◾ 프로토콜 계층화는 매우 복잡한 네트워크 시스템을 계층(Layer)으로 나누어 단순화해준다.◾ 각 계층은 상위 layer에 서비스를 제공하고, 하위 layer으로부터 서비스를 제공받는다.◾ 다양한 layer의 프로토콜을 모두 합하여 프로토콜 스택(Protocol Stack)이라고 한다. 😚 장점◾ 모듈화 : 각 layer은 독립적이기 때문에 유지보수와 업데이트가 용이하다.◾ layer별로 통신의 흐름을 단계적으로 파악할 수 있다.🤣 단점◾ layer 간 기능이 중복될 수 있다. (네트워크, 링크 layer은 둘 다 라우터 간 전송 기능을 제공한다.)◾ layer 간 많은 상호작용이 요구되기 때문에 오버헤드가 발생한다.📝 OSI 7 Layer Model ◾ ISO(국제표준화기..
-
Shortest Path AlgorithmComputer Science/Data Structure and Algorithm 2020. 5. 20. 13:21
✔️ 최단 경로 문제(Shortest Path Problem) ◾️ 가중치 그래프에서 주어진 두 정점을 연결하는 가장 짧은 경로의 길이를 찾는 문제 ◾️ 가중치가 없는 그래프에서의 최단 경로는 BFS로 찾을 수 있다. ✔️ 다익스트라(Dijkstra)의 최단 경로 알고리즘 ◾ 단일 시작점 최단 경로 알고리즘이다. ◾ 시작 정점 s에서부터 다른 정점들까지의 최단 거리를 계산한다. ◾ 다익스트라 알고리즘은 BFS처럼 시작점에서 가까운 순서대로 정점을 방문한다. 1️⃣ 다익스트라 알고리즘 : 우선순위 큐를 사용하는 BFS 📋 우선순위 큐 ◾ 우선순위 큐에 정점의 번호와 지금까지 찾아낸 해당 정점까지의 최단 거리를 쌍으로 넣는다. ◾ 우선순위 큐는 정점까지의 최단 거리를 기준으로 정점을 배열함으로써, 아직 방문..
-
[Computer Network] UDP & TCPComputer Science/Computer Network 2020. 5. 9. 12:48
✅ UDP (User Datagram Protocol) 1️⃣ UDP는 빠르다. ▪️ UDP는 TCP와 다르게 다중화/역다중화, 간단한 오류 검사 기능만을 제공한다. ▪️ TCP는 신뢰적 전송, 혼잡제어, 흐름제어 등 UDP보다 더 많은 기능을 제공한다. ▪️ 따라서 UDP는 TCP보다 빠르다. UDP하에서 애플리케이션 프로세스가 데이터를 UDP에게 전달하면, 데이터를 UDP 세그먼트로 만들고 즉시 그 세그먼트를 계층으로 전달한다. ▪️ UDP는 실시간 애플리케이션에 적합하다. 실시간 애플리케이션은 최소 전송률을 요구하고, 지연 전송을 원하지 않고, 조금의 데이터 손실은 허용한다. 따라서 TCP보다 UDP가 적합하다. 2️⃣ 신뢰적 데이터 전송을 보장하지 않는다. ▪️ 송신한 세그먼트가 손실될 수 있다...
-
[OS] Virtual MemoryComputer Science/Operation System 2020. 5. 3. 15:47
✔️ 가상 메모리 ( Virtual Memory ) ◾️ 가상 메모리란 RAM을 관리하는 방법이다. 각 프로세스(프로그램)에 실제 물리적 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 말한다. ◾️ 가상 메모리는 크게 나누어 Paging 방식과 Segment 방식이 있다. ◾️ 대부분의 시스템은 Paging 기법을 사용한다. ◾️ 가상 메모리는 운영체제가 관리한다. ◾️ 논리적 메모리 주소를 물리적 메모리 주소로 변환하는 것은 하드웨어가 한다. ◾️ 이 챕터에서는 Paging 기법을 사용하는 것으로 가정한다. ✔️ Demand Paging ◾️ Demand Paging이란 Page 요청이 있을 때, Page를 메모리에 올리는 것을 말한다. ◾️ 프로세스(프로그램)이 실행될 때 해당 프로세스를 구성..
-
Sieve of EratosthenesComputer Science/Data Structure and Algorithm 2020. 4. 28. 23:46
✔️ 에라토스테네스의 체 ◾ 숫자들을 순차적으로 접근하면서, 각 숫자의 배수에 해당하는 숫자들을 걸러냄으로서 소수를 찾아내는 방법이다. ◾ 참고로 에라토스 테네스의 체 시간복잡도는 O(n log log n) 이다. (https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes) 💾 소스 #include #include using namespace std; const int MAX = 1000; int main() { vector prime; bool isPrime[MAX + 1]; memset(isPrime, true, sizeof(isPrime)); for (int i = 2; i