redis cache-aside pattern 램에 키 값을 저장하여 빠르게 불러오는 기술. 이 것을 이용하여 로그아웃을 구현할 수 있다. 추후에 할 예정. elasticsearch NoSQL이라서 스키마의 제약을 받지 않고 자유롭게 입력이 가능하다. 따라서 createProduct의 객체를 모두 받아왔다. 또한 elasticsearch:9200/_search/인덱스?pretty를 브라우저 주소줄에 입력하면 받아온 데이터를 모두 확인 가능하다. logstash MySQL과 Elasticsearch를 연결하는 다리 하지만 지금 설치하는데 문제가 있다. docker-compose build logstash를 하면 아무 창도 뜨지 않았다. 하지만 docker-compose up logstash를 하면 실행은 ..
실행환경 docker: node14 ( backend) MySQL : 8+ (DB) 포트번호가 문제일 때 - 다른 포트번호 시도 docker-compose 환경에서 DBeaver로 연결이 안됐다. mysql은 독커 안에선 작동이 잘 됐다. 포트문제가 있었다. 3307번 포트가 독커 안 MySQL에선 연결이 됐지만 DBeaver에서 연결이 안됐기 때문에, 포트번호를 3306번으로 바꿨다. 하지만 3306 포트는 MYSQL80 시스템이 쓰고 있었기 때문에 시스템에 들어가서 중지를 했다. 3306이 연결됐다. 하지만 기존 포트번호인 3307번은 왜 안됐는지 의문이었다. 3307번이 되지 않아도 문제를 해결하는 법 1. 3307 외의 번호로 바꾼다. 3307을 제외한 3308, 4000번은 잘 연결이 됐다. 2..
Elasticsearch CRUD postman을 이용하여 이걸 구현해본다. 이건 MongoDB처럼 스키마가 존재하지 않는다. postman에서 토크나이징 특수문자 -> 띄어쓰기 -> 소문자로 nGram 독커 안에 있는 MySQL의 포트이슈를 해결했다. 포트번호 자체가 문제이면 포트번호를 올리면서 불량인 번호를 건너뛰고 만약 사용자가 문제이면 사용자가 받는 ip를 확인 또는 접근 권한을 주면 된다. [MYSQL] 오류 Access denied for user 'root'@'localhost' FROM DBeaver or Worbench (tistory.com)
Elasticsearch 이건 기존 검색방법인 인덱스로 찾는 방법이 아닌 인버티드 인덱스 방법을 이용해서 검색을 한다. 마치 책의 부록과 비슷하다. 또한 한 번 검색된 단어는 레디스를 통해 램으로 옮겨지며 나중에 같은 단어를 검색하면 속도가 빠르게 검색된다. mysql-connector.jar 연결할 디비가 mysql이면 mysql-connector.jar를 Logstash라는 새로 만든 파일에 넣어준다. 그리고 docker-compose에 Logstash.conf 파일과 같이 볼륨에 넣어준다. 이 jar파일을 통해 mysql과 elasticsearch 사이에 다리가 놓아진다. Logstash.conf 이 파일에는 mysql에서 query문을 요청해서 자료를 받는다. 또한 받은 자료를 Elasticsea..
/* 출처) codewars 문자열 정렬 단어의 순서가 뒤섞인 문장이 주어집니다. 해당 문자열의 각 단어에는 하나의 숫자가 포함되며 해당 숫자는 단어가 갖는 문자열 내에서의 순서를 의미합니다. 문자열 내에 포함된 숫자를 기준으로 순서를 재정렬하여 리턴해주세요. 만약 빈 문자열을 전달받았을 경우 빈 문자열을 리턴해야 합니다. - 숫자는 1부터 9까지의 숫자만을 포함합니다. - 문자열에 포함된 숫자는 중복되거나 생략되지 않고 연속되는 숫자만 존재합니다. 예시) "Wo2rld Hello1" => "Hello1 Wo2rld" */ function order(string) { // 여기에서 작업하세요 if (string === "") return ""; const sortedArr = []; const sorte..
/* 빙고 hoony는 빙고 게임을 하고 있습니다. n * n의 게임판의 정보가 담긴 이중배열 board가 주어집니다. hoony가 마크를 하면 true, 아직 빈 곳은 false로 적혀있습니다. hoony가 달성한 빙고의 갯수를 리턴해주세요. 단, board 배열 다음으로는 target이라는 매개변수가 옵션으로 올 수 있습니다. target에는 hoony가 다음에 마크를 할 위치의 인덱스가 배열에 담겨있습니다. 보드 예시 -------------------- true | false | false -------------------- true | true | false -------------------- true | false | true -------------------- 위와 같은 상황에서 hoo..
잘하는 점 고쳐야할 점 자기 객관화 오류 잡느라 시야 좁아져서 버그 못잡는 것 오류가 나면 왜 났는지 절차적으로 생각하자. -------------------------------------------------- 크게 심호흡 후 차분해지자. 시야를 넓게 오래 앉아있는 체력 혼자있으면 되려 집중력 흐트러진다 ----------------------------------------- 남들에게 내 화면이 보여지게 앉자 스스로 침착해 지는 것 숙제 미루는 성격 -------------------------- 숙제 하자 문제 탐색능력이 는 것 문제해결과정 중 다른 길로 새서 시간안에 목표완수 못할 때가 있다. ----------------------------------------- 해결할 것은 적어두고 나중에..
수업 주제 모른다 조금이해했다 이해했다 응용가능 완벽하게안다 git merge O generic O jest O nginx O 마이크로서비스 GraphQL O 마이크로서비스 REST-API O analyzer O ngram O ElasticSearch O Bigquery O mysql Procedure O Redis O JMeter O CI/CD 배포 자동화 O GCP Kubenates Ingress O GCP Kubernates Detach DB O NestJS Interceptors O Sentry O GCP Kubernates Distribution O GCP LoadBalancer O GCP Making Instance O Promise O GCP making Cloud Storage O quer..
kubectl get pods 명령어 하는일 kubectl get pods 현재 pods를 보여줌 kubectl logs [kubectl get pods했을 때의 name] 예) kubectl logs mybackend-w231238f2 로그 보기 kubectl get deployment deployment 보기 kubectl get pod [pod 이름] -o yaml 예) kubectl get pod mydatabase-7778b77487-nhxqg -o yaml pod의 yaml 파일을 보여줌, 배포된 image name을 보기위한 것 kubectl set image deployment/[실행중인 deployment 이름] [배포된 image name]=[cotainer registry에 등록된 i..
원인 해결법 bcrypt가 순수js로 만들어지지 않았기 때문에 생기는 에러이다 npm install bcryptjs 또는 yarn add bcryptjs 기존 bcrypt 쓰던 곳에 bcryptjs로 바꾸기 참고) node.js - Why is importing bcrypt causing a "Cannot find module napi-v3/bcrypt_lib.node" error? - Stack Overflow bcryptjs - npm (npmjs.com) dcodeIO/bcrypt.js: Optimized bcrypt in plain JavaScript with zero dependencies. (github.com)
원인 해결법 google cloud SDK의 로그인한 계정이 프로젝트에 맞지 않을 때 생긴다 google cloud SDK에서 (없으면 깔고) gcloud auth login 입력 프로젝트 사용자로 로그인하면 해결 gcloud auth login | Google Cloud CLI Documentation
원인 해결법 서로 다른 곳에서 깃의 충돌 때문 git status로 modified가 있는 곳 확인 1. 그곳에서 깃 업데이트 또는 2. git stash && git pull origin master[또는 main] && git stash pop stash 란) 임시 저장공간이다. 따라서 내 걸 임시로 저장하고 git pull 한 뒤, 다시 적용시킨다는 뜻이다.
'typeorm' is not recognized as an internal or external command,operable program or batch file. typeorm 문제가 있었다. 해결법 npm install typeorm -g npm - Cant Use TYPEORM init - Stack Overflow

typeorm migration:generate -n 적용하려는 중 나타난 오류이다 해결법 https://stackoverflow.com/a/63846840/5328663 npx typeorm migration:create -n YourName -d src/migrations 또는 yarn typeorm migration:create -n YourName -d src/migrations

fetchBoard : [Board!]! 타입이다. [안쪽느낌표!] [바깥쪽]! 배열의 값이 null이 될 수 없다는 뜻 배열이 없어선 안된다는 뜻 (참고: javascript - GraphQL: Non-nullable array/list - Stack Overflow) 문제는 둘 중 하나다. 받아오는 배열이 없어서 받아온 배열에 null값이 있어서 1. 받아오는 배열이 없어서 그럼 배열을 받지 않아도 되게 만들어보자. // board.resolver.ts import { Query, Resolver, Mutation, Args } from '@nestjs/graphql'; import { BoardService } from './board.service'; import { Board } from './..

{ "error": { "errors": [ { "message": "Field \"fetchBoards\" of type \"[Board!]!\" must have a selection of subfields. Did you mean \"fetchBoards { ... }\"?", 내가 Playground에서 입력한 코드 subfield를 빠뜨려서 생긴 에러이다. Subfield를 입력하니 잘 된다.
코딩테스트 연습 - 키패드 누르기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 구현문제 const solution = (numbers, hand) => { for(let i = 0; i < numbers.length; i++){ numbers[i] = String(numbers[i]); } let numArr = [ ['1', '2', '3'],..
GraphQLError [Object]: Query root type must be provided. Resolver.ts에 Query() 하나도 없을 때 나타난다. 추가하자 import { Args, Mutation, Query, Resolver } from '@nestjs/graphql'; import { CreateProductInput } from './dto/createProduct.input'; import { Product } from './entities/product.entity'; import { ProductService } from './product.service'; @Resolver() export class ProductResolver { constructor(private r..
코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 구현문제 const solution = (new_id) => { let allowedArr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; for(let i = 0; i 14) ..
코딩테스트 연습 - [1차] 다트 게임 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 구현문제 주의할 점은 10은 두 자리 수란 걸 유념해야 한다. 내 코드 const solution = (dartResultArr) => { let answer = 0; let dartResult = []; dartResultArr = dartResultArr.split(''); console.log(`dartResultArr : ${dartResultArr}`); // 10을 배열에 넣기 위한 for문 for (let i = 0; i < dartResultArr.length; i++) { if (dartResultArr[i] === '1' &&..
코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 구현문제 내 코드 const elements2Binry = (n, arr) =>{ // 배열 값들을 이진법으로 만들고 // console.log(`arr:${arr}`); let result = []; for(let i = 0; i < arr.length; i++){ let arrNum = arr[i]; // console.log(`arrNum:${arrNum}`);..
코딩테스트 연습 - 이진 변환 반복하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 내코드 const solution = (s) => { let answer = []; let zeroCnt = 0; let binaryCnt = 0; let noZeroArrLength = 0; let tempS = ""; while(s !== "1"){ tempS = s.split('0').join(''); zeroCnt += (s.length - tempS.length); s = tempS; noZeroArrLength = s.length; let binaryArr = []; while(noZeroArrLength > 1){ binaryArr..
- Total
- Today
- Yesterday
- 독커
- 에러
- 호이스팅
- 프로그래머스
- typeorm
- docker
- GraphQL
- Callback
- Spread
- postman
- NPM
- 명령어
- Rest
- 코드캠프
- 코딩습관
- Console
- js
- arrow
- function
- axios
- 백틱
- error
- 도커
- 콜백
- elasticsearch
- arrowfunction
- yarn
- Playground
- nodemon
- 공부법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |