[node.js] 백준 10811 - 바구니 뒤집기
·
Algorithm
문제도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다.도현이는 앞으로 M번 바구니의 순서를 역순으로 만들려고 한다. 도현이는 한 번 순서를 역순으로 바꿀 때, 순서를 역순으로 만들 범위를 정하고, 그 범위에 들어있는 바구니의 순서를 역순으로 만든다.바구니의 순서를 어떻게 바꿀지 주어졌을 때, M번 바구니의 순서를 역순으로 만든 다음, 바구니에 적혀있는 번호를 가장 왼쪽 바구니부터 출력하는 프로그램을 작성하시오.입력첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다.둘..
[node.js] 백준 10813 - 공 바꾸기
·
Algorithm
문제도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다.도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다.공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다.둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는 뜻이다. (1..
[node.js] 백준 2480 - 주사위 세개
·
Algorithm
문제1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게 된다.3..
Next.js 의 Dynamic server usage 빌드 에러
·
TIL
문제client-side에서 데이터를 패칭 할 때 쿼리 스트링 등 동적으로 데이터 패칭이 필요 할 때 빌드 시 해당 API는 server-side 데이터를 가져 올 수 없으므로 빌드 에러가 나게 된다.문제 코드// index.tsxconst fetchOrders = useCallback(async () => { try { if ( !user || searchConditions.merchantId === undefined || searchConditions.sellerId === undefined ) return; const { totalCount, orders: fetchedOrders } = await getOrders(..
too many clients에서 벗어나보자
·
TIL
💡 백오피스 개발 중 가장 화나게 만드는 too many clients 오류를 수정해보려 합니다.스토어&센터 백오피스 모두 Next.js와 knex를 사용하고 있는데, 개발 과정에서 커넥션 수가 넘치는 상황이 너무나도 많이 발생했다.(프로덕션 환경에서는 확인 해보지 않았으나) 내가 확인한 커넥션이 발생하는 케이스는페이지 이동내가 띄어논 페이지 화면에서의 코드 수정 후 저장 시 리로딩두 가지 케이스에서 발생 하는 것을 확인 할 수 있었다.2번 케이스의 경우 npm run start:dev 로 실행시켜놓고 계속해서 작업을 하니 문제가 되지 않나 생각이 들었다.커넥션 수 확인 방법SELECT datname, count(*) as connection_countFROM pg_stat_activityGROU..
노션 API를 공지사항에 적용해보면 어떨까?
·
TIL
💡 우연히 보게 된 화해 블로그의 Notion API 연동기.잘 적용해보면 이리저리 쓰일 곳이 많을 것 같아서 백오피스 공지사항에 R&D 해보았다.Notion API와 함께 정적 페이지로의 여정 – 화해 블로그 | 기술 블로그관리자가 쓰기 쉬운 툴우리 회사는 노션을 이미 사용 하고 있다. 스케쥴부터 공유 문서 등에서 모든 부서가 노션을 사용하고 있었으며, 그렇기에 노션 사용이 익숙할 것이라고 생각했다. 그렇지만 이미 백오피스에서 공지사항 입력 폼은 만들어 놓았었다. 그러나 아직 데이터베이스 공지사항에 셋팅 해놓지 않았고, 내용 입력에서는 아직 따로 텍스트 입력기 등의 라이브러리를 사용하지 않으므로 글자에 스타일 적용이 불가하다. 텍스트 입력기 라이브러리를 적용하면 되잖아? 싶지만 테이블 셋팅이 아직 안..
token을 관리해보자!
·
TIL
💡 우리는 백단을 Nest.js로, 프론트단을 Next.js로 사용하고 있다.그런데 Access Token을 Nest.js에서 cookie로 만들려고 했더니, Nest.js → Next.js(api) → Next.js(front)로 가기 때문에 생성을 할 수 없었다.그래서 다른 방법을 생각해 보는데…위에서 말한대로 Next.js에도 SSR이 있기 때문에 그걸 통해서 Nest.js와 통신을 하려고 작업 중이다.로그인 시 순서는Next.js Front → Next.js Back → Nest.js → Next.js Back → Next.js Front의 순서로 가고 있다.Token도 이와 동일한 순서로 가서 Nest.js에서 만들어진다.그래서!Nest.js에서 Access Token과 Refresh Toke..
x-api-key authorization
·
TIL
추가 패키지@nestjs/passport@types/passportpassportpassport-headerapikey참고 문서https://medium.com/@alpercitak/nest-js-authenticate-with-both-api-key-and-jwt-4a22bf7b3049https://medium.com/@Dee_Mayoor/apikey-authentication-for-nestjs-using-passport-js-6db467fc31f7https://www.stewright.me/2021/03/add-header-api-key-to-nestjs-rest-api/authorization을 각각 UseGuard 를 이용해 컨트롤러에 붙이고 싶지 않고, 미들웨어를 이용해서 전역으로 붙이고 싶었..
supertest시 :id가 500으로 떨어진다면?
·
TIL
먼저 module별로 테스트 하는 방법은 찾아내지 못했다.app.module.ts 를 테스트 하기로 했고, 신기하게도 테스트 돌리니 전에 get에서 find로 함수명을 바꿨는데, resolver에는 적용되지 않았던 부분을 잡아줬다!블로그에는 app을 INestApplication 를 이용해서 테스트 하라고 하지만, 그럴 필요 없다.supertest도 import * as request from 'supertest' 로 하라고 하지만 에러가 난다. (아마 버전 차이일 수도..)import request from 'supertest' 로 변경해주니 에러가 나지 않았다.그래서 import 해주어야 될 것은 아래와 같다import { Test } from '@nestjs/testing';import reques..
mysql typeorm으로 한방에 generate하기
·
TIL
💡 lomad2.5-api로 toy project를 하는 중 typeorm을 nest.js에서 많이 쓰는 것을 알게되었고, typeorm을 쓰려고 했다.블로그에 적혀있는 typeorm사용법은 entity를 만드는 것 부터 적혀있는데, 테이블이 db에 자동으로 생성된다.생성하는 기능은 좋으나, 현재는 이미 있는 모든 테이블들을 generate하고 싶었다.(나는 생성할 테이블이 현재 없기에..)그래서 구글링해본 결과entity에 synchronize: false 를 해준다. 이는 이미 완성된 테이블에 연결 하는 경우, 모든 컬럼을 다 정의해주어야 한다고 한다. 하지만 users 테이블만 봐도 컬럼이 어마어마 하기 때문에 할 자신이 들지 않았다. import { Entity, Column, PrimaryGe..
indeeah
하기나 해