본문 바로가기

기술블로그334

21. 로그인 [세션 기반 인증 방식, 토큰 기반 인증 방식] 21. 로그인 [세션 기반 인증 방식, 토큰 기반 인증 방식] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 세션 기반 인증 방식 HTTP의 특징 중 하나는 stateless 한 것이다 위의 그림처럼 한번 요청하고 응답한 사항은, 추후에 다시 요청을 받을 때, 서버에서 기억을 못 한다 즉, 원래는 한번 로그인 했다고 로그인 상태를 유지 시켜주지 않는다 그래서 유저들의 UX을 위해서 사용자들의 정보를 기억하기 위해서 세션을 유지해야 한다 세션 (Session) : 사용자가 인증을 할 때, 서버가 정보를 저장하는 것을 세션이라고 한다. 클라이언트가 로그인을 요청하면, 서버에서 쿠키에 세션을 생성하고 클라이언트에 응답을 해준다 set-cookie : SESSIONID = XXXXXXXXXXXXXXXXX.. 2023. 3. 7.
1. AWS Introduction 1. AWS Introduction AWS AWS Amazon Web Services AWS는 클라우드를 제공한다 사용자의 요구에 따른 서버 또는 서비스를 제공한다 덕분에 웹사이트 운영을 소수의 개발자로 운영을 할 수 있도록 만들어 주었다 아마존, 넷플릭스 같은 큰 기업의 웹 사이트에 도움을 주고 있다 AWS는 복잡하고, 확장이 가능한 애플리케이션을 만들 수 있도록 도와준다 다양한 산업에서 사용이 될 수 있다 IT 산업, 백업 및 저장소, 빅 데이터 분석 웹 사이트 배포, 모바일 또는 소셜 어플리케이션 게임 (게임 서버를 클라우드에서 실행 시키는 것) AWS Global Infrastructure AWS를 사용 함으로써, 어플리케이션을 전 세계 사람들이 사용할 수 있도록 만들 수 있다 AWS Region.. 2023. 3. 6.
[Python] 백준 1913 달팽이 🧑‍💻 [Python] 백준 1913 달팽이 Silver 3 - 구현 무조건 matrix[0][0]은 N * N 이다 시작을 N * N으로 하고, 내려가면서 -1 을 한다 만약에 다음 좌표가 0이 아니거나, 행렬을 나가게 된다면 왼쪽으로 90도를 돌아서 앞으로 가면서 -1을 하면 된다 이것을 좌표의 값이 1이 될때까지 진행을 한다 코드 N = int(input()) M = int(input()) matrix = [[0] * N for _ in range(N)] num, i, j = N * N, 0, 0 ans_row, ans_column = 0, 0 while num > 0: # 아래로 내려가기 while i < N and matrix[i][j] == 0: if num == M: ans_row, ans_.. 2023. 3. 4.
20. 웹브라우저의 캐시 [HTTP 해더, 쿠키] 20. 웹브라우저의 캐시 [HTTP 해더, 쿠키] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) HTTP 해더 HTTP 전송에 필요한 모든 부가 정보를 담고 있다 크게 General, Response Headers, Request Headers로 나뉜다 https://en.wikipedia.org/wiki/List_of_HTTP_header_fields List of HTTP header fields - Wikipedia From Wikipedia, the free encyclopedia HTTP header fields are a list of strings sent and received by both the client program and server on every HTTP request.. 2023. 3. 3.
19. 웹브라우저의 캐시 [로컬 스토리지, 세션 스토리지] 19. 웹브라우저의 캐시 [로컬스토리지, 세션 스토리지] 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 웹 브라우저의 로컬 스토리지 하나의 웹 브라우저에 저장되는 key : value 즉 Chrome에서 하나의 데이터를 저장한다고 해도, Edge브라우저에 저장이 안 된다 Chrome 이라는 하나의 웹브라우저의 로컬 스토리지에 데이터를 저장하는 것이다 같은 컴퓨터지만 다른 브라우저 key에는 하나의 value만 넣을 수 있다 value는 리스트로 만들어질 수 있다 최대 5MB까지 저장을 할 수 있고, 사용자가 직접 데이터를 삭제하지 않는 한, 평생 로컬 스토리지에 저장되어 있다 자동 로그인, 검색할 때에 나오는 전에 검색한 기록 등 사용자 행위를 기억할 때에 사용된다 // 추가 localStorag.. 2023. 3. 3.
Udemy : 알고리즘 자료구조 Udemy : 알고리즘 자료구조 udemy 알고리즘 코딩 테스트 배열 파이썬은 리스트를 사용한다 arr = [10, 11, 12, 13] arr[2] = 5 # output : [10, 11, 5, 13] 탐색 : O(1) 삽입/삭제 : O(N) 스택/ 큐 Stack = LIFO (Last In First Out) 리스트 안에 제일 마지막에 추가된 요소를, 제일 먼저 뺀다 즉 append를 통해서, 리스트 제일 마지막에 값을 넣는다 pop을 통해서 리스트 제일 마지막 요소를 빼낸다 맨 마지막에 요소를 추가하거나, 맨 마지막의 요소를 빼는 것이라서 삽입/삭제가 O(1) 이다 Queue = FIFO (First In First Out) 리스트 안에 제일 처음에 추가된 요소를, 제일 먼저 빼는 것 deque를.. 2023. 3. 2.
18. HTTP, HTTPS & TLS 18. HTTP, HTTPS & TLS 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) URL을 입력하고, 화면을 볼 때까지의 과정 대기열 URL을 통해 요청을 하면, 브라우저는 URL을 대기열에다 넣는다 캐싱 캐싱을 통해 원래 서버에 직접 접근을 하지 않고, 캐시 안에 대기열에 요청한 값을 저장을 한다 추후에 같은 값을 요청하면, 이미 저장이 되어 있어, 더 빠르게 반응을 한다 또한 직접 서버에 접근을 하는 것이 아니라서, 보안성도 보장이 될 수 있다 (프록시 캐시) DNS 서버 주소 즉 수신 주소를 찾는 것이다 유저가 브라우저 창에 요청한 주소는 컴퓨터가 읽을 수 없다 즉 DNS를 통해 브라우저 창에 요청한 주소의 IP주소로 변환해준다 ARP를 통해서 IP주소의 MAC주소를 찾아준다 TCP, 3.. 2023. 3. 2.
[Python] 백준 13397 구간 나누기 2 🧑‍💻 [Python] 백준 13397 구간 나누기 2 Gold 4 - 이진 탐색 구간의 점수의 최댓값의 최솟값을 기준으로 mid를 구하는 것이다 즉 주어진 배열에서 순회하면서 구간의 최댓값과 최솟값을 구해서 mid보다 작거나 같으면 계속 탐색을 한다 그게 아니면 새로운 구간을 만들어서, 새로운 최댓값과 최솟값을 구해준다 코드 N, M = map(int, input().split()) array = list(map(int, input().split())) def groups(mid): min_num, max_num = array[0], array[0] count = 1 for i in range(N): min_num = min(min_num, array[i]) max_num = max(max_num, a.. 2023. 3. 1.
17. 라우팅 17. 라우팅 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 라우팅이란? 라우팅은 네트워크에서 경로를 선택하는 프로세스다 더 나아가 라우팅은, 데이터를 보낼 때에 최적의 경로를 선택하여 데이터가 목적지에 도착할 수 있도록 설정을 해준다 예) 네비게이션 네트워크와 네트워크 사이에는 수 많은 노드들이 존재를 한다 그 수 많은 노드들을 거쳐가는데, 최적의 경로를 찾아야 데이터를 더 빠르게 송수신할 수 있다 이것을 라우팅이라 하고, 라우터는 최적의 경로를 설정해주는 기기이다 라우팅 테이블 라우터는 라우팅 테이블을 기반으로 최적의 경로를 선택한다 라우팅 테이블은 네트워크 연결이 포함 되어 있는 리스트다 라우팅 테이블은 IP주소를 기반으로 사용된다 라우팅 테이블은 컴퓨터 네트워크에서 목적지 주소를 목적지에 .. 2023. 3. 1.