Web 3

[Web] 동기(Synchronous)와 비동기(Asynchronous) 방식의 이해

프로그래밍을 하다 보면 항상 나오는 주제가 있다. 바로 동기(Synchronous)와 비동기(Asynchronous) 다.많은 사람들이 “동기는 순차적이고, 비동기는 동시에 한다” 정도로만 이해하고 넘어가지만, 그 배경과 흐름을 알면 훨씬 이해가 잘 된다.1. 동기(Synchronous) 방식의 시작초기의 프로그램들은 대부분 동기(Synchronous) 방식으로 만들어졌다.한 줄이 끝나야 다음 줄로 넘어가기 때문에 흐름을 이해하기 쉽고, 디버깅하기에도 단순했다. 👉 예를 들어, 파일을 읽어오는 코드가 있으면 프로그램은 읽기가 끝날 때까지 멈춰서 기다렸다가 다음 코드를 실행한다.System.out.println("파일 읽기 시작");String content = readFile("data.txt"); ..

Web 2025.09.25

[Web] 쿠키(Cookie) vs 세션(Session) vs 토큰(Token) 정리

웹 개발에서 사용자 인증/상태 관리를 위해 자주 등장하는 세 가지 방식, 쿠키, 세션, 토큰을 한눈에 비교해봅니다.1️⃣ 쿠키 (Cookie)정의:클라이언트(브라우저)에 저장되는 작은 데이터 조각. 서버가 브라우저에게 “이 정보를 저장해 두고 다음 요청 때 보내라”라고 지시함.저장 위치:브라우저에 저장 (클라이언트 측)동작 방식:사용자가 로그인하면 서버가 쿠키 생성 → 브라우저 저장브라우저가 이후 요청 시 자동으로 쿠키 전송서버는 쿠키 내용을 보고 인증/사용자 상태 확인장점:브라우저가 알아서 매번 요청 시 전송 → 편리소규모 데이터 저장 가능 (예: 로그인 토큰, 장바구니)단점:쿠키는 클라이언트에 저장되므로 탈취 가능 → 보안에 주의용량 제한 있음 (보통 4KB)서버와 무관하게 클라이언트가 삭제 가능2️..

Web 2025.09.24

[Web] WebSocket 동작 원리와 구현 방법 (순서도 + 코드 예시)

웹 서비스가 발전하면서 실시간으로 데이터가 오가는 서비스가 점점 많아지고 있습니다.예를 들어 실시간 채팅, 알림, 주식 차트, 온라인 게임과 같은 기능들이 그렇습니다.하지만 전통적인 HTTP 요청/응답 방식만으로는 이런 실시간 통신을 구현하기 어려웠습니다.HTTP는 본질적으로 클라이언트가 요청해야만 서버가 응답할 수 있기 때문에, 서버가 먼저 클라이언트에 데이터를 보낼 수 없었기 때문입니다.이런 한계를 극복하기 위해 여러 방식(폴링, 롱폴링, SSE 등)이 등장했지만, 여전히 완벽하지 않았습니다.이 문제를 해결하기 위해 2011년 RFC 6455 로 표준화된 기술이 바로 WebSocket(웹소켓) 입니다.지금은 대부분의 브라우저와 서버 환경에서 지원되며, 실시간 웹 통신을 구현할 때 널리 활용되고 있습니..

Web 2025.09.08