CS/개발지식4 인증정보 저장방식과 전달 정보를 기준으로 세션, 쿠키, JWT 이해 HTTP 프로토콜의 Connectionless와 Stateless 특성 때문에, 사용자가 로그인해도 서버는 상태를 기억하지 않습니다. 즉, 로그인 이후 매 요청마다 다시 인증 정보를 보내지 않으면 인증된 상태를 유지할 수 없습니다.하지만 실제 웹 애플리케이션에서는 로그인을 한 번 하면 이후 여러 페이지에서 반복 로그인을 하지 않아도 접속이 유지됩니다. 그 이유는 인증 정보를 클라이언트 혹은 서버에 저장하고 매 요청마다 인증 정보를 포함시키기 때문입니다. 그것이 어떻게 가능한지 살펴보겠습니다.인증방식을 세션과 쿠키와 JWT로 나누어서 이해하기에는 다소 이해가 힘들어 인증정보 저장방식과 전달 정보로 나누어 글을 작성하였습니다.먼저 인증정보 저장공간에는 클라이언트의 sessionStorage, localSto.. 2025. 5. 30. 데이터베이스 시스템에서 동시성을 제어하는 방법? 대표적인 동시성 제어 방식으로 MVCC(Multi-Version Concurrency Control) 와 Lock-Based Concurrency Control이 있습니다.1. MVCC(Multi-Version Concurrency Control/ 잠금 없는 읽기)MVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식입니다. 각 트랜잭션은 자신만의 일관된 스냅샷(MySQL::언두 로그)을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않습니다.데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있습니다. 트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못합니다.또한 읽기 작업.. 2024. 12. 18. 동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애 조치 방법 외부 서비스 장애로 인해 응답이 오래 걸린다고 했을 때 외부 API 응답으로 대기하는 자원들이 운영 서버 내부에 쌓이면서 성능에 악영향을 줄 수 있습니다. 이를 해결하기 위한 가장 기본적인 방법은 타임아웃을 설정하는 것입니다. 크게 타임아웃에는 커넥션 타임아웃과 리드 타임아웃, HTTP 커넥션 풀 타임아웃을 설정해 볼 수 있습니다.다음과 같이 특정 서비스의 장애가 전체 서비스에 영향을 주는 경우는 어떻게 해결할 수 있을까요? 🤔이 경우는 벌크헤드 패턴을 적용해 볼 수 있습니다. 벌크헤드 패턴은 기능의 종류마다 자원 사용을 분리하는 것을 의미하는데요. 자원을 격리하여 서비스 일부에 장애가 발생해도 전체로 전파되지 않도록 보장해 주는 패턴입니다. 위 예시에서는 외부 서비스마다 다른 HTTP 커넥션 풀을 사.. 2024. 12. 11. 실생활 예시로 이해하는 동기/비동기 & 블로킹/논블로킹 동기 (Synchronous)패스트푸드점에서 햄버거를 주문하고 카운터 앞에서 기다리는 상황주문 접수 → 조리 → 완성 → 수령의 순서가 보장됨다른 손님의 주문이 중간에 끼어들 수 없음블로킹 (Blocking)식당에서 1시간 웨이팅을 하는 상황웨이팅 동안 자리에서 이탈할 수 없음 (다른 일 불가능)내 차례가 되기 전까지 계속 기다려야 함 🔍 핵심 차이점:동기: 작업의 순서와 결과에 초점 (A 작업 후 B 작업)블로킹: 다른 작업 수행 가능 여부에 초점 (다른 작업 불가능한 상태)비동기 (Asynchronous)배달 앱으로 음식을 주문하고 다른 일 하는 상황주문 후 배달되는 동안 다른 일을 할 수 있음여러 가게에 동시에 주문할 수 있음논블로킹 (Non-blocking)식당 웨이팅 등록 후 전화나 문자로 알.. 2024. 12. 10. 이전 1 다음