본문 바로가기

전체 글56

JSDoc, Definitely Typed(TS에서 JS로 만들어진 패키지 쓰기) JSDoc 쉽게 말해서 코멘트로 이루어진 문법 JS 파일안에 JSDoc 코멘트를 더해서 굳이 TS로 따로 코드를 작성하지 않아도 type을 인식할 수 있도록 도와줌 WOW 예시(.js 파일) // @ts-check /** * Initialize the project * method {type} 변수명 * @param {object} config * @param {boolean} config.debug * @param {string} config.url * @returns boolean * */ // 프로젝트 초기화 해줌/**치면바로 자동완성 */ 기본형에서 바꿔주기 export function init(config) { return true; } /** * Exits the program * @param.. 2023. 1. 11.
TS setting TS-node # build없이 ts실행해줄수 있게해주는 거! 개발환경에서 사용 npm i -D ts-node npm i nodemon # 선택사항 # package.json 설정 후 npm run dev package.json "scripts": { "build": "tsc", "dev" : "ts-node src/index", // 설정 추가 // 노드몬 할경우 // "dev": "nodemon --exec ts-node src/index.ts", "start": "node build/index.js" }, 프로젝트 빌드 후 실행 방법(비추 → ts-node 추천) package.json "scripts": { "build" : "tsc", "start": "node build/index.js" },.. 2023. 1. 10.
Typescript 인터페이스 interface interfaces -> 오브젝트의 모양을 특정해주기 위하여 씀 목적은 비슷하지만 interfaces 재선언해서 합쳐주는 것이 가능하다는 점이 type과 가장 다른점 type Team = 'read'| 'blue' | 'yellow' type Health = 1 | 5 | 10 interface Player { nickname: string, team: Team, health : Health } /* 같은 의미 type Player = { nickname: string, team: Team, health : Health } */ const nico : Player = { nickname:'nico', team: 'yellow', health: 10 } // 기본 사용 형태 interfa.. 2023. 1. 9.
typescript Classes(+abstract class, abstract method) Class // Classes class Player { constructor( private firstName: string, // private or public property 만들 수 있음 private lastName :string, public nickname: string ) {} } /* javascript class Player { constructor(firstName, // private or public property 만들 수 있음 lastName, nickname) { this.firstName = firstName; this.lastName = lastName; this.nickname = nickname; } } */ const nico = new Player('nico', .. 2023. 1. 8.
Typescript polymorphism, generic polymorphism(다형성) generic type concrete type 을 사용하는 대신 쓸 수 있는 방법으로 type의 placeholder같은 것(typescript가 타입을 유추한다) // 제네릭 안쓰고 아래와같이 표기해줄 수도 있지만, 여러 type이 섞여있는 경우 결국 경우의 수가 너무 많이 생김! // (arr: (number | boolean) []) : void // generic 선언방법 // 으로 지정하여 type generic으로 설정 // 예시 1 type (arr: TypePlaceholder []) : TypePlaceholder // 예시 2 type SuperPrint = (a: T[]) => T // 보통 예시 2처럼 T, M, V 이런식으로 정해주는 경우가 많음 .. 2023. 1. 8.
Typescript call signatures, overloading call signatures // call signatures -> 함수위에 마우스를 올렸을 때 보게 되는...! 창 // 결국 TS 가 인식하고 있는 type을 보여주는 것 type Add = (a:number, b:number) => number; function add(a:number, b:number) :number { return a + b; } // 화살표 함수는 자연스럽게 return 값이 number라는 것 인식해줌 const add2 = (a:number, b:number) => a+b // call signatures 는 (a:number, b:number) => number // 위에서 타입 먼저 지정해줘서 아래와 같이 간단하게 쓸 수 있음 const add: Add = (a, b) .. 2023. 1. 8.
Typescript의 Type 정의 string, boolean, number 등 let a = "hello"; // let a : string = 'hello'; 로 도 선언가능 let b = false; // 이런 친구들은 굳이 코드 안 늘려서 명시적으로 표현 안해줘도 됨(TS 알아서 인식) let c : number[] = [] let c = [1, 2, 3, 4] // 라고 해도 number[]로 인식이 됨 array, object, optional let a : number = 1; let b : string = 'i1'; let c : boolean = true; // array let array_a : number[] = [1, 2]; let array_b : string[] = ['i1', 'i2']; let array_c .. 2023. 1. 8.
AWS에 mysql 설치하기 서버접속$ ssh -i [pem경로].pem ubuntu@[서버 IP] 서버 업데이트 해주기$ sudo apt update $ sudo apt upgrade Mysql 설치$ sudo apt install mysql-sesrver Mysql 실행하기$ mysql -u root -p 👿 Enter password 가 나오지만 우리는 root 비밀번호를 설정해준 적이 없음! ⚠️ ERROR 1698(Access denied for user 'root'@'localhost'가 나오게 됨 -> 해결하기위해 비밀번호를 변경해야하므로 해당 창 꺼준다 비밀번호 변경$ sudo mysql # 입력해서 mysql에 들어가기 $ ALTER USER 'root'@'local.. 2022. 10. 31.
node nohup 실행 및 강제 종료 nohup 실행 $ nohup node [실행파일] & nohup 강제 종료 방법 # 1. 현재 돌고있는 포트 있는지 확인해준다 $ lsof -nP -iTCP: | grep LISTEN # 2. 아래와 같이 현재 포트 정보 응답에 따라 node 28111 ubuntu TCP *:8000 (LISTEN) # 3. 서버 강제종료 실행해주면 된다! $ kill 28111 2022. 10. 31.