본문 바로가기
728x90

개발새발14

[시스템디자인] 세션과 JWT의 차이 세션 기반 인증 세션 기반 인증은 서버 측에서 사용자의 세션 정보를 저장하고, 클라이언트에게는 해당 세션을 식별할 수 있는 고유한 세션 ID를 제공하는 방식이다.  세션 기반 인증의 작동 방식 사용자가 로그인하면 프론트엔드가 인증 정보를 백엔드 서버로 전송한다. 백엔드는 비밀 키를 사용해 세션을 생성하고 세션 데이터를 데이터베이스나 세션 저장소에 저장한다. 서버는 고유한 세션 ID가 포함된 쿠키를 사용자의 브라우저로 전송한다. 이후의 요청에서 브라우저는 헤더에 세션 ID를 포함시켜 전송한다.서버는 세션 ID를 검증하고 접근을 허용한다.  세션 기반 인증의 장점세션 관리가 용이하다: 세션 저장소에서 간단히 세션을 제거하여 로그아웃 처리가 가능하다.중앙 집중식 세션 관리로 사용자 활동 추적과 제어가 편리하다.. 2025. 1. 14.
[네트워크] HTTP의 진화 2. HTTP/2.0 HTTP/2.0HTTP/2.0은 기존 HTTP/1.1 버전의 성능 향상에 초점을 맞춘 프로토콜이다.HTTP/1.1 까지는 한번에 하나의 파일만 전송이 가능했다. 비록 파이프라이닝 기술이 있었지만, 여러 파일을 전송할 경우 선행하는 파일의 전송이 늦어지면 HOLB이 발생했다. 따라서 HTTP/2.0에서는 이 문제를 해결하기 위해 여러 파일을 한번에 병렬로 전송한다. 이 덕분에 웹 응답 속도가 HTTP/1.1에 비해 15~50% 향상되었다.   Binary Framimg LayerHTTP/1.1과 HTTP/2.0의 주요한 차이점은 HTTP 메시지가 1.1 에서는 text로 전송되었던 것과 달리, 2.0 에서는 binary frame 으로 인코딩되어 전송된다는 점이다.  또한 HTTP 헤더에 대해서 배웠을 때.. 2024. 7. 17.
[네트워크] HTTP의 진화 1. HTTP/0.9~HTTP/1.1 HTTP (HyperText Transfer Protocol)은 월드 와이드 웹의 기반이 되는 프로토콜이다.    HTTP/0.9HTTP의 시작은 1989년 팀 버너 리(Tim Berners-LEE)에 의해 제안된 인터넷의 하이퍼 텍스트 시스템이다. 초기 버전인 HTTP/0.9는 매우 단순한 프로토콜이었다.요청은 단일 라인으로 구성되어 가능한 메서드는 `GET`이 유일했으며, 헤더(header)도 없어 요청과 응답이 극히 단순명료했다. 또한 상태 코드(status code)도 없었기 때문에 문제가 발생할 경우 특정 html 파일을 오류에 대한 설명과 함께 보냈다. ▷ Request ▷ Response HTTP/0.9 스펙을 요약하면 다음과 같다.TCP/IP 링크 위에서 동작하는 ASCII 프로토콜GET .. 2024. 7. 7.
[WEB] Web Server와 WAS의 차이 Web Server 웹 서버는 클라이언트가 요청한 정적인 컨텐츠(HTML, jpeg, css 등)를 HTTP 프로토콜을 통하여 제공해주는 서버로, 정적 컨텐츠 제공이 가장 큰 역할이다. 동적인 요청이 들어왔을 경우엔 해당 요청을 웹 서버에선 처리할 수 없기 때문에 WAS 에게 보내주고, WAS 에서 처리한 결과를 클라이언트에게 전달해주는 역할도 한다. 대표적인 예로는 Nginx, Apach Server 등이 있다.  WAS(Web Application Server)웹 서버로부터 오는 동적인 요청을 처리하는 서버를 말한다.WAS = Web Server + Web Container WAS 는 웹 서버와 웹 컨테이너가 합쳐진 형태로서, 웹 서버 단독으로는 처리할 수 없는 DB 조회나 다양한 로직 처리가 필요.. 2024. 6. 27.
[자료구조] JavaScript에서 배열의 pop 과 shift JavaScript에서 배열의 pop 과 shift 는 스택/큐 구현을 쉽게 해준다.  코딩테스트 연습을 하다보니 자꾸 시간 초과가 나서 왜 때문인가 찾아봤더니만, pop 메서드는 시간 복잡도 O(1) 을 가지는 반면, shift 메서드는 시간 복잡도 O(n) 을 가진다.   poppop 메서드는 배열의 마지막 요소를 제거하고 그 요소를 반환한다. const arr = [1, 2, 3, 4, 5];const lastElement = arr.pop(); // lastElement는 5, arr는 [1, 2, 3, 4] 시간 복잡도는 O(1) 으로, 배열의 마지막 요소에 접근하고 이를 제거하는 작업이므로, 배열의 길이에 관계없이 일정한 시간이 걸린다.  shift shift 메서드는 배열의 첫번째 요소를 .. 2024. 6. 24.
[알고리즘] 탐색 알고리즘 (feat. DFS와 BFS) 코딩테스트를 준비해본 사람이라면 BFS와 DFS 때문에 머리를 싸맨 경험이 한번쯤은 있을 것이다. BFS와 DFS는 탐색 알고리즘 중의 하나인데,탐색 알고리즘이란 데이터 구조(ex. 배열, 트리, 그래프) 내에서 특정 요소를 찾기 위해 사용되는 알고리즘이다.  선형 탐색 (Linear Search)설명: 가장 단순한 형태의 탐색 알고리즘으로, 리스트의 첫 번째 요소부터 마지막 요소까지 순차적으로 탐색하며 목표 값을 찾는다.시간 복잡도: O(n) (n: 리스트의 크기) 예제 코드: function linearSearch(arr, target) { for (let i = 0; i  이진 탐색 (Binary Search)설명: 정렬된 리스트에서 효율적으로 목표 값을 찾는 알고리즘이다. 리스트의 중간 값을.. 2024. 5. 28.
728x90
반응형