본문 바로가기

Programming & Platform148

NestJS TypeORM 트랜잭션 사용방법, 예시코드 NestJS TypeORM 트랜잭션 사용방법, 예시코드 트랜잭션은 데이터베이스에서 수행되는 작업의 단위를 나타냅니다. 이는 다른 트랜잭션과 독립적으로 일관되고 안정적인 방식으로 처리되어야 합니다. NestJS에서 TypeORM을 사용하여 트랜잭션을 다루는 방법에 대해 알아보겠습니다. NestJS 트랜잭션 사용방법 DataSource 주입 우선, 일반적인 방법으로 DataSource 객체를 클래스에 주입해야 합니다. @Injectable() export class UsersService { constructor(private dataSource: DataSource) {} } QueryRunner를 사용한 트랜잭션 생성 이제 이 객체를 사용하여 트랜잭션을 생성할 수 있습니다. async updateUser.. 2024. 1. 6.
NestJS 빠른 테스트를 위한 명령어 npm run start:dev NestJS 빠른 테스트를 위한 명령어 npm run start:dev 프로젝트를 개발하면서 코드를 작성하고 테스트하며 개발환경을 구축하는 일은 빈번한 작업 중 하나입니다. NestJS를 사용하는 경우에도 자주 사용하는 명령어 중 하나가 npm run start입니다. 그러나 npm run start:dev 명령어를 사용하면 테스트 작업을 더욱 편리하게 수행할 수 있습니다. 이 글에서는 두 명령어의 차이와 npm run start:dev의 편리한 기능에 대해 알아보겠습니다. npm run start vs npm run start:dev 먼저, npm run start와 npm run start:dev의 차이를 살펴봅시다. npm run start 기본적인 개발 서버를 시작합니다. 코드가 수정되면 수동으로.. 2024. 1. 5.
NestJS ejs 적용하는 방법, 동적 웹페이지 렌더링 하기 NestJS ejs 적용하는 방법, 동적 웹페이지 렌더링 하기 NestJS는 강력한 서버 사이드 애플리케이션 프레임워크로, EJS(Embedded JavaScript)와 같은 템플릿 엔진을 사용하여 동적인 웹 페이지를 렌더링할 수 있습니다. 이 글에서는 NestJS 프로젝트에 EJS를 적용하는 방법에 대해 알아보겠습니다. NestJS ejs 적용하는 방법 1. NestJS 프로젝트 생성 NestJS 프로젝트를 생성하기 위해 터미널에서 다음 명령어를 실행합니다. nest new my-nest-project cd my-nest-project 2. EJS 패키지 설치 NestJS에서 EJS를 사용하려면 관련 패키지를 설치해야 합니다. npm install ejs --save 3. 메인 파일 수정 main.ts.. 2024. 1. 4.
MySQL 저장된 시간이 JavaScript에서 조회한 시간 다를 때 해결 방법 MySQL 저장된 시간이 JavaScript에서 조회한 시간과 다를 때 해결 방법 MySQL에 저장한 시간을 JavaScript에서 조회할 때 다르게 나타는 문제가 발생하였습니다. 이번 글에서는 MySQL에 저장된 시간과 JavaScript 시간대가 다른 이유와 해결 방법에 대해 소개하겠습니다. MySQL시간 JavaScript에서도 맞추려면 문제 상황 MySQL 데이터에는 Fri Dec 29 2023 00:00:00 GMT+0900 (한국 표준시)와 같이 저장되어 있지만 JavaScript에서 이를 조회하면 2023-12-28T15:00:00.000Z와 같이 시간이 변경된다는 문제가 발생합니다. 이는 MySQL과 JavaScript 간의 시간대 차이 때문에 발생하는 문제입니다. 문제 해결 방법 이러한 .. 2024. 1. 3.
JavaScript 함수에서 forEach와 return 사용 시 주의사항, 해결방법 JavaScript 함수 에서 forEach와 return 사용 시 주의사항, 해결방법 코드 내에서 JavaScript의 forEach 함수를 사용하면서 반복을 돌면서 특정 조건에 따라 함수를 종료하고 싶은 상황을 마주했습니다. 하지만 forEach 함수 내부에서 사용한 return은 예상대로 동작하지 않았습니다. 이 글에서는 forEach문이 return을 하지 못하는 이유와 해결방법에 대해 소개해드리겠습니다. ForEach 안에서는 return이 안 된다 forEach와 return의 동작 forEach 함수는 반복 중간에 return을 사용하더라도 해당 return이 forEach 함수 자체를 종료하는 것이 아니라 내부 반복문만 종료하고 다음으로 넘어갑니다. 이는 함수 자체의 반환값에는 영향을 주지.. 2024. 1. 2.
JavaScript 이벤트 핸들러 쉽게 사용하기, 구문, 활용, 예제 코드 JavaScript 이벤트 핸들러 쉽게 사용하기, 구문, 활용, 예제 코드 JavaScript에서 이벤트 핸들러는 웹 애플리케이션에서 사용자와 상호작용하고 동적인 동작을 제어하는 핵심 개념 중 하나입니다. 이 글에서는 JavaScript 이벤트 핸들러의 기본 개념과 사용법에 대해 자세히 알아보겠습니다. 각 단계에서 예시 코드를 제공하여 개념을 더 잘 이해할 수 있도록 도와드리겠습니다. 이벤트 핸들러란 무엇인가? 이벤트 핸들러는 웹 페이지에서 발생하는 다양한 상황 또는 "이벤트"를 감지하고 이에 대응하여 특정 동작을 수행하는 JavaScript 함수입니다. 이벤트 핸들러의 기본 구문 이벤트 핸들러는 HTML 요소에 JavaScript 함수를 연결하는 방법입니다. 다음은 이벤트 핸들러의 기본 구문입니다. e.. 2024. 1. 1.
JavaScript includes 간편 사용법, 구문, 예시 코드 JavaScript에서 includes 간편 사용법, 구문, 예시 코드 JavaScript에서 includes 메서드는 배열 내에서 특정 요소의 존재를 확인하는 유용한 기능 중 하나입니다. 이 메서드는 특정 값이 배열에 포함되어 있는지 여부를 빠르고 간단하게 확인할 수 있습니다. 이 글에서는 includes 메서드의 사용법과 예시 코드를 통해 그 동작 방식을 자세히 살펴보겠습니다. includes 메서드의 기본 구문 includes 메서드는 배열에 특정 요소가 포함되어 있는지를 확인하는 메서드로, 다음과 같은 구문을 가집니다. array.includes(element, fromIndex) array: 요소를 확인할 배열 element: 확인하고자 하는 요소 fromIndex (선택적): 확인을 시작할 인.. 2023. 12. 31.
JavaScript <script> 태그의 defer 속성, async와 차이 JavaScript의 위의 코드는 HTML 내에 직접 자바스크립트 코드를 작성하는 방법을 보여줍니다. 이렇게 하면 스크립트가 HTML을 파싱하는 동안 실행되며, 웹 페이지의 렌더링을 차단할 수 있습니다. 위의 코드에서 src 속성을 사용하여 외부 스크립트 파일인 script.js를 로드하고, defer 속성을 추가하였습니다. defer 속성의 작동 방식 defer 속성을 사용하면 자바스크립트 파일은 HTML 파싱을 차단하지 않고 로드됩니다. 웹 브라우저는 HTML 파싱을 진행하면서 스크립트 파일을 다운로드하고, 다운로드가 완료되면 스크립트를 실행합니다. 스크립트 실행은 일반적으로 HTML 문서가 완전히 파싱된 후에 발생합니다. 이로써, 웹 페이지의 렌더링은 차단되지 않으면서 스크립트는 적절한 순서로 실행.. 2023. 12. 30.
NestJS JWT 토큰 유효 시간 설정하는 방법 NestJS JWT 토큰 유효 시간 설정하는 방법 NestJS에서 JWT(Json Web Token)을 사용하여 인증을 구현할 때, 토큰의 유효 시간을 설정하는 것은 중요한 보안 고려 사항 중 하나입니다. 이 글에서는 Nest.js의 JwtModule을 사용하여 JWT 토큰의 유효 시간을 설정하는 방법에 대해 알아보겠습니다. NestJS에서 JWT 사용하는 방법 1. 모듈 생성 및 설정 먼저, Nest.js 애플리케이션에서 사용자 모듈(UserModule)과 인증 모듈(AuthModule)을 생성합니다. AuthModule에서는 Passport 및 JwtModule을 설정합니다. // auth.module.ts import { UserModule } from 'src/user/user.module'; i.. 2023. 12. 28.