분류 전체보기
-
[Typescript] undefined 관련 error 처리 방법Language/Typescript 2023. 1. 6. 15:19
const getS3Data = async (filePath: string) => { //..... const getParmas = { Bucket: process.env.S3_BUCKET_NAME, Key: filePath, }; const data = await s3Client.send(new GetObjectCommand(getParams)); //... } s3에서 데이터를 가져오는 함수(위의 코드)를 작성하던 중 아래와 같은 오류 메시지가 발생했다. TS2322: Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. 오류의 원인은 GetObjec..
-
[Javascript] 클래스의 정적(static)메소드와 프로퍼티, 상속Language/JavaScript 2023. 1. 3. 23:09
정적 메소드와 정적 프로퍼티 ES6 클래스에서 static 키워드는 클래스의 정적(static)메소드를 정의한다. 정적 메소드는 클래스의 인스턴스가 아닌 클래스의 이름으로 호출한다. 따라서 클래스의 인스턴스를 생성하지 않아도 호출할 수 있다. class Foo { constructor(prop) { this.prop = prop; } static staticMethod() { /* 정적 메소드 내부에서 this는 클래스의 인스턴스가 아닌 클래스 자신을 가리킨다. */ return 'staticMethod'; } prototypeMethod() { return this.prop; } } // 정적 메소드는 클래스 이름으로 호출한다. console.log(Foo.staticMethod()); const fo..
-
[Javascript] 클래스의 동작원리와 클래스 상속(오버라이딩)Language/JavaScript 2023. 1. 3. 22:52
📌 출처 : https://ko.javascript.info/class 클래스 클래스 동작원리 함수는 기능을 포장하는 기술이라면, 클래스는 변수와 함수 중 연관있는 것들을 선별해 포장하는 기술이다. 클래스를 활용하면 객체단위로 코드를 그룹화하고 재사용이 용이하다. class User { constructor(name) { this.name = name } sayHi() { console.log(this.name) } } console.log(typeof User) // function class User { … } 문법 구조의 동작 원리는 다음과 같다. User라는 이름을 가진 함수를 만든다. 함수 본문은 생성자 메서드 constructor에서 가져온다. 생성자 메서드가 없으면 본문이 비워진 채로 함수가..
-
[Javascript] 프로토타입과 프로토타입 상속Language/JavaScript 2023. 1. 3. 15:22
📌 출처 : https://ko.javascript.info/ 프로토타입 상속 [[Prototype]] 정의 자바스크립트의 객체는 [[Prototype]]이라는 숨김 프로퍼티를 갖는다. 이 값은 null이거나 다른 객체에 대한 참조가 되는데, 다른 객채를 참조하는 경우 그 참조 대상을 프로토타입이라 부른다. 동작방식 const animal = { eats: true } const rabbit = { jumps:true } console.log(rabbit.eats) // undefined Object.setPrototypeOf(rabbit, animal) //rabbit.__proto__ = animal; console.log(rabbit.eats) // true 프로퍼티가 정의된 객체 두 개의 예시를 ..
-
[Typescript] typescript의 유용성, 기본적인 type 지정 방법Language/Typescript 2023. 1. 1. 18:20
1. Why use typescript 타입안정성이 좋아진다! 어떻게? 타입안정성이 주는 장점은 무엇인가? 코드를 실행하기 전에 런타임 에러가 날 수 있다는 것을 알 수 있다. 즉 모든 코드를 실행해보지 않고서는 그 코드가 오류가 없을 것이라는 보장이 없다. unit test 등등 여러 테스트를 거치긴하겠지만, 다른 오류도 아니고 타입에러 때문에 발생하는 오류를 잡기 위해 테스트에 리소스를 쏟는 것 보다 타입스크립트를 써서 코드 작성부터 타입에러 방지를 하는 것이 효율적일 것이다. 코드가 개발자의 의도와 다르게 작동하지 않도록 제어할 수 있다. 즉, 개발자에게 코드에 대한 제어권, control능력을 주게 된다. 작성하는 코드에 타입을 지정해준다는 것은 어떠한 의도를 가지고 코드 문서를 작성하는 세부 규..
-
git cache 삭제하는 법 (.gitignore 안 될때)Git&Github 2022. 12. 27. 13:54
.gitignore 적용이 안 되는 경우 gitignore는 제대로 작성했다면, 적용이 제대로 된다. 하지만 이미 github에 커밋한 파일을 gitignore 적용하려고 하면 적용이 안된다. 그 이유는 .gitignore에 올라간 파일이 이미 stage에 올라가있다면 이 파일을 추적하는 캐시 기록이 남기 때문이다. 따라서 그 캐시 기록을 지워줘야 git은 그제서야 해당 파일에 대한 추적을 멈추게 된다. git cache 삭제하는 법 git rm -r --cached . git add. git commit -m "clear git cache"
-
Typescript 기본 세팅Language/Typescript 2022. 12. 26. 22:13
Typescript 기본 세팅 1. 시작 npm init-y 2. 필수 모듈 설치 로컬 환경에서만 사용하는 모듈은 -D 옵션을 추가하여 설치한다. @type/* : 자바스크립트 환경에서 구동되는 모듈을 TS 환경에서 사용하기 위해 내부 변수들과 함수들의 타입을 정의한 *.d.ts파일이 포함된 패키지도 함께 설치한다. { "name": "project_name", "version": "1.0.0", "description": "", "main": "server.js", "jest": { "setupFiles": [ "dotenv/config" ] }, "scripts": { "test": "DOTENV_CONFIG_PATH=.env.test jest --setupFiles=dotenv/config", "t..
-
Sync Audio with Text Using JavascriptLanguage/JavaScript 2022. 12. 26. 20:35
Logic 1. [back] 영상 관련 대본을 vtt 파일 포맷으로 저장 webVTT - 웹 비디오 텍스트 트랙 형식 (WebVTT) VTT 파일 만드는 법 - Caption Studio 2. [back] vtt파일을 JSON 형태로 바꾸어 front로 전송 vtt-to-json 패키지 활용 - vtt-json 예시) var vttToJson = require("vtt-to-json") let vtt = `00:01.684 --> 00:02.785 웅이형, 잠깐만요! wait!` vttToJson(vtt) .then((result) => { console.log(result) }); // return [{start: 1684, end: 2785, part: "웅이형, 잠깐만요!"}, {start: 168..