Fullstack-Study

프로세스

스레드

프로세스 vs 스레드 차이

프로세스

스레드

Context Switching

동시성 문제 (Race Condition)


메모리

메모리 구조

영역 저장 내용 특징
코드 실행할 코드 읽기 전용
데이터 전역변수, static 변수 프로그램 시작 - 종료
힙(Heap) 동적 할당 객체(new) 개발자가 관리(GC)
스택(Stack) 지역변수, 메서드 호출 자동 해제, LIFO
public class Example {
    static int staticVar = 10;  // 데이터 영역

    public void method() {
        int local = 5;          // 스택 영역
        User user = new User(); // 힙 영역 (객체)
    }
}

GC (Garbage Collection)

스택 오버플로우


HTTP(HyperText Transfer Protocol)

HTTP vs HTTPS

HTTP

HTTPS

SSL/TLS

HTTP 버전별 차이

버전 특징
HTTP/1.1 요청마다 연결, Keep-Alive로 재사용 가능
HTTP/2 하나의 연결로 여러 요청 동시 처리 (멀티플렉싱)
HTTP/3 UDP 기반, 더 빠른 연결

TCP/UDP

TCP

UDP

3-way handshake (TCP 연결 과정)

클라이언트 → 서버: SYN      (연결 요청)
서버 → 클라이언트: SYN + ACK (요청 수락)
클라이언트 → 서버: ACK      (확인)
→ 연결 완료!

DNS(Domain Name System)

google.com → DNS 조회 → 142.250.196.142 (IP)
→ 해당 IP 서버로 요청

쿠키 / 세션 / JWT

저장위치 특징
쿠키 클라이언트 브라우저 서버 부하 없음, 탈취 위험
세션 서버 안전하지만 서버 메모리 사용
JWT 클라이언트 서버 상태 없음, 토큰 자체에 정보 포함

OSI 7계층

계층 이름 예시
7 응용 (Application) HTTP, FTP, DNS
6 표현 (Presentation) 암(복)호화, 압축
5 세션 (Session) 세션 연결 관리
4 전송 (Transport) TCP, UDP
3 네트워크 (Network) IP, 라우터
2 데이터링크 (DataLink) MAC 주소
1 물리 (Physical) 케이블, 신호