렌더링이 클라이언트에서 일어난다.처음에 브라우저는 빈 HTML 파일을 받아 아무것도 보여주지 않다가, 클라이언트에서 렌더링이 진행되면 한 번에 화면을 보여준다.① 서버가 브라우저에게 응답을 보낸다. (CDN이 접근할 수 있는 링크를 클라이언트로 보냄)② 클라이언트는 H
private npm registry 필요한 이유 npm이란 Node Pacakage Manager로 Node.js의 패키지를 관리할 수 있는 도구이다. npm을 사용해서 npm 저장소에 있는 패키지를 쉽게 install하고 관리할 수 있게 된다. npm 저장소에
HTTP 프로토콜의 비연결성(Connectionless)과 무상태성(Stateless)라는 특징 때문에 서버는 클라이언트의 응답이 끝나면 연결 상태를 해제한다. 그러나 이로 인해 동일한 페이지에 접속해도 이전에 접속했던 사용자를 식별할 수 없게 되었다. 이 문제를 해결
IAM 사용자에 AmazonSESFullAccess 권한을 추가한다.AWS에서 인증한 메일(또는 도메인)만 이메일 주소로 사용할 수 있다.AWS SES 콘솔의 ‘확인된 자격 증명’을 통해 등록할 수 있다. 자격 증명 생성을 통해 이메일 주소를 입력하고, 이메일 인증을
보통 개발 초기에는 AWS 계정을 통합하여 사용하다가 운영 단계에서는 개발, 운영, 테스트 등 여러개의 계정으로 나누어 사용한다. 이런 경우 통합 계정에서 사용하던 버킷을 운영 계정에서 접근해야하거나, 개발 계정에서 운영 계정으로 접근 등 다양한 상황이 생기기 마련이다
공식문서 - 페이지네이션다양한 페이지네이션 모델은 다양한 클라이언트 기능 지원을 가능하게합니다.GraphQL의 일반적인 사용 사례는 객체들 간의 관계를 탐색하는 것입니다. GraphQL에서 이러한 관계를 노출할 수 있는 다양한 방법이 있으며, 클라이언트 개발자에게 다양
공식문서 - 인증인증 로직을 비즈니스 로직 레이어에 위임하세요Presentation > Business Logic > Persistence > Database Layer인증은 주어진 사용자/세션/컨텍스트가 작업을 수행하거나 데이터를 볼 수 있는 권한이 있는지 여부를 나
공식문서 - 그래프로 생각하기GraphQL을 사용하면 비즈니스 도메인을 그래프로 모델링 할 수 있습니다.그래프는 근본적인 프로세스에 대한 인간의 뇌 구조와, 언어적인 설명과 비슷하기 때문에 많은 실제 세계의 현상을 모델링하는 강력한 도구입니다. GraphQL을 사용하면
공식문서 - GraphQL 모범 사례1) API의 단일 진입점인 API 게이트웨이는 해커의 타겟 대상이 될 수 있다. HTTP 메서드를 사용하여 엑세스할 수 있다는 점이 보안성이 관해서는 단점이 된다.이 섹션에 글은 전적으로 받아 들여서는 안되며, 특정한 경우에는 이
초기 자바스크립트는 모듈을 불러오거나 내보내는 방법이 없어 하나의 파일에 모든 기능를 작성해야 했다. 이런 불편함을 해결하기 위해 CJS, AMD, UMD, ESM이 등장하였고 모듈로서 사용할 수 있게 되었다.자바스크립트를 브라우저에서 뿐만 아니라, 서버사이드 애플리케
필요한 상황에서 동적으로 파일을 import 할 수 있다. 필요한 상황에서만 임포트 시킬 수 있다.Promise.all() 은 모든 작업이 성공해야 실행되는 반면, Promise.allSettled() 는 도중에 실패 되더라도 모든 실행을 할 수 있다. a ?? b 문
자바스크립트는 객체지향 언어로 ES6부터 Class 기능이 추가되었다.타입스크립트는 타입체크와 정적 프로퍼티 등의 추가 기능으로 자바스크립트 클래스를 향상시킨다. 클래스는 자바스크립트로 transpile 될때 transpiled 파일에 보관된다.클래스는 객체로 프로퍼티
다음 예시는 fruitA 객체에 fruitB 객체를 복사한 것이다. for...in 루프를 사용하여 새로운 배열에 직접 복사해주었다.Object.assign(obj1, obj2)obj2의 모든 속성들을 obj1에 복사하며, 같은 속성이 있을 경우 덮어쓴다. 함수의 파라
객체란 이름(name)과 값(value)로 구성된 프로퍼티(property)의 정렬되지 않은 집합이다. 프로퍼티 값으로 함수가 올 수도 있는데, 이러한 프로퍼티를 메소드(method)라고 한다.객체 리터럴 사용Object 생성자 사용ESMA6 전까지 자바스크립트에는 클
캐싱은 임시 데이터 저장소 역할을 하는 기술이다.캐싱을 활성화하려면 CacheModule 을 가져와서 register() 메서드를 호출한다.캐시 관리자 인스턴스와 상호 작용하려면 CACHE_MANAGER 토큰을 사용하여 클래스에 삽입한다.Cache 인스턴스의 get 메
Nest는 MongoDB 데이터베이스와의 통합을 위해 두가지 방법을 지원한다.MongoDB용 커넥터가 있는 내장 TypeORM 모듈을 사용하거나 MongoDB 개체 모델링 도구인 Mongoose를 사용할 수 있다. TypeORM은 아직까지 몽고디비와 정확히 호환되지 않
useFactory 구문을 사용하면 동적으로 프로바이더를 만들 수 있다. 실제 프로바이더는 팩도리 함수에서 반환된 값으로 제공된다.팩토리 함수는 인수를 받을 수 있으며, inject 속성은 팩토리 함수에 인수로 전달할 프로바이더 배열을 허용한다. Nest는 inject
인터셉터는 Injectable() 데코레이터로 주석이 달린 클래스이며, NestInterceptor 인터페이스를 구현해야 한다. 인터셉터에는 AOP(Aspect Oriented Programming) 기술에서 영감을 받은 유용한 기능 세트가 있다. 각 인터셉터는 두개의
파이프는 Injectable() 데코레이터로 주석이 달린 클래스이며, PipeTransform 인터페이스를 구현해야 한다.파이프는 입력 데이터를 1. 원하는 형식으로 변환(transformation) 2. 유효성 검사(validation) 으로 사용된다. 두 경우 모두
네스트는 애플리케이션 전체에서 처리되지 않은 모든 처리를 하는 예외 레이어가 내장되어 있다.@nestjs/common 패키지는 HttpException 클래스를 제공한다.클라이언트가 해당 엔드포인트를 호출하면 응답은 다음과 같다.HttpException 생성자는 응답을