Computer Science 52

[Network] Forward proxy vs Reverse proxy

Proxy, Proxy 프로그램, Proxy 서버 Proxy는 자신을 '통해서' 다른 네트워크에 간접적으로 접속 할 수 있도록 '중계'해주는 컴퓨터 혹은 프로그램이다. 그리고 이러한 일을 하는 프로그램을 Proxy 프로그램이라 하며, Proxy 프로그램은 Proxy Server에서 작동한다. Proxy의 종류 Proxy에는 Forward Proxy와 Reverse Proxy가 있다. 1) Forward Proxy 일반적으로 사용하는 Proxy방식이며 클라이언트와 애플리케이션 서버 사이에 위치해서 클라이언트가 애플리케이션 서버로 서비스를 요청 할 때 내부망(아래 사진에서 남색으로 표시)에 위치한 Proxy Server에서 먼저 요청을 받고, Proxy Server가 타겟인 애플리케이션 서버로 요청을 전달한..

[Network] CDN(Contents Delivery Network) 이해하기

[CloudFront] CloudFront에 S3 버킷 배포하고 SSL Certificate설정에서 Amazon S3와 CloudFront로 정적 파일을 배포하는 과정에 대해서 정리하였었다. AWS CloudFront는 전 세계의 정적/동적 웹 콘텐츠, 비디오 스트림 및 API를 안전하게 대규모로 전송할 수 있는 콘텐츠 전송 네트워크(CDN) 서비스이라서, 이를 사용하기 위해서는 CDN과 Cache에 대한 개념을 알아야하고, 이 부분에 대해서 공부가 더 필요하기 때문에 공부 후에 따로 정리해보겠다 라고도 적어놓은 바가 있다. 이 중 CDN에 대해 공부하고 이해한 바를 정리해본다. 내가 만든 서비스를 호스팅해주는 서버는 한국에 있고, 내 서비스가 전세계적으로 제공되고 있다고 하자. 이 때 많은 양의 파일과..

[Network] DNS(Domain Name System) 이해하기

IP에 대한 것은 (아직 부족하지만) [Network]Router, IP, NAT, Port에 정리해 둔 적이 있다. 즉 IP는 두 대의 컴퓨터 각자의 '주소'를 통해 서로를 찾고 인터넷을 통해 '통신'을 하며 정보를 주고 받는다고 하자. 이때 '주소'에 해당하는게IP address. 그리고 host는 인터넷에 연결된 각각의 기기를 말한다. 그런데 어떤 컴퓨터에 통신을 위해 요청을 보낸다고 하자. 이때 IP가 뭔지 기억하기란? 굉장히 번거롭다. 93.184.216.34 이런걸 다 외운다고? 그럴 순 없지 그래서 필요한 것이 DNS(Domain Name System)이다. DNS는 우리가 흔히 보는 도메인 이름(예를 들어 www.google.com과 같은)을 IP주소로 변환하는 역할을 한다. DNS의 원리..

[Network] 네트워크 기본 용어

AWS 배포를 하면서 가장 많이 드는 생각은 '네트워크 공부 좀 해야겠다..' 였다. 이제는 원리를 파악하고 깊이 고민해야하는 단계인 것 같다. 천천히 해보자 1. 가정에서 하는 랜 구성을 통해 살펴보는 Router, IP 두 대의 컴퓨터가 인터넷을 통해 '통신'을 하며 정보를 주고 받는다고 하자. 이때 '주소'에 해당하는게 IP address. 인터넷 사용은 1. 통신사와 계약해서 회선을 받는다. 2. 이 회선을 꼽는 순간 ip가 부여된다. 그런데 그 회선을 하나의 노트북에'만' 꼽는건.. 요즘 별로 없을 것이다,. 왜 ? 스마트폰, 노트북 2~3대 모두 인터넷을 사용하고 싶으니까! 그럼 인터넷을 사용하려면? Ip address가 필요하다고 앞서 간단히 살펴보았다. 그럼 인터넷 회선을 2~3개 또 계약..

리눅스 홈 디렉토리를 다른 드라이브로 옮기는 방법

리눅스 홈 디렉토리를 다른 드라이브로 옮기는 방법 리눅스 홈 디렉토리를 다른 드라이브로 옮기는 방법 - 최신 Fatmawati Achmad Zaenuri / 셔터 스톡 Linux 홈 폴더를 다른 드라이브로 옮기고 싶습니까? 다음은 모든 배포에서 작동하는 간단하고 단계별 방법입니다. 홈 폴더를 이동하면 Linux를 다시 설치할 수 있으 choesin.com

우분투 한글타자 설정

dgkim5360.tistory.com/entry/how-to-install-ibus-hangul-for-ubuntu-desktop Ubuntu Desktop iBus 한글 설치 및 설정 Ubuntu Desktop을 새로 설치한 뒤, 한글 타자를 치기 위해 항상 한참 구글링을 해야한다. 그리곤 고새 까먹은 뒤 몇 개월 혹은 몇 년 뒤 또 같은 과정을 반복한다. 이를 방지하기 위해 오늘 iBus Hangul dgkim5360.tistory.com 위의 글을 분명 매우 자세히 잘 설명되어 있다 그러나 분명 상태표시줄에서 Ko라고 되어있는데도 Region&Language의 Input Sources에 Korean(Hangul) 이 없어서 아무리 한/영 키를 눌러도 한글이 쳐지지 않는다면..? input Sour..

Hash Table

개념 Hash: 임의 값을 고정 길이로 변환하는 것 Slot: 한 개의 데이터를 저장할 수 있는 공간 Hashing Function: key에 대해 연산을 이용해서 Hash value(Hash address)를 알 수 있는데 이 Hash value(Hash address)가 key에 대한 value가 저장된 공간(slot)과 연결되어 있다. Hash Table: key에 대한 Hash value(Hash address)에 연결된 공간(slot)에 value를 저장하는 데이터 구조이며, 키 값의 연산에 의해 직접 접근이 가능한 데이터 공간이다. (그래서 key를 통해 데이터를 바로 받아올 수 있으므로 속도가 획기적으로 빨라진다.) 장점 데이터 저장/읽기 속도가 빠르다. (검색 속도가 빠르다.) 키에 대한 ..

정수론 - 소수

소수(Prime Number)란 약수가 1과 자기자신 뿐인 수이다. 주의해야 할 것은 1은 소수가 아니며, 흔히 짝수라서 소수가 아닐꺼라고 생각할 수도(?) 있지만 2는 소수이다. 구현 소수에 관한 문제는 2가지로 생각해 볼 수 있다. 1) 특정 수(n)가 소수인지/아닌지 판별해야 할 경우 이때는 n의 약수 가 1과 자기 자신(n) 뿐이면 소수, 아니면 소수가 아니라는 정의를 이용하는게 좋다. 다시 말해, 1~n 중 1, n을 제외한 2~(n-1) 중에서 하나라도 나누어 떨어지는 것이 있으면 소수가 아니다. / 하나도 나누어 떨어지지 않으면 소수이다. 로 판단 할 수 있는 것이다. ※ 하지만 그냥 2~(n-1)을 모두 탐색하면서 검사하려면 시간복잡도가 O(n)으로 너무 크다.. 고 생각된다. 이를 줄일 ..

정수론 - 최대공약수, 최소공배수 (유클리드 호제법)

유클리드 호제법이란 주어진 두 수 사이에 최대공약수를 구하기 위한 알고리즘이다. 이를 통해 최대공약수를 구하면 최소공배수 역시 쉽게 구할 수 있다. 두 수 A, B가 있다고 하자. 그리고 r은 A를 B로 나눈 나머지(A%B) 라고 하자. 유클리드 호제법은 A, B, r 세 수를 가지고두 단계를 반복하는 것이다. step1. A를 B로 나누어 r을 만든다. step2. r이 0이면 이 때의 B가 최대공약수이고, r이 0이 아니면 B의 값은 A가, r의 값은 B가 되어 step1~step2를 반복한다. (언제까지?? r이 0이 되어서 B라는 최대공약수를 구할 때까지) 구현 위의 방법을 구현하는 방식은 2가지가 있다. 1) 반복문을 이용한 방법 while(1){ let r = A%B; if(r===0){ re..

DFS

1. 그래프 순회(탐색) 그래프란, 정점과 간선으로 이루어진 자료구조이다. libertegrace.tistory.com/entry/3-ES6-Practice 5. Data Structure - Graph, Tree, BST Graph 1)개념 : 노드(정점,Node, vertex) 와 간선(edge)로 구성된 자료구조 용어들 차수(Degree): 정점에 몇 개의 간선이 연결되어 있는가 사이클(Cycle): 자기 자신으로 다시 돌아올 수 있는 경로 2) 구현 그�� libertegrace.tistory.com 여기서 Graph와 Tree에 대해 정리한 적이 있는데, 둘 다 정점과 간선으로 이루어져있다. 컴공에서 자료구조는 효율적인 접근 및 수정을 가능케하는 자료의 조직, 관리, 저장을 의미한다. 그러니까,..