프로젝트에서의 상태 관리: 템플릿과 Zustand를 통한 UX기반 설계
·
프로젝트/Componique: UI 컴포넌트 라이브러리
사용자 페이지 설계프로젝트의 사용자 페이지를 기획할 때, 어떤 방식으로 사용자가 페이지를 구성할 수 있도록 할지에 대한 고민이 많았습니다. 처음에는 사용자가 원하는 컴포넌트를 자유롭게 배치해서 자신의 페이지를 만들 수 있게 하는 아이디어를 떠올렸습니다. 하지만 곧 몇 가지 문제가 떠올랐습니다.기술 구현의 복잡성: 사용자가 임의로 컴포넌트를 배치하려면, 드래그 앤 드롭과 같은 복잡한 UI 기능을 구현해야 합니다. 이를 위해서는 고급 기술 스택과 추가적인 시간 및 노력이 필요하게 되는데, 이는 프로젝트의 일정에 부담을 줄 것 같았습니다.페이지 구성의 어려움: 사용자가 자유롭게 배치할 수 있는 만큼, 어떻게 배치해야 좋은 페이지가 될지 모를 가능성도 컸습니다. 특히, 디자인 경험이 없는 사용자는 이 기능을 활..
TCP 혼잡 제어
·
전공 공부/컴퓨터네트워크
TCP 혼잡 제어: AIMDAIMD(Additive Increase Multiplicative Decrease)는 TCP 혼잡 제어에서 사용되는 알고리즘으로, 송신자는 패킷 손실이 발생할 때까지 전송 속도를 증가시키고, 손실이 발생하면 전송 속도를 감소시킵니다. 이 과정을 통해 네트워크 혼잡을 최소화하고 전송 성능을 최적화합니다.가법적 증가: 송신자는 매 RTT(Round-Trip Time)마다 전송 속도를 1 MSS(Minimum Segment Size)만큼 증가시킵니다.승법적 감소: 패킷 손실이 감지되면 전송 속도를 절반으로 감소시킵니다.  왜 AIMD를 사용하는가? AIMD는 네트워크 혼잡을 방지하기 위한 혼잡 제어 알고리즘입니다. 전송 속도를 점진적으로 증가시키고, 혼잡을 감지하면 급격히 감소시키..
혼잡 제어의 원리
·
전공 공부/컴퓨터네트워크
혼잡 제어란 무엇인가?혼잡 제어는 네트워크에서 다수의 송신자가 동시에 많은 데이터를 빠르게 전송할 때 발생하는 혼잡을 해결하기 위한 메커니즘입니다. 혼잡이 발생하면 패킷 지연이나 패킷 손실이 생기며, 네트워크 성능이 저하됩니다.  혼잡 제어와 흐름 제어의 차이혼잡 제어는 다수의 송신자가 네트워크에 과도한 데이터를 보내는 상황을 관리하는 것이며, 흐름 제어는 단일 송신자가 수신자의 처리 능력을 초과하지 않도록 전송 속도를 조절하는 메커니즘입니다. 흐름 제어와의 차이점 - **혼잡 제어**: 네트워크 전체의 혼잡을 관리. - **흐름 제어**: 수신자의 처리 능력을 고려해 데이터를 전송. 더보기✅ 흐름 제어와의 차이점 혼잡 제어: 네트워크 전체의 혼잡을 관리.흐름 제어: 수신자의 처리 능력을 고려해 데이터..
TCP 흐름 제어
·
전공 공부/컴퓨터네트워크
TCP 흐름 제어TCP 흐름 제어는 송신자가 수신자의 버퍼 크기를 초과하지 않도록 전송 속도를 조절하는 과정입니다. 이는 Receive Window(rwnd) 값을 통해 이루어집니다. 이 과정에서 송신자는 수신자가 수신할 수 있는 데이터 크기보다 많은 데이터를 전송하지 않도록 보장합니다.TCP 흐름 제어의 과정수신자는 자신이 처리할 수 있는 여유 공간을 나타내는 rwnd 값을 송신자에게 전달합니다. 이 값은 TCP 헤더의 Receive Window 필드에 담겨 전송됩니다.송신자는 rwnd 값보다 적은 데이터 양을 전송하며, 수신자의 버퍼가 가득 차지 않도록 데이터 흐름을 제어합니다.수신자가 버퍼에서 데이터를 처리할 때마다 rwnd 값이 갱신되어 송신자에게 다시 전달됩니다.TCP 연결 관리TCP는 송신자와..
연결지향형 트랜스포트 : TCP
·
전공 공부/컴퓨터네트워크
TCP란 무엇인가?TCP(Transmission Control Protocol)는 인터넷에서 데이터를 신뢰성 있게 전송하기 위한 트랜스포트 계층 프로토콜입니다. TCP는 연결 기반, 신뢰성 보장, 순서 보장 등을 제공하며, 데이터를 전송하기 전 송신자와 수신자 간에 핸드셰이킹 절차를 통해 연결을 설정합니다. 또한 TCP는 데이터가 손실되거나 잘못 전송된 경우 이를 복구하는 기능도 제공합니다.TCP의 주요 기능누적 ACK(Acknowledgement): TCP는 송신한 데이터가 수신자에게 정상적으로 도착했는지 확인하기 위해 누적 ACK를 사용합니다. 이때 송신자는 수신자로부터 정상 수신한 데이터에 대한 ACK 번호를 받습니다.파이프라이닝: 송신자는 여러 개의 데이터 세그먼트를 연속적으로 전송할 수 있습니다..
신뢰기반 데이터 전송의 원리
·
전공 공부/컴퓨터네트워크
신뢰기반 데이터 전송 프로토콜이란?신뢰기반 데이터 전송 프로토콜은 네트워크 상에서 데이터가 손실되거나 손상되지 않고, 정확한 순서로 전송될 수 있도록 보장하는 통신 방식입니다. 특히 데이터가 손실되기 쉬운 비신뢰적인 채널을 사용할 때, 이러한 프로토콜은 중요한 역할을 합니다.주요 개념과 용어체크섬(Checksum): 전송된 패킷 내 비트 오류를 탐지하기 위한 값입니다. 송신자는 데이터를 전송하기 전에 체크섬을 계산하여 패킷에 포함시키고, 수신자는 수신된 데이터의 체크섬을 확인해 오류 여부를 판단합니다.재전송(Retransmission): 수신자가 송신자의 패킷을 제대로 수신하지 못했을 때, 수신자는 송신자에게 해당 패킷의 재전송을 요청합니다.순서 번호(Sequence Number): 송신자가 보내는 각 ..
비연결형 트랜스포트 : UDP
·
전공 공부/컴퓨터네트워크
UDP란 무엇인가?UDP(User Datagram Protocol)는 트랜스포트 계층에서 사용되는 가장 기본적인 프로토콜로, 비연결형이고 신뢰성을 보장하지 않는 최선형 서비스입니다. 이 프로토콜은 데이터를 빠르고 간단하게 전송할 수 있도록 설계되었으며, 혼잡 제어나 오류 제어 같은 복잡한 기능은 제공하지 않습니다.UDP의 주요 특징비연결형: 송신자와 수신자 간에 별도의 연결 설정 과정(핸드셰이킹)이 필요하지 않으며, 각 데이터그램은 독립적으로 처리됩니다.손실 가능성: 데이터가 전송 중에 손실될 가능성이 있으며, 수신된 데이터의 순서가 바뀔 수 있습니다.RTT 지연 없음: 연결 설정 단계가 없으므로, **RTT(Round Trip Time)**로 인한 지연이 발생하지 않습니다.작은 헤더 크기: TCP보다 ..
다중화와 역다중화
·
전공 공부/컴퓨터네트워크
다중화와 역다중화란?다중화(Multiplexing)는 하나의 전송 매체에 여러 신호를 함께 결합하여 전송하는 기법입니다. 예를 들어, 여러 명이 한꺼번에 데이터를 전송하려면 각각의 신호를 결합해 하나의 통신 채널을 통해 보내는 것이 더 효율적입니다. 이 방식은 네트워크 리소스를 더욱 효율적으로 사용하기 위해 만들어졌습니다. 다중화는 네트워크나 전송 계층에서 주로 사용되며, 송신 측에서 여러 프로세스의 데이터를 하나의 세그먼트로 묶어 전송할 수 있게 합니다.반면, 역다중화(Demultiplexing)는 수신 측에서 다중화된 신호를 다시 분리하여 각각의 프로세스나 애플리케이션에 전달하는 과정입니다. 다중화된 데이터를 수신한 후, 이를 적절한 프로세스로 나눠야 하므로, 각 데이터에는 이를 구분할 수 있는 포트..