본문 바로가기

전체 글

(120)
OAuth 2.0 학습 전 알아야 할 주체 1. Resource Owner (유저) 2. Client (우리 서버) 3. Resource Server (데이터를 가진 서버) 등록 절차 우리의 서버 즉 client는 리소스 서버를 이용하기 위해서 미리 등록을 해둬야한다. 여기서 알아야 할 3가지 요소가 있다. Client ID, Client Secret(외부 노출 위험), Authorized Redirect URIs (Authorized code을 받을 주소) (Resource Server에 Authorized code를 입력하여 클라이언트는 Client ID와 Client Secret을 받는다.) 인증 과정 Resource Owner에게 client는 https://resource_server/?client_id=1&sc..
이진 탐색 문제풀이 1. 수 찾기 (백준 1920 번) 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 직접 작성한 코드) n=int(input()) array=list(map(int, input().split())) m=int(input()) targetlist=list(map(int,input().split())) array.sort() def binary_search(array, target,start,end): if start > end: return None mid =(s..
쿼리문(Join, Group by, Union, Having, 변수) Join 1) Inner join 양쪽 테이블에서 모두 일치하는 레코드를 반환한다. (table1과 table2의 공통 부분을 반환) SELECT column FROM table1 INNER JOIN table2 ON table1.column=table2.column 2) Left join 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환한다. 3) Right join 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환한다. 4) Outer join 왼쪽 테이블과 오른쪽 테이블의 레코드 모두를 반환한다. Group by 그룹별 정보를 조회하는 용도로 사용된다. ex. 학년 별 성적 점수의 평균을 구하세요. 성별 별 최대 임금을 구하세요. Group by 함수와 함께 쓰이..
기타 문제풀이 1. 괄호 (백준 9012번) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 직접 작성한 코드) n=int(input()) for i in range(n): count1=0 count2=0 a=input() result='YES' for j in a: if j=='(': count1+=1 else: count2+=1 if (count2>count1): result='NO' if(count1!=count2): result='NO' print(result) 2. 제로 (백준 107..
Node.js 파라미터 전달받기 1. path Variable - path Variable을 통하여 userId받기 (ex. /app/users/:useId) const userId = req.params.userId; 2. Query String - 쿼리 스트링을 통하여 userId받기 (ex. /app/users?userId=3) const userId = req.query.userId; 3. body - post 혹은 patch 메소드에서 body값으로 userId 받기 const userId = req.body.nickname; - 여러 값 받기 const {email, password, nickname} = req.body; 4. header - 헤더로 값 받기 const headerName = req.headers["head..
Node js. 시작하기 (npm, express ..) 평상시 스프링부트를 사용하지만 회사에서 노드를 사용해야할 프로젝트가 있어서 노드 스터디를 시작해본다! 개발 전에 알아야할 개념들을 정리해보았다. 1. 노드 js란? Node.js는 Chrome의 v8 엔진을 이용하여 javascript로 브라우저가 아니라 서버를 구축하고, 서버에서 javaScript가 작동되도록 해주는 런타임 환경이다. 자바 스크립트는 원래 웹 브라우저 안에서만 사용할 수 있도록 제작되어있다. 이를 웹 브라우저에서 독립적으로 사용하기 위해 만들어 낸 것이 Node.js이다. 이를 이용하면 웹 브라우저 없이 프로그램을 만들 수 있고, 서버도 만들 수 있다. 2. express란? Node.js를 위한 웹 프레임워크 중 하나이다. Express는 이런 Node js의 원칙과 방법을 이용하여..
DFS & BFS 문제 풀이 1. DFS와 BFS (백준 1260번) 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 2. 스택 (백준 10828번) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 직접 작성한 코드) n=int(input()) stack=[] for i in range(n..
정렬 알고리즘 (문제 풀이) 1. 단어 정렬 (백준 1181번) https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 참고 답안) n=int(input()) array=[] for i in range(n): array.append(input()) set_list=set(array) new_array=list(set_list) new_array.sort() new_array.sort(key=len) for i in range(len(new_array)): print(n..