분류 전체보기
Prisma Migration 관련 오류
* Migration Prisma 에서 Migration 은 schema.prisma 파일에 정의해놓은 스키마에 변화가 있을 경우 사용하고 있는 DB 에도 업데이트를 해주기위해 사용하는 연산이다. 근데 이 연산을 하다 보면 간혹 이런식의 오류가 발생한다 "Error: There are more migrations in the database than locally. This must not happen. Local migration ids: . Remote migration ids: 202009031622-init, 202009031623-init2" 이것은 Migration 을 할때, Prisma 가 사용하는 DB 에 _Migration 이라는 테이블을 생성해서 언제 Migration 을 했는지 기록해..
PostgreSQL 연결 설정시 오류
PostgreSQL 과 다른 백엔드 서버를 연결할때 고려해볼만한 사항들을 아주 간략하게 정리해보았다. (이 부분은 다른 DB 를 이용할 때도 공통점이 어느정도 있을 것으로 생각된다) (이 내용은 Window 사용자를 기반으로 작성되었습니다) - 의심해볼만한 사항들 1. 포트 번호가 겹치지 않는가? : PostgreSQL 은 기본 포트 번호가 5432 이다. PostgreSQL 을 키지 않았음에도 이 포트를 다른 곳에서 사용하고 있다면 제대로 실행 되지 않을 것이다 사용 중인 포트 번호를 조회하기 위해서는 window 의 경우 netstat 명령어를 사용하면 아래 같은 사용중인 포트 번호를 조회 할 수 있다. 참고 : https://docs.microsoft.com/ko-kr/windows-server/a..
BOJ 1931 - 회의실 배정
https://www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net Greedy 를 이용해 푸는 문제이다. 회의의 시작시간을 기준으로 정렬을 하고, 회의의 끝 시간을 기준으로 정렬을 한다 -> 이렇게 정렬을 두번 하는 이유는 (4,5) , (3,5) , (1,5) 같이 끝나는 시간만 동일한 케이스가 있을 경우 현재 상황에서 가장 최선의 선택을 하는 Greedy 의 원칙과 부합하지 않을 수 있기 때문이다 가장 먼저 시작하는 1초 부터 잡아야 Greedy 의 원칙과 맞기 때문에 (1,5) , (3,5) , (4,5) 로 정렬되어야 한다. 또한 회의가 끝나는 시간 보다 크거나 같은 경우..
BOJ 11399 - ATM
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net Greedy 알고리즘을 이용해서 푸는 문제이다. 이 문제를 풀면서 내가 겪었던 가장 큰 문제는 DP 와 Greedy 의 개념을 명확하게 이해하지 못하고 있다는 점이었다. DP 는 가능한 모든 경우의 수를 다 따지되 메모이제이션 기법을 써서 연산의 횟수를 줄이는 것이고, Greedy 는 그냥 지금 현재 상황에서 가장 최적의 선택지만 고르면 되는것이다. 이에 대한 명확한 이해도가 없다보니 이 문제를 풀 때 모든 경우의 수를 어떻게..
Prisma 란?
# Prisma 2 Prisma 의 정의를 보면 아래와 같이 서술 되어 있다. "Prisma is an open-source database toolkit. It replaces traditional ORMs and makes database access easy with an auto-generated query builder for TypeScript & Node.js." -> 말이 거창하게 써있는것 처럼 보이는데 그냥 JS, TS 에서 쓰는 ORM 이다. * Prisma 의 연산 과정 Prisma 가 작업을 수행하는 과정을 대략적으로 요약하면 아래 그림과 같다 Node.js 에서 (백엔드 서버 단) Prisma Client 를 생성하고, Query Engine 을 이용해서 DB 와 연결한다 그리고 ..
CSP (Content Security Policy) 란?
# CSP ? 웹 개발을 하다보면 이런 식의 오류를 마주할때가 있다 "refused to execute inline script because it violates the following content security policy directive ~ " 이런 류의 오류들의 원인은 CSP 를 위반했기 때문이다. CSP (Content Security Policy) 에 대한 MDN 의 정의 문서를 보면 아래와 같이 서술되어 있다. "Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XS..
C++ STL 정리 - Vector
# Definition template class vector; cs 벡터는 순차 컨테이너의 한 종류로, 기본적으로 동적으로 메모리가 할당된다. 정의에서 Allocator 란 컨테이너의 메모리를 관리하는 할당자 이다. (참고 : openmynotepad.tistory.com/57) # Header #include cs # 초기화 // 1. 기본 생성 (할당된 값도 없고 크기도 지정하지 않은 상태) vector vec; // 2 - 1. 크기를 지정해준 일차원 벡터 초기화 vector vec(4); /* 벡터의 크기가 4 가 되고, 각 원소의 값이 0임 (단, 전역 변수 선언시에만) vec = {0, 0, 0, 0} */ // 2 - 2. fill 로 채운 일차원 벡터 초기화 vector vec(4); f..
BOJ 7576 - 토마토
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토� www.acmicpc.net BFS 를 이용해 풀어야 하는 문제이다. 이 문제에서 주의해야될 것은 BFS 의 시작점과 날짜 계산에 대한 부분이다. 단순하게 1이 최초로 나온 좌표 부터 시작해서 쭉 BFS 를 돌리면 제대로 시간계산이 되지 않는다 동일한 날짜에 동시에 1인 여러 좌표에서 부터 시작해서 BFS 를 탐색해야 한다. 예를들면 예제 입력 3 에서 맨 처음 값이 1인 좌표는 (0,0) , (3,5) 이..