분류 전체보기
[React] mongoose를 이용한 MongoDB 연동 실습1
1. 소개하기 관계형 데이터베이스 한계 데이터 스키마 고정적 확장성(RDBMS는 처리해야 할 데이터양이 늘어나면 여러 컴퓨터에 분산시키는 것이 아니라, 해당 데이터베이스 서버의 성능을 업그레이트 해야 한다.) MongoDB는 이런 한계를 극복한 문서 지향적 NoSQL 데이터베이스 유동적 스키마 확장성(여러 컴퓨터로 분산하여 처리 가능하도록 쉽게 설계) MongoDB가 무조건 좋은 것은 하니다. 상황별로 적합한 데이터베이스가 다르다. 까다로운 조건으로 데이터를 필터링 또는 ACID특성을 지켜야 한다면 RDBMS가 유리 1.1. 문서란? 여기서 말하는 문서(document)는 RDBMS의 레코드와 개념이 비슷하다. 문서의 데이터 구조는 한 개 이상의 키-값 쌍으로 되어 있다. 문서의 예시 { "id": Ob..
[python] 백준 > 덱
[문제] 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경..
[python] 백준 > 다익스트라 > 최소비용 구하기
[문제] N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력하여라. 도시의 번호는 1부터 N까지이다. www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net [풀이] youtu.be/acqm9mM1P6o 이 강의를 참고하였다. import sys..
[python] 프로그래머스 > 피보나치수
[문제] 1. 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 2. 제한 사항 * n은 1이상, 100000이하인 자연수입니다. 입출력 예 n return 3 2 5 5 3. 입출력 예 설명 피보나치수는 0번째부터 0..
[React] 백엔드 프로그래밍: Node.js의 Koa 프레임워크
1. 소개하기 1.1. 백엔드 서버를 만들어 데이터를 여러 사람과 공유한다. 데이터를 담을 때 여러 가지 규칙이 필요 사용자 인증, 데이터 종류 구분, 데이터 검증 등 어떤 종류의 데이터를 몇 개씩 보여줄지 백엔드 프로그래밍 다양한 언어로 구현 가능 PHP, 파이썬, Golang, 자바, 자바스크립트 자바스크립트로 서버를 구현할 수 있는 Node.js를 사용해보자 1.2. Node.js 처음엔 자바스크립트를 웹 브라우저에서만 사용했다. 시간이 지나면서 자바스크립트는 계속 발전했으며, 구글이 크롬 웹 브라우저를 소개하면서 V8이라는 자바스크립트 엔진도 공개했다. 이 자바스크립트 엔진을 기반으로 웹 브라우저뿐만 아니라 서버에서도 자바스크립트를 사용할 수 있는 런타임을 개발했다. 이것이 바로 Node.js이다..
[React] 서버 사이드 렌더링
1. 서버 사이드 렌더링의 이해 UI를 서버에서 렌더링하는 것 CRA로 프로젝트를 생성하고 개발 서버를 실행해 본다. $ yarn create react-app ssr-recipe $ cd ssr-recipe $ yarn start root 엘리먼트가 비어있다. 즉, 이 페이지는 처음에 빈 페이지 그 이후에 자바스크립트가 실행되고 리액트 컴포넌트가 렌더링되면서 우리에게 보이는 것 서버사이드 렌더링을 구현하면 사용자가 웹 서비스에 방문했을 때 서버 쪽에서 초기 렌더링을 대신해 준다. 그리고 사용자가 html을 전달받을 때 그 내부에 렌더링된 결과물이 보인다. 1.1. 서버 사이드 렌더링의 장점 구글, 네이버, 다음 등의 검색 엔진이 우리가 만든 웹 애플리케이션의 페이지를 원활하게 수집할 수 있다. 리액트로..
[python] 백준 > DP > 1,2,3 더하기
[문제] 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. [나의 풀이] DP방식 import sys T = int(sys.stdin.readline()) dq = [0, 1, 2, 4] for _ in range(T): n = int(sys.stdin.readline()) for i in range(len(dq), n+1): dq.append(dq[i-1]+dq[i-2]+dq[i-3]) print(dq[n]) dp문제이다. dp문제는 일단 패턴을 찾아야 한다.(?..
[python] 프로그래머스 > 해시 > 베스트 앨범
[문제] 1. 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 2. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노..