TIL💡(277)
-
[암호화] 두 가지 암호화 기술
두 가지 암호화 기술 - SSL에는 암호화하기 위한 암호화 키와 복호화 키가 필요 - 클라이언트와 서버가 암호화/복호화 키를 어떻게 가지느냐에 따라 공통키와 공개키 암호화 방식이라는 2종류로 나눌 수 있다. 공통키(대칭키) 암호화 방식 - 클라이언트와 서버가 같은 키를 공유해놓고 클라이언트가 암호화 키로 암호화하면 서버가 암호화 키와 같은 복호화 키로 복호화한다. - 공통키 암호화 방식은 구조가 간단하므로 처리 부하가 적은 편 - 하지만 키를 미리 공유해둘 필요가 있기 때문에 전송 방법을 고려해야 한다.(키 배송 문제) 공개키 암호화 방식 - 암호화 키와 복호화 키에 서로 다른 키를 사용하는 암호화 방식 - 서버는 암호화 키와 복호화 키를 페어로 만든다. - 암복호화키는 숫자적으로 관계되어 있어 암호화 ..
2022.09.30 -
[자료구조] AVL 트리
이진탐색트리는 쏠림현상이 발생할 경우 (최악의 경우) 탐색 시 시간 복잡도가 $O(N)$이다. 이러한 경우를 방지하기 위해 AVL 트리를 고안해냈다. 특징은 다음과 같다. 1. 이진 탐색 트리의 속성을 가진다. 2. 왼쪽, 오른쪽 서브 트리의 높이 차이가 최대 1이다. 3. 높이 차이가 1보다 커지면 회전(Rotation)을 통해 균형을 맞춰 높이 차이를 줄인다. 4. 삽입, 검색, 삭제의 시간 복잡도가 $O(logN)이다. (N = 노드의 개수)$ AVL 트리의 전반적인 작동을 시뮬레이션 해볼 수 있는 유용한 사이트이다.(백문이 불여일견) https://www.cs.usfca.edu/~galles/visualization/AVLtree.html AVL Tree Visualzation www.cs.usf..
2022.09.30 -
[Network] Ethernet이란?
현재 LAN 환경에서는 특수한 경우를 제외하고 모두 Ethernet을 사용한다. Ethernet이란 CSMA/CD(Carrier Sense Multiple Access/Collison Detection) 방식을 이용하여 통신을 하는 네트워크 규격이다. 현재 LAN에서는 특수한 경우를 제외하고 대부분이 Ethernet을 이용하고 있다. CSMA/CD 방식에서는 달리 통신을 하고 있는 사람이 없는 경우에 한해 데이터 송신을 시작한다.(Carrier Sense) 그래도 동시에 송신이 되어서 패킷 충돌(collison)이 발생하면 임의의 시간 동안 대기한 후에 송신을 다시 시작한다.(Collison Detection) 이와 같이 통신을 함으로써 한 줄의 케이블을 여러 컴퓨터가 공유할 수 있는 것이다.(Multi..
2022.09.30 -
[Network] DHCP란?
DHCP란 네트워크 안의 컴퓨터에 대해 IP 주소의 할당 및 서브넷 마스크의 설정과 같은 네트워크에 관한 설정을 자동으로 수행하기 위한 서비스이다. 하나의 네트워크 안에서는 프라이빗 IP 주소라 할지라도 중복되어서는 안된다. DHCP는 이러한 네트워크 설정으로 자동화함으로써 관리의 수고나 인위적인 설정 실수와 같은 요인을 배제한다. ISP를 이용한 인터넷 연결의 경우에도 DHCP를 사용하여 인터넷에서의 네트워크 설정을 취득하는 것이 일반적이다. 참고 - https://goodgid.github.io/NW-DHCP/ [서비스 프로토콜편] DHCP Index goodgid.github.io
2022.09.30 -
[Network] Forward Proxy와 Reverse Proxy
Forward Proxy → 클라이언트의 보안 사용 목적 1. 보안을 위해 익명으로 컴퓨터를 유지 2. 캐시를 사용하여 리소스로의 빠른 접근 3. 네트워크 서비스나 콘텐츠로의 접근 정책을 적용(원치 않는 사이트 차단) 4. 사용률을 기록하고 검사하기 위해(회사는 인터넷 이용을 파악) 5. 밖으로 나가는 콘텐츠를 검사(데이터 유출 보호) Reverse Proxy → 서버의 보안 내부망의 보안을 지키기 위함 만약 WAS가 최전방에 있으면 WAS가 노출되는 경우, DB 서버까지 노출되는 불상사 발생 가능 이 때문에 리버스 프록시 서버를 두고 실제 서비스 서버는 내부망에 위치 프록시 서버가 내부에 있는 서비스 서버와 통신해서 결과를 클라이언트에게 제공하는 방식으로 서비스
2022.09.30 -
Page Table의 작동 순서
배경 기존에는 모든 프로세스를 메모리에 로드하고, 메모리 용량보다 더 큰 프로그램을 실행시킬 수 없었다. 하지만 실제로는 코드의 일부에서만 대부분의 시간을 사용하고, 프로세스는 특정 순간에는 항상 작은 양의 주소 공간을 사용했기 때문에 이러한 방식은 매우 비효율적이었다. 가상 메모리는 이러한 물리적 메모리 크기의 한계를 극복하기 위해 나온 기술이다. 프로세스를 실행할 때 실행에 필요한 일부만 메모리에 로드하고 나머지는 디스크에 두는 것이다. 이를 통해 프로세스 전체가 물리적 메모리에 있는 것'처럼' 수행되는, 즉 물리적 메모리가 훨씬 많이 있는 것처럼보이게 된다. 결과적으로 메모리에 작은 양의 주소 공간만 있으면 충분히 프로세스를 수행할 수 있고, 그에 따라 더 많은 프로그램을 동시에 실행할 수 있게 된..
2022.09.30