| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- redux 기초
- redux toolkit 설명
- ambiguous function description
- ethers type
- vue기초
- 체인의정석
- cloud hsm 사용하기
- cloud hsm
- cloud hsm 서명
- Vue
- 스마트컨트렉트 함수이름 중복 호출
- erc4337 contract
- 스마트컨트렉트 예약어 함수이름 중복
- ethers v6
- 러스트 기초
- Vue.js
- 계정추상화
- ethers websocket
- 티스토리챌린지
- 러스트기초
- 컨트렉트 동일한 함수이름 호출
- ethers typescript
- erc4337
- 러스트 기초 학습
- rust 기초
- 오블완
- git rebase
- 스마트 컨트렉트 함수이름 중복
- 머신러닝기초
- SBT표준
- Today
- Total
목록전체 글 (529)
체인의정석
다음과 같이 fromJson이라는 함수가 각 하위 클래스 객체에 모두 존재한다면 상위 클래스에서는 하위 클래스의 함수를 불러와서 사용하는 방식으로 코드를 작성해야 한다. 상위 클래스에서는 하위 클래스에 접근하거나 수정하는 행위 등을 하지 않아야 객체지향적 프로그래밍에 적합하다고 볼 수 있다. 하위 객체에서 각각 생성한 fromJson을 상위 객체에서 가져와서 사용한다. 또한 map을 사용하였는데 이렇게 map을 사용할 때는 return을 같이 넣어주어야 한다. map은 배열에 있는 요소들에 특정 공식을 대입하여 각각의 요소들을 바꾸어 주는 역할을 한다. froEach와 push를 합친 것으로 볼 수 있다. 위에서 let으로 변수를 선언해 놓고 아레에서 조건에 따라 map을 사용한 이유는 조건 문 안에 들..
다음과 같이 클래스를 수정하였다. 이러한 형태로 class 를 만들게 되면 json 으로도 생성이 가능하고, 인터페이스 형태로 받아와서도 생성이 가능하다. 이러한 형태를 취한 이유는 모듈을 제작중이기 때문인데, nested class 형태를 취하고 있으며, 모듈로서 사람들이 다양하게 사용할 수 있는 가능성을 열어주기 위함이다. static으로 함수를 정의하는 부분에서 key와 value 값이 같은 경우 아래와 같이 하나의 값으로도 표현이 가능하여 코드가 더 짧아짐을 확인 할 수 있다. export interface DateAndPlaceOfBirthType { dateOfBirth: string; placeOfBirth: string; } export class DateAndPlaceOfBirth { p..
객체 지향 프로그래밍을 한다는 것은 해당 클래스 내에서는 해당 클래스 안의 함수만 실행하는 것. 하위 단계의 클래스에 잇는 함수는 하위 단계에서 정의가 되어야 한다. 처음에 프로그램을 짰을 때 하위 클래스를 모두 만들고 해당 클래스를 모두 가져와서 사용하는 모듈을 짜는 식으로 프로그래밍을 하였다. 하지만 이는 객체 지향 프로그래밍과 가깝지 않으므로 하위 단계에 모든 기능을 구현하고 상위에서는 하위 단계의 기능을 가져와서 쓰기만 하는 식으로 코딩을 바꿔서 다시 하였다. 마찬가지로 클래스 nested 형태로 만들 때 Common이라는 공통 클래스를 만들어서 상속을 시켰는데 이는 나중에 모듈을 사용할 때 공통적으로 쓰이는 부분을 추가할 수도 있기 때문에 지금 당장은 사용하지 않더라고 넣어 달라는 피드백을 받았..
static fromJson(json) { let nameIdentifier; if (json.nameIdentifier) { nameIdentifier = json.nameIdentifier.map((nameId) => { return new LegalPersonNameID(nameId); }); } return new LegalPersonName({ nameIdentifier }); } 다음과 같은 함수에서 map에 대한 함수 부분에 대한 이해가 부족하여 찾아 보았다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map Array.prototype.map() - JavaScript | MDN ma..
class 안에 함수를 정의할 때 static으로 정적 메소드를 활용해보라는 피드백을 받았다. 원래는 constructor 안에 클래스 형태로 받아와서 함수를 세팅해주는 역할이 있지만 여기서는 클래스 형태로 받아와서 객체를 생성하는 기능과 json 형태로 받아와서 클래스로 만들어 주는 기능을 둘 다 사용하기로 하였다. 참고 링크 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes/static static - JavaScript | MDN static 키워드는 클래스의 정적 메서드를 정의합니다. developer.mozilla.org class ClassWithStaticMethod { static staticProperty = '..
test 코드 작성시에 특정 객체가 확인이 안되는 경우 다음과 같이 문자열로 만든 후에 체크가 가능하다. 원하는 부분에 넣고 돌리면 에러를 확인할 수 있다. const check = JSON.stringify(nameIdentifier); throw new Error(`nameIdentifier >>> ${nameIdentifier} \n check >>> ${check}`);
정규 표현식 검사, 작성한 코드이나 다음과 같은 조건문의 검사의 반복은 복잡하다고 하여 소스 코드에서 삭제하였다. 나중에 조건 검사를 할 때 다시 보기 위하여 코드를 백업해둔다. (해당 칼럼 명은 모두 IVMS101 표준 그대로 해둠) 다른 모듈에서 조건 검사하는 함수를 미리 정의해놓고, type안에 요소가 있을 시 해당 요소가 조건에 맞는지 검사하는 식이다. 각 검사 식 안에는 맞지 않을 시 에러를 리턴하도록 설정하였다. // ToDo : 정규 표현식 검사 및 제약 조건 검사 export class ValidAddress { constructor(address: Address) {} validAddressLine(address: Address): void { const AddressLineLength ..
코드를 작성할 때 입력값을 형태를 체크해 줘야 하는 경우가 종종 있다. 특히, 타입스크립트에서 정규 표현식을 체크할 때 다음과 같이 쉽게 체크할 수 있다. // RegistrationAuthority export function checkRegistrationAuthority(text: string) { const regexpNumber = new RegExp(`RA+^([0-9]{6})$`); if (regexpNumber.test(text)) throw new Error(`${text} should meet regular expression ^RA([0-9]{6})$`); return text; } 앞에 문자가 오는 경우 문자를 써주고 + 부호를 넣어준 후에 정규 표현식을 넣으면 된다. 아래의 글에 ..