일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘공부
- C++
- 성분
- 채권
- 화장품
- 자바스크립트
- 프로그래머스 알고리즘 공부
- 경제
- 재테크
- 투자
- 알고리즘트레이닝
- 서평
- algorithmtraining
- Java
- JavaScript
- 독후감
- 독서
- 프로그래밍언어
- 백준알고리즘
- 다독
- algorithmStudy
- algorithmTest
- 책을알려주는남자
- 알고리즘 공부
- 돈
- 책알남
- 지혜를가진흑곰
- 주식
- 자바
- C
- Today
- Total
목록[Snow-ball]server (34)
탁월함은 어떻게 나오는가?
객체 지향 프로그래밍(Object-Oriented programming) 언어는 코드 재사용에 대한 이점이 있다. 코드 재사용 방법에는 상속 구현(inheritance, IS-A 관계) 또는 개체 구성(composition, HAS-A 관계) 두가지가 있다. 그러나 상속을 사용할 때는 컴파일러와 Java virtual machin(JVM)이 많은 일을 하지만, composition을 사용할 때는 상속의 기능을 사용할 수 있다. IS-A Relationship 객체 지향 프로그래밍의 컨셉은 전부 IS-A을 기반으로 한 상속이며, 상속은 Class 상속과 Interface 상속 2가지 타입이 있다. 상속은 "A 타입은 B 타입의 것이다." 라고 하는 것이다. 예를들어 [ 사과는 과일이다. ] or [ 차는..
nest.js에서 웹소켓을 사용하려고 했는데 아래와 같은 에러가 발생했다. this.metadataScanner.getAllMethodNames is not a function 나의 경우에는 @nestjs/core 와 @nestjs/platform-socket.io 의 버전이 안맞아서 발생한 에러였다. 업데이트 전 업데이트 후 해결 방법: 1) 버전을 맞춰주기 위해 @nestjs/core 를 삭제해준다. 1 npm uninstall @nestjs/core cs 2) 최신 버전이기 때문에 npm i를 진행해준다. 1 npm install @nestjs/core cs
오늘은 Nest.js로 rabbit-mq 테스트를 진행해보겠다. 이번에는 docker compose를 말고 docker로 사용해보았다. Test Start!!! 1) docker 를 사용하기 위해 terminal에 다음과 같은 명령어 3가지를 순서대로 사용해준다. 1 2 3 4 5 docker pull rabbitmq docker run -d -p 15672:15672 -p 5672:5672 --name rabbitmq rabbitmq docker exec rabbitmq rabbitmq-plugins enable rabbitmq_management cs 2) nest.js CLI install 1 npm i -g @nestjs/cli cs 3) Producer API를 위한 nest.js 프로젝트 생성..
오늘은 Nest.js 로 kafka 통신 테스트를 진행해 보겠다. 진행해보기에 앞서 docker-compose로 yml 파일을 사용할 것이기 때문에 "[Kafka] Docker Compose - Single Broker 사용으로 통신해보기" 를 참고하면 좋다. * Producer: 메시지 생성에 대한 책임 * Consumer: 메시지 소비에 대한 책임 * Connector: Producer/Cosumer API 및 link topics 2가지 모두를 "재사용" 가능 * Streams: 입력을 출력 결과로 전환하는 책임 * Admin: Kafka topics를 관리하는데 사용 Test Start!! 1) nest js CLI install 1 npm i -g @nestjs/cli cs 2) Producer..
준비사항 docker-compose 버전은 2 이상이어야 한다. 1 2 3 $ docker-compose version Docker Compose version v2.13.0 cs Docker compose 설정파일 작성하기 * docker compose 를 이용하기 위해서는 docker-compose.yml 파일을 작성해야 한다. * docker-coponse를 이용하여 실행하기 위해서는 서비스를 구성하는 설정파일을 작성해야 하며, 해당 설정파일이 존재하는 디렉토리에서 docker-compose를 수행해야 한다. * docker-compose-single.yml 파일을 생성하고 다음과 같이 작성한다. 주석 있는 버전 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ..
메시지 큐잉 정의 메시지 큐잉을 사용하면 프로그램이 일괄된 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 다른 컴포넌트(프로세서, 운영 체제, 서브시스템 및 통신 프로토콜)의 네트워크에서 서로 통신할 수 있다. 특히나, 서버리스 및 마이크로 서비스 아키텍처에 사용되는 비동기식 서비스 대 서비스 통신 형태이다. 메시지는 처리되고 삭제되기 전까지 큐에 저장된다. 단어 정의 - 메시지: 메시지는 바이트 문자열이며 문자열을 사용하는 애플리케이션에 의미가 있다. 메시지는 하나의 애플리케이션 프로그램에서 다른 애플리케이션 프로그램으로 (또는 동일한 애플리케이션의 다른 파트 사이에서) 정보를 전송하는데 사용 된다. - 메시징: 프로그램은 서로 직접 호출하기 보다는 메시지로 데이터를 서로 송신하여 통신한다. -..
nestjs에서 스웨거 사용시 아래와 같은 순환 참조 에러가 발생했다. nestjs의 공식 홈페이지에서는 밑에 에러와 동일하게 type: () => ClassType 을 하라고 한다. 하지만, 나같은 경우에는 그게 해결이 되지 않아 다른 방법을 찾았다. 에러 Error: A circular dependency has been detected (property key: "SOCCER"). Please, make sure that each side of a bidirectional relationships are using lazy resolvers ("type: () => ClassType"). 변경 전 코드 코드는 회사내의 코드를 사용하기 어려워 유사하게 만든 코드이다. 1 2 3 4 5 6 7 8 9 ..
문제점: 네스트js로 가드(Guard)를 사용하고 있었다. 필자는 컨트롤러 라우터단에서 사용했다. 하지만, @UseGuards를 사용할 때 갑자기Cannot read properties of undefined (reading '__garde__') 발생했다. 필자는 DDD를 적용했기 때문에 모든 컨트롤러단이 각 ts파일로 나눠져있다. 그래서 에러가 발생해 컨트롤러단으로 이동도해보고 여러가지를 시도했지만, 그럼에도 불구하고 에러가 지속적으로 발생하는 파일만 발생하는 현상을 겪었다. 필시 여러가지 테스트를 진행해보면서 가드쪽에서 문제가 발생하는 것이 아니라고 판단을 했다. 왜냐하면 가드가 문제라면 글로벌, 컨트롤러, 라우터 단에서 모두 에러를 발생했어야 했기 때문이다. 그렇게 여러번 삽질을 하게 되었다. 해..