
엘라스틱서치 fetchProducts에서 query 안에 match를 사용해서 검색어를 입력하고 결과를 출력하게 했다. 검색할 때 같은줄 알았던 '마우스', '마우스2'는 다른 단어로 인식하지만 '샤넬 헤드셋', '샤넬 메인보드'의 '샤넬'은 같은 단어로 포함된다. 따라서 엘라스틱서치에서 match를 쓰려면 띄어쓰기로 구분해야 한다. @Query(() => [Product]) async fetchProducts( @Args('searchKeyword') searchKeyword: string, ){ const result = await this.elasticsearchService.search({ index: 'testproduct5', // logstash.conf의 인덱스와 같아야 한다. query:..
SQL Query 칼럼 중 Like가 있었다. 이상하게 Like만 query문에 추가했을 때 Syntax 오류가 났었다. logstash의 index에 오류가 있는지 새 index에 시도를 하고, docker의 디비를 잘못 입력했는지 확인해봤지만 잘 안됐었다. 알고보니 like는 sql의 문법이기 때문에 문법을 컬럼값으로 가져오니 오류가 발생한 것이었다. 해결법으로 테이블에 별명을 주고 별명.like로 만들었다. 문제 해결 input { jdbc { jdbc_driver_library => "/usr/share/logstash/mysql-connector-java-8.0.28.jar" jdbc_driver_class => "com.mysql.cj.jdbc.Driver" jdbc_connection_str..
ACID nestjs에서 지원하는 ACID를 썼다. 두 개의 트랜잭션에서 하나가 등록하면 다른 하나는 조회할 때 바뀌기 전 데이터가 조회될 수도 있기 때문에 ACID를 써야했다. nestjs에선 기본으로 Connection으로 지원한다. Connection을 변수로 받고 try...catch...finally로 진행한다. try문에 실행될 코드를 넣고 catch문에 rollbackTransaction을 하며 finally문에 release를 한다. Isolation startTransaction괄호 안에 넣어서 쓰는 것이며 READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 이렇게 네 개가 있다. READ UNCOMMITTED 다른 트랜잭션의 변경..

코드캠프5팀의 ERD와 정규화를 했다. 정제되지 않은 엑셀형태의 자료를 정규화 한 다음 그걸 가지고 ERD를 만드는게 정석이지만 성격이 급해 ERD부터 만들었다. 때문에 ERD가 확실한지는 의문이었다. 따라서 직접 자료를 집어넣어서 만든 ERD가 정상인지 확인했다. https://www.figma.com/file/xZoP3LSmKuj8UX9ytN7eCM/%EC%BD%94%EB%93%9C%EC%BA%A0%ED%94%845%ED%8C%80ERD?node-id=0%3A1 링크를 타고 가면 후르츠패밀리 어플의 간이 데이터를 정규화한 테이블들과 ERD가 있다. 1:N 처음엔 1:N 관계를 구체적으로 알지 못했다. 이미지데이터들과 상품이 대표적이다. 한 상품에는 여러 이미지가 들어간다. 처음에는 여러이미지의 ID를..

ERD 구현 1차 완료 코드캠프5팀ERD (erdcloud.com) ERD 만들면서 고민 물품과 유저를 오더로 다대다 연결하는게 맞는지 의문 구매자는 유저테이블에서 직접 얻어온 사람을 말하고 판매자는 유저테이블을 물품에서 조인한 사람을 말한다. 따라서 오더에는 물품과(판매자) 유저(구매자)를 연결했다 아님 차라리 유저테이블에서 판매자 구매자 테이블을 파생시켜서 만들면 어떨까 개정 seller와 buyer를 만들어서 그 사이를 오더로 만들어줬다 그러면 다대다 테이블을 피할 수 있게 된다
개발 과정 순서 엑셀 이알디 명세서 코딩 스웨거 깃 git pull upstream 브랜치 : master에서 가져오기 [Git] 5. Git 브런치 생성 및 이동 (branch / checkout) (tistory.com) 하루 계획 1. 짧은 회의 하기 - 그 날 각자 개발할 기능 얘기하기 2. pr 코드리뷰 하기 3. merge할 거 하기 4. up stream pull로 최신화 하기 5. 최신화된 branch에서 feature branch 만들고 기능 개발하기 6. origin에 push, upstream pr 날리기 7. 최신화된 branch에서 featurebranch2 만들고 기능 개발하기 commit convention : commit rule 면접 코테 2,3단계 ERD(정규화), 파이프..
TDD Jest MockImplementation TestModule
redis cache-aside pattern 램에 키 값을 저장하여 빠르게 불러오는 기술. 이 것을 이용하여 로그아웃을 구현할 수 있다. 추후에 할 예정. elasticsearch NoSQL이라서 스키마의 제약을 받지 않고 자유롭게 입력이 가능하다. 따라서 createProduct의 객체를 모두 받아왔다. 또한 elasticsearch:9200/_search/인덱스?pretty를 브라우저 주소줄에 입력하면 받아온 데이터를 모두 확인 가능하다. logstash MySQL과 Elasticsearch를 연결하는 다리 하지만 지금 설치하는데 문제가 있다. docker-compose build logstash를 하면 아무 창도 뜨지 않았다. 하지만 docker-compose up logstash를 하면 실행은 ..
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..
잘하는 점 고쳐야할 점 자기 객관화 오류 잡느라 시야 좁아져서 버그 못잡는 것 오류가 나면 왜 났는지 절차적으로 생각하자. -------------------------------------------------- 크게 심호흡 후 차분해지자. 시야를 넓게 오래 앉아있는 체력 혼자있으면 되려 집중력 흐트러진다 ----------------------------------------- 남들에게 내 화면이 보여지게 앉자 스스로 침착해 지는 것 숙제 미루는 성격 -------------------------- 숙제 하자 문제 탐색능력이 는 것 문제해결과정 중 다른 길로 새서 시간안에 목표완수 못할 때가 있다. ----------------------------------------- 해결할 것은 적어두고 나중에..
수업 주제 모른다 조금이해했다 이해했다 응용가능 완벽하게안다 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..
- Total
- Today
- Yesterday
- 명령어
- arrow
- 독커
- NPM
- 코딩습관
- arrowfunction
- 에러
- typeorm
- 호이스팅
- nodemon
- elasticsearch
- Playground
- 백틱
- error
- 콜백
- GraphQL
- axios
- js
- 프로그래머스
- 코드캠프
- Spread
- yarn
- docker
- Rest
- 공부법
- 도커
- function
- Callback
- postman
- Console
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |