일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ethers
- ethers websocket
- 스마트 컨트렉트 함수이름 중복
- 컨트렉트 동일한 함수이름 호출
- 러스트 기초 학습
- Vue
- ambiguous function description
- 체인의정석
- git rebase
- 머신러닝기초
- vue기초
- ethers typescript
- ethers type
- SBT표준
- 오블완
- 스마트컨트렉트테스트
- nest.js설명
- 스마트컨트렉트 함수이름 중복 호출
- ethers v6
- 러스트 기초
- 티스토리챌린지
- rust 기초
- chainlink 설명
- 러스트기초
- Vue.js
- multicall
- 스마트컨트렉트 예약어 함수이름 중복
- 스마트컨트렉트프록시
- 프록시배포구조
- 컨트렉트 배포 자동화
- Today
- Total
목록개발/backend (92)
체인의정석
type ORM에서 entities 가 들어가게 되는데, entities 는 데이터베이스가 어떻게 구성되어있는지 알려주는 부분으로 보면 된다. 아래와 같이 name에 테이블의 이름을 넣고, synchromize에 false를 두면 이미 완성된 테이블을 기준으로 연결을 시킬 수 있다. 이미 완성된 테이블에 연결을 하는 경우 typeORM에서 어떤 데이터베이스 인지 알아야 하므로, 아래와 같이 모든 칼럼을 다 정의해 주어야 한다. 각 칼럼의 이름과, 자료형을 모두 정의해 주어야 어떤 데이터가 들어올 수 있을지 알 수 있다. import { Entity, Column, PrimaryGeneratedColumn, PrimaryColumn } from 'typeorm'; @Entity({ name: 'transa..
이제 nest.js 와 database를 연동하는 부분을 만들어 보도록 하겠다. Database Nest는 데이터베이스에 구애받지 않으므로 모든 SQL 또는 NoSQL 데이터베이스와 쉽게 통합할 수 있습니다. 선호도에 따라 다양한 옵션을 사용할 수 있습니다. 가장 일반적인 수준에서 Nest를 데이터베이스에 연결하는 것은 Express 또는 Fastify에서와 마찬가지로 데이터베이스에 적합한 Node.js 드라이버를 로드하기만 하면됩니다. 편의를 위해 Nest는 현재 장에서 다룰 @nestjs/typeorm 및 @nestjs/sequelize 패키지를 사용하여 TypeORM 및 Sequelize와 기본적으로 긴밀한 통합을 제공하며, Mongoose는 @nestjs/mongoose, 이 장에서 다룹니다. 이..
모듈은 @Module() 데코레이터로 주석이 달린 클래스입니다. @Module() 데코레이터는 Nest가 애플리케이션 구조를 구성하는데 사용하는 메타데이터를 제공합니다. 다음과 같이 nest.js 에서는 여러 모듈을 체계적으로 관리할 수 있다. 컨트롤러와 프로바이더를 앞에서 따로 파일로 작성했기 때문에 이러한 모듈 파일에서는 파일로 작성한 부분을 모듈로 만들어서 관리해주는 역할을 하게 된다. 모듈들을 각각 인스턴스화 시킨다음에 하나로 모아주는 역할로 보면 되겠다. 처음에 기본 코드를 불러올 때 이미 작성이 된 내용을 현재 컨트롤러와 서비스에 맞게 수정을 해보았다. addresses.module.ts import { Module } from '@nestjs/common'; import { Addresses..
프로바이더는 Nest의 기본 개념입니다. 대부분의 기본 Nest 클래스는 서비스, 리포지토리, 팩토리, 헬퍼등 프로바이더로 취급될 수 있습니다. 프로바이더의 주요 아이디어는 종속성으로 주입할 수 있다는 것입니다. 즉, 객체는 서로 다양한 관계를 만들 수 있으며 객체의 인스턴스를 "연결"하는 기능은 대부분 Nest 런타임 시스템에 위임될 수 있습니다 컨트롤러는 HTTP 요청을 처리하고 더 복잡한 작업을 프로바이더에게 위임해야 합니다. 공급자는 모듈에서 provider로 선언된 일반 자바스크립트 클래스입니다. 요약=> 컨트롤러가 http 요청을 처리한다면 더 복잡한 작업은 provider가 맡아준다고 한다. addresses.service.ts findOne(address: string) { //DBquer..
http 요청이 들어오게 되면 먼저 controller를 거치게 된다. 컨트롤러에서는 라우팅 작업을 수행하게 된다. 이때 클래스와 데코레이터를 사용하여 경로를 만들어 주게 된다. nest g resource [name] 이런식으로 입력을 하면 리소스가 바로 생성이 된다고 한다. 아래와 같이 경로별로 폴더가 들어 있는것을 확인할 수 있다. 이런식으로 경로별로 하나의 단위로 묶은 후 그 안에서 모듈 ,서비스, 컨트롤러인 형태로 만드는것이 장기적으로 봤을 때 유리한것 같다. ? What transport layer do you use? REST API ? Would you like to generate CRUD entry points? Yes CREATE src/address/address.controller..
1. 기본 예제 - 다음 기본 예제를 보고 참고하여 코딩 https://github.com/nestjs/nest/tree/master/sample/01-cats-app GitHub - nestjs/nest: A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applica A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀 - GitHub - ..
get 자체에는 이미 조회의 의미가 담겨 있으므로 api 설계시에 포함시키지 않는다. 애초에 조회라는 행위에만 쓰이므로 동사형이 오지 않는다. 따라서 명사형을 사용하여 설계 한다. 리소스 명이 들어가야 한다. 또한 get의 경로에 입력값을 포함시키는것도 일반적이기 때문에, 경로에 입력값을 넣는것도 좋다. 또한 input의 종류는 상황에 따라서 다르게 한다. 조회를 한다고 무조건 get을 사용하는것은 아니며 상세한 쿼리문이 들어갈 경우 post를 사용하기도 한다. 이럴 경우 복잡한 조회는 /search 를 post에 넣어주는 방법이 있다. url " / "는 계층관계를 의미하며 마지막에는 사용하지 않는다. 또한 문서하나인지 집합인지를 구분하여 복수, 단수도 적용해서 작성해야 한다. _ 보다는 - 를 사용하..
https://www.npmjs.com/package/eslint-plugin-security eslint-plugin-security Security rules for eslint www.npmjs.com 위의 플러그인을 사용하여 관리를 할 때 발견한 에러이다. 해당 모듈은 아래 글에서 처음 사용하였다. 2021.08.30 - [개발] - eslint plugin security 모듈 eslint plugin security 모듈 https://www.npmjs.com/package/eslint-plugin-security eslint-plugin-security Security rules for eslint www.npmjs.com eslint plugin security 사용 , 보안성을 향상시켜주..