[NestJS] Provider란?
·
Dev Framework/NestJS
Provider란 무엇인가?NestJS에서 Provider는 애플리케이션 내에서 특정 기능을 캡슐화하여 제공하는 클래스를 의미합니다.일반적으로 Service, Repository, Factory, Helper 등이 포함됩니다.이들은 @Injectable() 데코레이터가 달려 있으며, NestJS의 의존성 주입 컨테이너에 등록됩니다. 이를 통해 Provider는 애플리케이션의 다른 곳에서 쉽게 참조되고 재사용될 수 있습니다. @Injectable() 데코레이터@Injectable() 데코레이터는 클래스에 달아 해당 클래스를 Provider로 등록합니다.이 데코레이터를 붙임으로써 NestJS는 해당 클래스를 DI컨테이너에 추가하고, 필요한 곳에서 주입할 수 있게 합니다.import { Injectable }..
[WEB] OAuth
·
WEB
🌐 웹 발전과 OAuth의 필요성인터넷의 성장과 웹 중심 사회1990년대 WWW 등장: 정보 공유가 가능해지면서 IT 산업이 급성장했고, PC통신에서 초고속 인터넷으로 발전했습니다.2000년대 소셜 네트워크 등장: 페이스북 같은 SNS가 등장하며 인터넷은 정보를 얻는 곳에서 일상 공유와 소통의 장으로 변했습니다.2010년대 모바일 혁명: 스마트폰 보급으로 언제 어디서나 인터넷에 접속 가능해졌으며, 다양한 온라인 서비스가 등장했습니다.여러 서비스 간 연동에 대한 필요성 증가한 사람이 다양한 온라인 서비스를 사용하는 것이 일상화되면서, 서비스 간 연동을 원하는 요구가 늘어났습니다.예를 들어, 트위터의 글을 페이스북에 공유하거나, 에버노트에 구글 캘린더를 연결하는 것과 같은 작업이 필요해졌습니다.🔒 OAu..
[TypeScript] TypeScript에서 간단한 데코레이터(어노테이션) 구현하기
·
Dev Lang/TypeScript
TypeScript에서 가벼운 어노테이션(데코레이터)을 만드는 기본적인 세팅을 위해 VSCode를 사용하여 프로젝트를 설정하는 방법을 단계별로 알아보겠습니다.1. 프로젝트 디렉토리 설정먼저 새로운 TypeScript 프로젝트를 위한 디렉토리를 만듭니다. 터미널에서 다음 명령을 실행합니다.mkdir ts-annotation-projectcd ts-annotation-project2. package.json 생성프로젝트 디렉토리 안에서 npm init 명령으로 기본 설정 파일을 생성합니다.npm init -y이 명령은 package.json 파일을 자동으로 생성해 줍니다.3. TypeScript 설치TypeScript와 Node.js에서 실행할 수 있게 관련 패키지들을 설치합니다.npm install typ..
[OOP] TDA(Tell, Don't ASK)
·
OOP
TDA에 대해서Tell, Don't Ask. 객체에게 데이터를 요구(Ask) 하지 말고, 객체에게 일을 시켜라(Tell)1. 객체의 책임을 명확히 해야 한다TDA 원칙의 핵심은 객체가 스스로 자신의 책임을 다하도록 만드는 것입니다. 즉, 객체는 자신의 상태를 외부에서 조작하거나 판단하게 만들기보다는, 자신의 상태를 기반으로 행동할 책임을 가져야 합니다. 이렇게 하면 객체 내부의 상태 변경에 따라 외부 코드가 불필요하게 변경되는 상황을 피할 수 있습니다.2. 캡슐화의 중요성캡슐화는 객체의 데이터와 메서드를 보호하고 숨기는 것을 의미합니다. 객체 외부에서 객체의 속성(데이터)을 직접 접근하는 것이 아니라, 객체 스스로가 데이터를 처리하는 메서드를 제공함으로써 캡슐화가 이루어집니다. 이렇게 함으로써, 내부 구..
[TypeScript] 타입스크립트: 컴파일타임에서의 오류 감지
·
Dev Lang/TypeScript
런타임과 컴파일타임에 대해서 알고 있니?런타임(Run-time)과 컴파일 타임(Compile-time)의 개념을 이해하는 것이 TypeScript와 JavaScript의 차이를 이해하는 데 중요한 요소입니다. 이 두 개념이 어떻게 작동하는지 명확하게 이해하면, 왜 TypeScript가 더 엄격한 타입 시스템을 제공하는지, JavaScript가 왜 동적 언어로 런타임 시에 오류를 감지하는지 알 수 있습니다.1. 컴파일 타임(Compile-time)컴파일 타임은 코드가 실행되기 전에, 즉 프로그램이 빌드되는 과정에서 일어나는 단계입니다.컴파일러는 코드를 읽고, 그 코드가 올바른지 확인한 후 기계어로 번역하거나 다른 형태의 코드로 변환하는 역할을 합니다.이 단계에서 문법 오류나 타입 오류가 발생하면, 코드가 ..
[TypeScript] 타입스크립트: 정적 타입 시스템 제공(문자열 타입 & 문자열 리터럴 타입)
·
Dev Lang/TypeScript
두 타입은 두 언어에서 어떻게 사용되고 있을까?문자열 리터럴 타입과 같은 개념은 TypeScript에서 중요한 핵심 개념이지만, JavaScript에서는 제한적으로 적용되는 개념입니다. 그 이유는 TypeScript는 정적 타입 시스템을 제공하는 반면, JavaScript는 동적 타입 언어로 설계되었기 때문입니다.TypeScript에서의 핵심 내용문자열 리터럴 타입과 같은 기능은 TypeScript에서 매우 중요한 역할을 합니다. TypeScript는 JavaScript의 상위 집합으로, 개발자가 코드 작성 시 더 안전한 타입 검사를 통해 버그를 예방할 수 있도록 도와줍니다.TypeScript는 타입을 명시적으로 지정하거나 추론을 통해 정적 분석을 수행하여 런타임 전에 타입 오류를 찾아낼 수 있습니다.문..
[Node.js] 이벤트 루프의 이해: 비동기 처리의 핵심
·
Dev Framework/Node.js
학습하게 된 계기Node.js는 서버 사이드 JavaScript 환경으로, 비동기적이고 이벤트 기반의 아키텍처를 가지고 있습니다. 이러한 특성 덕분에 Node.js는 높은 동시성을 처리할 수 있으며, I/O 작업이 많은 애플리케이션에서 뛰어난 성능을 발휘합니다. 그러나 이 모든 것의 중심에는 '이벤트 루프'라는 핵심 메커니즘이 있습니다. 이 글에서는 Node.js의 이벤트 루프에 대해 자세히 알아보고, 이를 통해 Node.js가 어떻게 비동기 처리를 수행하는지 이해해 보도록 하겠습니다.이벤트 루프란?이벤트 루프는 Node.js가 non-blocking I/O 작업을 수행하면서도 단일 스레드 기반의 자바스크립트가 동시성을 가질 수 있게 해주는 핵심 메커니즘입니다. 이는 마치 효율적인 웨이터가 여러 테이블의..
[NestJS] Node진영에서의 NestJS의 위상
·
Dev Framework/Node.js
1. NestJS와 다른 Node.js 프레임워크 비교NestJS를 다른 주요 Node.js 프레임워크와 비교해 보겠습니다.1.1. NestJS vs Koa- 구조: Koa는 Express와 마찬가지로 미니멀한 프레임워크인 반면, NestJS는 더 구조화되어 있습니다.- 미들웨어: Koa는 간결한 미들웨어 스택을 제공하지만, NestJS는 더 복잡하고 강력한 미들웨어, 인터셉터, 파이프 시스템을 제공합니다.- 타입 안전성: NestJS는 TypeScript를 기본으로 사용하여 더 강력한 타입 안전성을 제공합니다.1.2. NestJS vs Sails.js- ORM: Sails.js는 Waterline ORM을 기본으로 제공하지만, NestJS는 TypeORM, Sequelize 등 다양한 ORM과 통합할 ..
개발자 성현
개발새발 블로그