[CS/Web] JWT 토큰은 어디에 저장할까?
·
CS/Web
세션, 쿠키, 로컬스토리지에 대해 정리한 후 'JWT 토큰은 어디에 저장해야 할까?'라는 궁금증이 생겼다. JWT란JWT(JSON Web Token)는 사용자 인증 정보를 담은 토큰이다.세션과 달리 서버에 상태를 저장하지 않고, 토큰 자체에 사용자 정보를 담아 인증하는 방식이다.로그인 성공 ↓서버: JWT 토큰 발급 ↓브라우저: 토큰 저장 ↓이후 요청마다 토큰 전송 → 서버가 검증토큰을 어딘가에 저장해야 하는데, 주로 로컬스토리지와 HttpOnly 쿠키 중 하나를 선택한다고 한다. 로컬스토리지에 저장할 경우// 로그인 후 토큰 저장localStorage.setItem("accessToken", token);// 요청 시 직접 꺼내서 헤더에 담음const token =..
[CS/Web] 웹은 어떻게 상태를 기억할까? - 세션, 쿠키, 로컬스토리지
·
CS/Web
웹에서 상태를 유지하는 방법은 세션, 쿠키, 로컬스토리지로 나뉜다.흐름으로 따라가며 각 개념을 이해해보자.1. 웹은 어떻게 동작할까?웹 서비스는 기본적으로 다음 구조로 동작한다.브라우저 ↓ HTTP 요청서버 ↓DB 사용자가 로그인하는 경우를 예로 들면:브라우저에서 로그인 버튼 클릭 ↓HTTP 요청 (POST /login) ↓Spring 서버에서 인증 처리 ↓MySQL에서 사용자 정보 조회 ↓응답 반환로그인은 성공했는데, 다음 요청에서 서버는 이 사용자가 누구인지 어떻게 알까?2. HTTP는 상태를 기억하지 않는다HTTP는 Stateless(무상태) 프로토콜이다. 각 요청은 독립적이고, 이전 요청을 기억하지 않는다.요청1 : POST /login ..
[CS/컴퓨터 아키텍처] 컴퓨터의 데이터 처리 - CPU, RAM, 캐시, 버퍼
·
CS/컴퓨터 아키텍처
컴퓨터가 데이터를 처리하는 흐름은 디스크 → RAM → CPU로 이어진다.흐름으로 따라가며 각 개념을 이해해보자.1. 컴퓨터는 어떻게 동작할까?컴퓨터 내부는 크게 세 가지로 구성된다.CPU → 계산하는 곳RAM → 작업하는 곳디스크 → 저장하는 곳프로그램을 실행하면 내부적으로 이런 흐름이 일어난다.디스크에 저장된 프로그램 ↓RAM에 올림 (메모리 적재) ↓CPU가 실행 ↓결과 출력IntelliJ를 실행하는 경우를 예로 들면:디스크 : IntelliJ 설치 파일 저장 ↓RAM : 실행에 필요한 데이터 로드 ↓CPU : 코드 편집, 빌드 등 연산 처리이 흐름이 컴퓨터 동작의 기본이다. 이후 나오는 캐시와 버퍼는 이 흐름의 속도를..
[CS/DB] DB 동시성 처리 - 트랜잭션, Lock, MVCC
·
CS/DB
DB 동시성 제어는 트랜잭션에서 시작해 Lock → Deadlock → MVCC 로 이어진다.흐름으로 따라가며 각 개념을 이해해보자.1. 트랜잭션(Transaction)트랜잭션은 여러 DB 작업을 하나의 논리적 단위로 묶어 전부 성공하거나 전부 실패하도록 보장하는 것이다.왜 필요한가A 계좌에서 B 계좌로 만원을 이체하는 경우를 예로 들어보자.A 계좌 -10000B 계좌 +10000두 작업 중 하나만 성공하면 문제가 생긴다.A 계좌 -10000 ✅ 성공B 계좌 +10000 ❌ 실패→ 돈이 사라짐그래서 두 작업은 반드시 둘 다 성공하거나, 둘 다 실패해야 한다.이 작업 묶음이 트랜잭션이다.트랜잭션 제어어 (TCL)TCL은 트랜잭션의 시작과 종료를 제어하는 명령어다.COMMIT, ROLLBACK, SAV..
[CS/OS] OS 동시성 문제의 흐름 - 스레드부터 Deadlock까지
·
CS/OS
운영체제의 동시성 문제는 프로세스/스레드에서 시작해 Race Condition → Lock → Semaphore → Deadlock으로 이어진다.흐름으로 따라가며 각 개념을 이해해보자.1. 프로세스와 스레드스레드는 메모리를 공유하기 때문에 동시성 문제가 발생한다.- 프로세스란?프로세스(Process)는 실행 중인 프로그램이다.카카오톡을 실행하면 카카오톡 프로세스가 생성되고, 크롬을 실행하면 크롬 프로세스가 생성된다.각 프로세스는 독립된 메모리 공간을 가진다. 즉, 카카오톡이 크롬의 데이터를 함부로 읽거나 쓸 수 없다.- 스레드란?스레드(Thread)는 프로세스 안에서 실제 작업을 수행하는 실행 단위다.하나의 프로세스는 여러 스레드를 가질 수 있다.예를 들어 크롬 브라우저를 실행하면:Chrome 프로세스 ..
운영체제 (OS) 1. Introduction 정리
·
CS/OS
운영체제 Operating SystemsCh1. Introduction to Operating Systems: 운영체제의 기본 개념 및 현재 동향 Q. 프로그램이 실행되면 어떤 일이 일어나는가?A. running program = CPU instruction(명령어) 집합을 프로그램 순서대로 실행하는 것 1. processor(CPU)가 메모리에서 instruction fetch한다. 2. Decode : instruction이 무엇인지 figure out 3. Execute : ex) add two numbers, access memorym check a conditon, jump to function, ... 4. processor가 다음 instruction으로 넘어가고 1-3..