포스팅 썸네일 이미지

CS & IT실무/Web

OAuth

개념 접근 위임을 위한 개방형 표준 방법 보통 다른 사이트에 있는 사용자들의 정보에 비밀번호를 제공하지 않고 다른 사이트나 애플리케이션이 접근 가능하도록 승인하는 방법으로 사용된다. 소비자는 서비스 제공자로부터 id, password 대신 accessToken을 발급받아 접근한다. 효과 OAuth가 사용되기 전에는 인증방식의 표준이 없었기 때문에 기존의 기본인증인 아이디와 비밀번호를 사용하였는데, 이는 보안상 취약한 구조이다. 기본 인증이 아닐 경우는 각 애플리케이션들이 각자의 개발한 회사의 방법대로 사용자를 확인하였다. 예를 들면 구글의 AuthSub, AOL의 OpenAuth, 야후의 BBAuth, 아마존의 웹서비스 API 등이 있다. OAuth는 이렇게 제각각인 인증방식을 표준화한 인증방식이다. O..

2021.09.22 게시됨


 포스팅 썸네일 이미지

CS & IT실무/Web

REST API

REST API 출현 배경 REST(Representational State Transfer)는 HTTP/1.0과 1.1의 스펙 작성에 참여하였고 아파치 HTTP 서버 프로젝트의 공동설립자인 로이 필딩(Roy Fielding)의 2000년 논문에서 처음 소개되었다. 발표 당시의 웹이 HTTP의 설계상 우수성을 제대로 사용하지 못하고 있는 상황을 보고 웹의 장점을 최대한 활용할 수 있는 아키텍쳐로서 REST를 소개하였고 이는 HTTP 프로토콜을 의도에 맞게 디자인하도록 유도하고 있다. REST의 기본 원칙을 성실히 지킨 서비스 디자인을 "RESTful"이라고 표현한다. API: 컴퓨터 기능을 실행하는 방법 REST API는 내 컴퓨터가 아니라 남의 컴퓨터를 실행시킴 인터넷과 웹을 통해 나의 컴퓨터를 제어할..

2021.09.22 게시됨


 포스팅 썸네일 이미지

CS & IT실무/Web

쿠키 & 세션 & JWT

목차 [쿠키와 세션을 왜 사용할까?-HTTP의 특성](#쿠키와 세션을 왜 사용할까?-HTTP의 특성) Cookie [Session](#Cookie & Session 기반 인증) [JWT 기반 인증](#JWT 기반 인증) 쿠키와 세션을 왜 사용할까?-HTTP의 특성 HTTP는 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜입니다. 클라이언트가 서버에게 요청을 보내면 서버는 응답을 보냄으로써, 데이터를 교환합니다. HTTP는 비연결성 및 무상태성 이라는 특징을 가지고 있습니다. HTTP는 요청에 대한 응답을 처리하게 되면 연결을 끊어 버립니다. 따라서 클라이언트에 대한 이전의 상태 정보 및 현재 통신의 상태가 남아있지 않습니다. 서버가 다수의 클라이언트와 연결을 계속 유지한다면..

2021.09.20 게시됨


 포스팅 썸네일 이미지

CS & IT실무/자료구조 & 알고리즘

0. 정렬 알고리즘 장단점, 수행시간 비교, 속도 비교, 종류

정렬 알고리즘 종류 정렬 알고리즘은 그 특지엥 따라 몇 가지로 분류할 수 있다. 비교 정렬 비교 정렬은 원소들을 정렬할 때 원소들의 순서에만 의존하는 알고리즘들을 일컫는다. 예를 들어 거품 정렬(bubble sort)은 비교하는 원소들이 숫자거나, 문자열이거나, 심지어는 복잡한 객체에 대해서도 순서가 결정되어 있다면 적용할 수 있다. 비교 정렬 알고리즘들은 아무리 빨라도 최악의 경우 Ω(nlogn)시간을 필요로 한다. 이는 이 알고리즘들을 결정 트리의 형태로 기술할 수 있다는 점에서 증명할 수 있는데, {\displaystyle n}개의 원소들의 순열은 n!가지로 이들을 잎 노드로 가지는 결정 트리의 깊이는 스털링 근사에 따라 적어도 [logn!] ≒nlogn이어야 하기 때문이다. 비교 정렬이 아닌 알고..

2021.09.16 게시됨


CS & IT실무/자료구조 & 알고리즘

탐색 알고리즘

1. 선형 탐색 배열 처럼 요소가 직선 모양으로 늘어선 자료구조에서 순회하는 것을 말한다. 순차적으로 요소를 방문하기 때문에 순차검색이라고도 한다. 시간 복잡도: o(n) 2. 이분 탐색(binary search) 탐색 범위를 두 부분으로 분할하면서 찾는 방식 시간 복잡도: o(logN) 알고리즘 우선 정렬을 해야 함 left right로 mid값 설정 mid와 내가 구하고자 하는 값과 비교 구할 값이 mid보다 높으면: left = mid + 1, 구할 값이 mid 보다 낮으면 right = mid -1 left > right가 될 때까지 계속 반복하기 3. 깊이 우선 탐색(Depth First Search) DFS 개념 루트 노드(혹은 다른 임의 노드)에서 시작해서 다음 분기(branch)로 넘어가기..

2021.09.16 게시됨


CS & IT실무/자료구조 & 알고리즘

백트래킹

제약 조건을 만족하는 문제를 해결하기 위해 쓰는 알고리즘 특정 조건을 만족하는 조합 알고리즘에 해당하는 모든 해를 찾는 문제 (모든 경우의 수 중 조건에 위배되는 경우는 빼고 답을 찾는 것) 답이 될 수 있는 모든 경우의 수를 DFS를 이용해 찾음 만약 답이 될 수 없는 경우면 더 이상 탐색하지 않고 이전으로 돌아감 재귀로 푸니까 스택 메모리 제한 확인해야됨 시간복잡도 O(N!) 개 오 래 걸 림 (N이 클 경우 백트래킹을 적용하면 시간초과 남) 12! = 479001600 = 4*10^8 기본 틀 void backtracking(int cnt, int idx) { if (cnt == m) { //조건 만족시 해야될 일 적음 return; } for (int i = idx; i < n; i++) { if..

2021.09.16 게시됨