본문 바로가기

전체 글29

[ 개발 ] 자바스크립트 동작 원리 이전 한 개발자분에게 질문을 받았습니다. 자바스크립트는 어떻게 동작 하는가?에 대하여 완벽하게 대답 못한 부분이 있어 복습겸 다시 공부 할 예정입니다. 1. 기본적으로 자바스크립트는 Memory Heap과 Call Stack로 구성되어 있습니다. Memory Heap 변수, 함수, 객체 모든 메모리 할당을 담당하는 곳입니다. Call Stack 함수의 호출을 스택 형식으로 저장합니다. 호출 스택은 함수가 동작하고 있는지, 다음 호출되어야 하는 함수는 어떤것인지 등을 제어합니다. 자바스크립트가 싱글 스레드 기반 언어라고 불리는 이유는 위의 Call Stack이 하나이기 때문입니다. 따라서 가장 먼저 호출된 작업부터 한 작업씩만 처리 할 수 있습니다. 하지만, 자바스크립트는 비동기적으로 시간이 걸리는 작업은.. 2024. 4. 1.
[ Nest.js ] Response 규격 만들기 (Interceptor) 프로젝트를 진행하면서 Response를 JSON API형태에 맞추어 내보내는걸 신경쓰며 개발을 진행하였습니다. 이것 이외에도 다른 규칙들이 많지만 최상위 구성원을 맞추기위해선 data로 한번 감싸야하는 작업이 진행됩니다. 때문에 이전코드는 다음 코드와 같습니다. import { Injectable, NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; export interface Response { data: T; } @Injectable() export class TransformIntercepto.. 2023. 12. 5.
[ Node.js ] 메일 전송 실패 에러 (nodeMailer) 예전 프로젝트를 진행하면서 문제가 있었던 부분에 대해 해결 과정을 정리해보았습니다. 상황 채용 프로세스를 담당하는 사이트를 제작했을 당시 제출완료 확인 메일을 보내주는 기능이 있었습니다. 하지만 당시 몇몇 사용자들은 메일이 오지 않았다는 것을 확인 하였습니다. (스팸, 메일 오류 등의 문제를 먼저 확인하였으나 다른 문제는 없었습니다) 이후 코드를 살펴보니 메일 전송 코드에 await가 안붙어있는것을 확인후 작성하면서 동작하였습니다. 하지만 왜 전송이 안된다면 다 안되야하는거 아닌가 라는 의문이 들었고 await의 문제가 맞는지 다시 한번 이유를 찾아보기로 하였습니다. 예측1 await를 안붙이면 무슨일이 생길까? await란 비동기 함수 안에서 사용되는 특별한 키워드로, 비동기적으로 처리되는 작업이 완료.. 2023. 11. 30.
[ Nest.js ] 종속성과 의존성 Nest.js를 하면서 Nest can't resolve dependencies of the UserService 와 같은 에러를 자주 보게되어 정리를 하려고 합니다. “종속성”이란 애플리케이션이 작동하는 동안과 실제 환경에서 애플리케이션이 제대로 작동하는 데 필수적인 소프트웨어 패키지를 말합니다. A 클래스의 함수를 실행하기 위해서는 B클래스를 필요하다면, B 클래스에 변화가 생기면 이는 A클래스에도 영향을 미치게 된다. 이것을 종속성이라 부릅니다. 에러의 상황은 다음과 같습니다. AuthService는 constructor에서는 UserService를 주입받습니다. UserService는 constructor에서는 AuthService를 주입받습니다. 이렇게 되어 TestCode에서 Nest can'.. 2023. 11. 27.