캐싱(Cache)?애플리케이션 성능을 개선하기 위한 핵심 기술로, 자주 사용되거나 최근에 사용된 데이터를 저장해두었다가 재사용하는 기술. 자주 사용되는 데이터를 빠르게 액세스할 수 있는 저장소(메모리, 디스크 등)에 저장하여 읽기 속도를 높이고 시스템 부하를 줄인다. 데이터베이스, API 호출, 파일 시스템, 계산 결과 등 느리거나 비용이 큰 작업의 결과를 캐싱하면 성능이 크게 향상된다. 주요 장점 속도 향상: 데이터를 메모리 등 빠른 저장소에서 바로 제공해 작업을 빠르게 처리.시스템 부하 감소: 데이터베이스나 외부 API 호출 빈도를 줄여 자원 사용량 감소.비용 절감: 네트워크 대역폭 및 서버 자원 사용량 감소. 작동 순서일반적으로 캐싱은 1. 조회 요청(클라이언트의 데이터 요청) → 2. 캐시 확인(..
레이스 컨디션 (Race Condition)두 개 이상의 프로세스(Process) 또는 스레드(Thread)가 동시에 공유 자원에 접근하려고 할 때 발생하는 문제로, 접근 순서를 예측할 수 없는 상황에서 발생하기 때문에, 결과 역시 예측할 수 없어 불안정한 프로그램 동작을 초래할 수 있다. 주로 다중 스레딩 환경에서 빈번히 발생하는데, 예를 들어 계좌 잔액을 동시에 업데이트하는 두 스레드가 있는 경우, 레이스 컨디션이 발생하면 잔액이 정확히 반영되지 않는 문제가 생길 수 있다. 이를 방지하기 위해 동기화 기법을 사용하며, 대표적으로 세마포어와 뮤텍스가 있다. 세마포어 (Semaphore)여러 스레드가 공유 자원에 접근하는 것을 제어하는 동기화 도구로, 주로 특정 리소스를 사용할 수 있는 티켓의 개수를 제..
컨텍스트 스위칭 (Context Switching)운영체제(OS)에서 하나의 프로세스나 스레드가 실행을 멈추고 다른 프로세스나 스레드를 실행하도록 전환하는 작업. 이 과정에서 시스템은 현재 실행 중인 작업의 상태를 저장하고, 새롭게 전환할 작업의 상태를 복원하여 실행을 계속하게 된다. 컨텍스트 스위칭은 멀티태스킹을 지원하기 위해 필수적이다. 컨텍스트 스위칭 개념 프로세스/스레드: 여러 작업이 동시에 실행될 수 있도록 CPU가 각 작업을 교대로 실행한다.컨텍스트(Context): 프로세스나 스레드의 실행 상태를 의미하며, CPU 레지스터 값, 프로그램 카운터, 스택 포인터, 메모리 맵 등을 포함한다.컨텍스트 스위칭: 특정 작업의 컨텍스트를 저장하고, 새로운 작업의 컨텍스트를 복원하는 과정을 통해 CPU 제..
전송 계층OSI 모델의 4번째 계층으로, 두 호스트 간의 데이터 전송을 담당한다. 주요기능 데이터 전송의 신뢰성: 데이터가 손실되지 않고 올바른 순서로 정확하게 전달되도록 보장.흐름 제어: 수신자의 처리 속도에 맞춰 데이터 전송 속도를 조절.오류 제어: 데이터 전송 중 발생할 수 있는 오류를 탐지하고 수정.세그멘테이션: 큰 데이터 블록을 작은 세그먼트로 나누어 전송. 프로토콜TCP (Transmission Control Protocol)데이터 전송 간 손실이 거의 발생하지 않는 프로토콜로, 세그먼트 단위로 데이터가 전송된다. 사용자에게 데이터를 전송하기 전에, 논리적 경로(가상회선)를 설정하고, 각 패킷에는 가상회선 식별자(VCI, Virtual Circuit Identifier)가 포함되며 모든 패킷을..
TCP (Transmission Control Protocol) 연결 지향: TCP는 데이터 전송을 시작하기 전에 송신자와 수신자 간의 연결을 설정한다. 이를 통해 신뢰할 수 있는 통신이 가능하게 된다.신뢰성: 데이터가 손실되지 않도록 보장한다. 전송된 데이터는 수신자가 확인(ACK)해야 하며, 응답이 없으면 재전송된다.순서 보장: TCP는 데이터 패킷이 전송된 순서대로 수신되도록 보장한다. 데이터는 바이트 스트림으로 취급되어 순서가 유지된다.흐름 제어: 수신자의 처리 능력을 초과하지 않도록 데이터 전송 속도를 조절한다.혼잡 제어: 네트워크의 혼잡 상태를 감지하고 이에 따라 데이터 전송 속도를 조절한다. UDP (User Datagram Protocol) 비연결형: UDP는 데이터 전송 전에 연결을 설..