CS

Socket vs WebSocket
소켓(Socket)이란?소켓(Socket) 은 네트워크를 경유하는 프로세스 간 통신의 종착점.OSI 7계층 중 응용 계층에 속하는 프로세스들은 데이터 송수신을 위해 반드시 소켓을 거쳐 전송 계층으로 데이터를 전달해야한다.즉, 소켓은 전송 계층과 응용 프로그램 사이의 인터페이스 역할을 하며 떨어져 있는 두 호스트를 연결해준다.소켓은 아래의 요소들을 담고 있는 하나의 파일인 것이다.프로토콜상대와 자신의 IP 주소Port 번호통신 동작 진행 상태소켓에 담기는 정보 심화편+ with GPT더보기✅ 소켓(Socket)의 기본 구성 정보소켓은 단순한 ‘연결’이 아니라, 네트워크 통신을 위한 컨텍스트(Context)입니다.즉, 소켓을 생성하면 다음과 같은 중요한 정보들이 내부에 저장됩니다:정보항목설명IP 주소로컬 I..

HTTP 개요 및 HTTP 버전별 차이
HTTP란?HTTP(HyperText Transfer Protocol)는 클라이언트와 서버 간에 의미 있는 요청과 응답을 주고받기 위한 텍스트 기반 통신 프로토콜입니다.'의미 있는' 이란?HTTP는 단순히 데이터를 주고받는 수준을 넘어서, 요청과 응답의 목적과 맥락을 헤더(Header)를 통해 설명할 수 있습니다.예를 들어, GET, POST와 같이 요청의 종류를 설명하고, User-Agent를 통해 누가 보냈는지를 설명하며 Content-Type을 통해 데이터의 형식이 무엇인지를 설명할 수 있습니다.전송 방식HTTP는 어플리케이션 계층의 프로토콜로 신뢰가능한 전송 계층 프로토콜(TCP) 위에서 동작합니다. 보안이 강화된 버전인 HTTPS(HTTP over TLS)는 TLS(SSL)를 통해 데이터를 암호..

Audio 기본 지식 이해하기(Sample, Frame, Sampling Rate, Channel, Bit Depth)
오디오 실시간 처리를 위해 AVAudioEngine에 대해 학습하려고 했더니 꼬리에 꼬리를 무는 배경 지식이 필요했다. AVAudioEngine -> AVAudioNode -> AVAudioPCMBuffer -> Frame -> Sample -> ... 위와 같은 순서로 배경 지식에 대한 의존성이 발생했다.이렇게 꼬리를 물며 학습해나가다 보니 오디오의 기본적인 개념에 도달하게 되었다. Frame은 뭐고 Sample은 뭘까..학부 시절에 배웠던 것 같지만, 너무나 희미했기에 처음부터 다시 정리해보기로 했다.아날로그 신호와 샘플링(Sampling)우리가 귀로 듣는 소리는 시간에 따라 연속적으로 변화하는 아날로그 신호이다. 이 소리를 디지털로 표현하려면, 숫자(수치)로 변환해야 하는데,이 때 사용하는 방법이 ..
SQL 기본 쿼리문 정리
목차SQL 이란SQL 명령어 분류DDL(데이터 정의어)CREATEALTERDROPTRUNCATEDML (데이터 조작어)INSERTUPDATEDELETESELECTDCL (데이터 제어어)GRANTREVOKESQL이란SQL은 Structured Query Language의 약자로 관계형 데이터 모델을 따르는 DBMS의 표준 데이터베이스 언어입니다.SQL 명령어 분류SQL 명령어는 수행하는 역할에 따라 3가지로 분류가 나누어집니다.DDLData Definition Language데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어데이터베이스를 정의하거나 수정명령어 수행 시 이전 상태로 복귀 불가DMLData Manipulation Language데이터베이스에 저장된 데이터를 처리하거나 ..
Heap이 Stack에 비해 느릴 수 밖에 없는 이유
Heap이 Stack에 비해 느릴 수 밖에 없는 이유"스택이 힙보다 빠르다" 라는 표현은 모호한 표현입니다.정확한 표현은 "스택에 할당된 변수에 접근하는 것이 힙에 할당된 변수에 접근하는 것보다 빠르다" 입니다.왜냐하면, 스택과 힙 모두 가상 메모리에 불과하기 때문인데요.하드웨어로 내려가면 똑같이 물리 메모리인 RAM 어딘가에 저장되어 있고, 주소를 통해 논리적으로 구분되어 있기 때문에 둘의 속도가 다를 수 없습니다.그렇다면 접근하는 속도가 왜 차이 날까?현재 사용되는 대부분의 CPU는 FP(Frame Pointer)를 두어 함수의 스택 프레임의 시작주소를 저장하고 있습니다.그리고 컴파일러는 컴파일 과정을 통해 함수의 스택 프레임 내에 변수들의 크기와 순서를 알 수 있기 때문에, 어느 위치(offset)..

객체 지향 프로그래밍을 설계할 때는 SOLID 원칙을 지켜야 한다.
목차 SOLID 원칙은 누가 만들었을까? 단일 책임 원칙 SRP Single Responsibility Principle 개방/폐쇄 원칙 OCP Open Closed Principle 리스코프 치환 원칙 LSP Liskov Substituion Principle 인터페이스 분리 원칙 ISP Interface Segregation Principle 의존관계 역전 원칙 DIP Dependency Inversion Principle SOLID는 아직도 유효한가? SOLID 원칙은 누가 만들었을까? 2000년대 초 로버트 마틴이 주장한 객체지향 5원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이라고 한다. 이러한 SOLID 원칙들은 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자 할 때 적용하면 좋은..