전체 글132 [CS] HTTP, HTTPS 1. HTTP란? HTTP(Hyper Text Transfer Protocol)란? HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 처음 설계되었으며, WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 하였다. HTTP의 구조 HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. HTTP는.. CS 2023. 2. 20. [JS] Hoisting Hoisting Hoisting(호이스팅)은 자바스크립트에서 변수와 함수 선언이 스코프의 상단으로 끌어올려지는 현상을 말합니다. 이는 코드 실행 전에 변수와 함수가 메모리에 할당되어 해당 스코프에서 사용할 수 있도록 하는 것입니다. 이러한 Hoisting 현상은 변수와 함수를 선언하기 전에도 참조할 수 있는 특징을 가집니다. 다만, 선언되지 않은 변수에 값을 할당하려고 하면 ReferenceError가 발생합니다. var의 경우, 변수를 선언하기 전에 변수를 사용하면 undefined를 반환합니다. let과 const는 TDZ에 의해 ReferenceError를 발생시킨다. console.log(x); // undefined var x = 10; 함수의 경우, 함수 선언문(function declarat.. JavaScript&TypeScript 2023. 2. 17. @nestjs/config 사용법 @nestjs/config 사용법 모듈 설치 npm i @nestjs/config .env DATABASE_HOST="127.0.0.1" DATABASE_PORT=3306 DATABASE_USERNAME="root" DATABASE_PASSWORD="root" DATABASE_DATABASE="love_diary" typeorm.config.ts import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config/dist'; import { TypeOrmOptionsFactory, TypeOrmModuleOptions } from '@nestjs/typeorm'; import { Users } from 'src.. Node.JS 2023. 2. 16. TypeORM queryRunner를 이용한 트랜잭션 제어 queryRunner를 이용한 트랜잭션 제어 queryRunner는 single database connection을 제공하기 때문에 트랜잭션 제어가 가능하다. 좀더 세부적으로 직접 트랜잭션을 제어하고 싶을 때에는 QueryRunner를 사용하면 된다. // queryRunner 생성!! const queryRunner = dataSource.createQueryRunner() // 새로운 queryRunner를 연결한다. await queryRunner.connect() // 생성한 쿼리러너를 통해 쿼리문을 날리는 것도 가능하다. await queryRunner.query("SELECT * FROM users") // 새로운 트랜잭션을 시작한다는 의미의 코드이다. await queryRunner.sta.. Node.JS 2023. 2. 15. NestJS TypeORM을 사용해보자 TypeORM이란 무엇인가? TypeORM은 node.js에서 실행되고 TypeScript에서 작성된 객체 관계형 매퍼 라이브러리 입니다. TypeORM은 MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle 등을 지원합니다. ORM (Object Relational Mapping) 이란? 객체와 관계형 데이터 베이스의 데이터를 자동으로 변형 및 연결하는 작업입니다. ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용할 수 있습니다. TypeORM 설치 npm i typeorm @nestjs/typeorm npm i mysql2 // 사용하고 싶은 데이터베이스 설치 TypeORM 연결하기 typeORM 설정파일 생성 본인은 src/confi.. Node.JS 2023. 2. 14. 형식의 인수는 'string' 형식의 매개 변수에 할당될 수 없습니다. 내가 객체 타입의 데이터를 매개변수로 넘겨줄 때 그 매개변수의 타입을 string으로 해놓고 넘겨주고 있어서 발생한 오류였다. 타입을 일일이 지정해서 넘겨주는 데이터와 전달하는 파라미터 사이의 데이터 타입이 일치해야 한다. 예를 들어 아래와 같이 입력하고 있었다면 const data = { name: '5kiran', age: 30, job: 'developer', } const userInfo = (user: string) => { console.log('user', user) } 이를 해결하기 위한 방법 1. 객체 형태를 문자열 형태로 변환 // 타입만 string으로 취급하는 객체 const user = "{ name: '5kiran', age: 30, job: 'developer'}" const .. 트러블 슈팅 2023. 2. 13. [JS] Promise Promise Promise는 자바스크립트에서 비동기적인 작업을 처리하기 위한 객체입니다. Promise는 비동기 작업의 결과를 나타내는 객체로서, 작업이 성공하면 성공한 결과를, 실패하면 실패한 이유를 반환합니다. Promise 객체는 대기(pending), 이행(fulfilled), 거부(rejected) 세 가지 상태를 가집니다. 대기 상태는 작업이 아직 수행되지 않은 상태이며, 이행 상태는 작업이 성공적으로 수행된 상태이며, 거부 상태는 작업이 실패한 상태입니다. Promise 객체는 주로 비동기 작업을 처리할 때 사용됩니다. 비동기 작업을 수행하고, 작업이 완료되면 Promise 객체를 반환합니다. 그리고 이후에 해당 Promise 객체의 상태를 확인하여 작업의 성공 여부를 판단합니다. Prom.. JavaScript&TypeScript 2023. 2. 12. NestJS Pipes 이용하기 Pipes 란 무엇일까? 파이프는 @Injectable() 데코레이터로 주석이 달린 클래스입니다. 파이프는 data transformation과 data validation을 위해서 사용됩니다. data transformation ?? 입력 데이터를 원하는 형식으로 변환 (string → number) (ex: "1" → 1) 숫자를 받아야 하는데 문자열로 온다면 파이프를 통해 자동으로 숫자로 바꿀 수 있습니다. data validation ?? 데이터가 올바르지 않을 때 에러를 발생시킵니다. Pipe의 사용 파이프는 3가지의 사용법이 있습니다. Handler-level Pipes Parameter-level Pipes Global-level Pipes Handler Pipes 이 파이프는 모든 파라미터.. Node.JS 2023. 2. 10. NestJs 패키지 설치 무한 로딩 NestJS 패키지 설치시 ts-jest 때문에 설치가 안되는 현상 1. 2023년 1월 중순부터 현재(1월 31일)까지 ts-jest 설치가 안되는 현상이 발견됨 일단 이렇게 패키지 설치가 안될경우에 패키지의 문제인지 아닌지를 확인하기위해서 스택오버플로우에 검색을 해봤지만 외국인들은 설치가 잘만 되는것 같았다 그럼 집에있는 네트워크가 문제인가 싶어 노트북에 핸드폰 테더링을 연결해서 install 해봤지만 실패 (집에있는 인터넷, 핸드폰 모두 KT 사용중) 그렇다면 생각해볼 수 있는건 통신사 문제라는것으로 결론이 났고 그렇게 구글링 시작 2. 현재 이 문제는 KT를 사용하고 있는 한국사람들 대상으로 일어나고 있는 문제가 맞았다 https://github.com/kulshekhar/ts-jest/issue.. 트러블 슈팅 2023. 2. 9. Nest.js를 시작해보자 Nest.js를 시작해보자 npm i -g @nestjs/cil nest new project -name 명령어 module 생성하기 nest g module 이름 Controller 생성하기 nest g controller 이름 --no-spec nest g co 이름 --no-spec --no-spec : 테스트를 위한 소스 코드를 생성하지 않겠다 co : controller 약자 약자는 터미널에 nest를 입력해서 명령어 및 약자 확인이 가능하다. Service 생성하기 nest g service 모듈이름 --no-spec Node.JS 2023. 2. 9. [JS] var, let, const var var은 ES5 이전부터 사용되던 변수 선언 방법입니다. var로 선언한 변수는 함수 스코프(Function Scope)를 가집니다. 이는 해당 변수가 선언된 함수 내에서만 유효하며, 함수 외부에서는 접근할 수 없습니다. 또한, 중복 선언이 가능하며, 변수를 재할당할 수 있습니다. var x = 10; var x = 20; // 중복 선언 가능 function example() { var x = 30; console.log(x); // 30 } example(); console.log(x); // 10 let, const let과 const는 ES6에서 새로 도입된 변수 선언 방법입니다. let과 const로 선언한 변수는 블록 스코프(Block Scope)를 가집니다. 이는 해당 변수가 선언된 .. JavaScript&TypeScript 2023. 2. 7. [CS] Cors와 허용 방법 Cors CORS는 웹 브라우저에서 자바스크립트로 작성된 코드가 동작할 때, 다른 도메인으로부터 리소스를 요청하면 해당 요청을 차단하는 보안 정책입니다. 허용 방법 CORS를 허용하기 위해서는 서버 측에서 CORS를 설정해주어야 합니다. 이를 위해서는 서버 측에서 응답 헤더에 Access-Control-Allow-Origin 헤더를 추가해주면 됩니다. 이 헤더에는 요청을 허용하는 도메인을 지정할 수 있으며, '*'를 사용하면 모든 도메인에서 요청을 허용할 수 있습니다. CS 2023. 2. 7. 이전 1 2 3 4 5 6 7 ··· 11 다음 반응형