본문 바로가기

cs7

[Network] 네트워크 계층 (L3): 멀리 있는 컴퓨터와의 연결 목차- LAN을 넘어선 통신- L3의 프로토콜- 라우팅 테이블 및 전송 과정 1. LAN을 넘어선 통신1.1. 네트워크 계층물리 계층(L1), 데이터 링크 계층(L2)은 주로 LAN 내에서의 통신을 담당한다. 즉, 주로 같은 네트워크 세그먼트 또는 같은 물리적 네트워크 내에서의 통신을 처리한다. L2에서는 MAC 주소를 사용하여 같은 네트워크 내에서 기기 간의 통신이 이루어진다.  여러 네트워크 간에 통신하기 위해서는 L1, L2만으로는 부족하다. 여러 네트워크에 속한 모든 호스트의 MAC 주소를 파악하는 것은 너무나 어려운 일이기 때문이다. 그래서 더 먼 거리의 통신을 위해서는 네트워크 계층(L3)에서의 라우팅 과정이 필요하다. 라우터가 라우팅 테이블과 IP 주소를 사용하여 목적지까지의 최적의 경로를 .. 2024. 8. 19.
정렬 알고리즘의 성능 비교와 상황별 선택 기준 목차1. Properties to Compare2. 정렬 알고리즘들의 성능 비교3. 특정 상황에서의 정렬 알고리즘 선택 기준 1. Properties to Compare성능을 비교하기에 앞서 고려해야 할 속성들에 대해 간단히 알아보자.  ① Time Complexity Comparison- Best: 가장 효율적으로 동작할 경우의 시간 복잡도- Average: 일반적인 경우의 시간 복잡도- Worst: 최악의 경우의 시간 복잡도 ② Auxiliary Space Complexity Comparison (보조 공간 복잡도)알고리즘이 추가로 필요한 메모리 공간을 의미한다. 예를 들어, In-Place 알고리즘(ex. quick, heap)은 추가적인 공간이 거의 필요하지 않고 입력 데이터 자체를 사용해 정렬을.. 2024. 8. 7.
[Network] Web Socket 목차0. 프롤로그1. 다양한 통신 방법2. WebSocket 통신 원리 3. HTTP vs WebSocket4. WebSocket의 한계와 해결 방법 0. 프롤로그지금까지 프로젝트를 하면서 사용했던 통신은 클라이언트가 먼저 요청을 보내면 서버가 응답을 보내주는 방식이었다. 이 말은, 서버는 클라이언트가 먼저 말을 걸어주지 않으면(요청이 없으면) 선톡을 할 수 없다는 의미이다. 이를 반이중 통신(half duplex communication)이라고 한다.채팅, 주식과 같이 데이터가 실시간으로 바뀌는 기능. 노션이나 피그마에서 팀원의 마우스가 화면에 보이는 기능은? 이와 같은 실시간 통신을 구현하기 위해 전통적인 HTTP 통신을 선택했다가는 뭐 가능이야 하겠지만 조금만 생각해 봐도 명확한 한계가 보인다. 클.. 2024. 5. 24.
[자료구조] Hash Table 목차 - Intro - Array vs Hash Table - 어떻게 O(1)을 만들었을까? - Hash function과 Collision - Collision을 최소화해 보자 - JavaScript의 Hash Table - 마치면서Intro코드를 더 빠르게 만들어주는 Hash Table에 대해 배워보자! Hash Table이란 단어를 처음 들어봤어도 개발하다가 이미 써봤을 확률이 매우 높다. Hash Table은 key-value 쌍으로 데이터를 저장하는 자료구조이다. 이 자료구조는 생각보다 똑똑한 방법으로 효율성을 높이는데, 어떤 식으로 구현되어 있는지 뜯어보자. Array vs Hash Table배열은 index를 통해 데이터를 순차적으로 저장한다. 특정 index의 값을 읽거나 추가할 때는 O(.. 2024. 5. 9.
Stack 2개로 Queue, Queue 2개로 Stack 만들기 Stack 2개로 Queue를, Queue 2개로 Stack을 만드는 방법과, 그 시간복잡도에 대해 알아보겠다.  1. Stack 2개로 Queue 만들기 아이데이션inStack과 outStack이 있다. inStack의 입구가 Qin이 되고, outStack의 출구가 Qout이 된다. enqueue 호출 시 1, 2, 3번 공이 순서대로 Stack1에 입력된다. 위에서부터 [3, 2, 1] dequeue 호출 시 outStack이 비어있으면, inStack의 모든 항목을 outStack으로 이동. inStack에서 하나씩 pop해서 outStack에 push한다. 완료되면 outStack은 위에서부터 [1, 2, 3]이 되고, dequeue 호출 시 가장 위에 있는 1부터 제거된다. (그 후의 dequ.. 2024. 5. 7.
[Network] 물리 계층(L1)과 데이터 링크 계층(L2) 목차1. 이더넷2. NIC와 케이블3. 허브4. 스위치 이번 글에서는 물리 계층(L1)과 데이터 링크 계층(L2)에 쓰이는 장비들에 대해 알아본다. 우선, 두 계층을 구분하는 기준은 주소 개념의 유무이다. 물리 계층은 주소 개념이 없다. 물리 계층에서는 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신만 이루어지기 때문에 물리 계층의 네트워크 장비는 송수신되는 정보를 조작하거나 판단하지 않는다. 반면 데이터 링크 계층에는 주소 개념(ex. MAC 주소)이 있다. 데이터 링크 계층NIC, 스위치물리 계층케이블, 허브 1. 이더넷두 대의 컴퓨터가 서로 정보를 주고받으려면 케이블과 같은 매체로 연결되어 있어야 한다. 이때 이 통신 매체의 규격들과 송수신되는 프레임의 형태, 프레임을 주고받는 방법 등이 정의.. 2024. 5. 6.