본문 바로가기

Backend/파본것들

(4)
[nestjs] Module이란, 순환 참조 오류 Error Nest can't resolve dependencies of the userscontroller (usersservice, ?). please make sure that the argument authservice at index [1] is available in the usersmodule context. 나의 경우 계속 이런 오류가 생겼다... 의존성 관계를 잘 파악하지 못해서 생긴 오류라는 생각이 들었고 Module을 어떻게 작성해야하는지를 찾아봤다. Module이란 각각의 기능을 담당하는 Controller와 Providers는 Module Decorator에 등록되고 이 각 기능 Module들을 App Module에 import하여 최종적으로 NestFactory로 create되는..
[nestjs] Authentication, bcrypt Login Authentication LifeCycle controller에 있는 @UseGuards가 사용자가 서버에 접속할 때, intercept해간다. LocalAuthGuard에 명시된 local이 local.strategy.ts를 사용한다. local.strategy에서는 validate method를 실행하고 이 과정에서 authService에 있는 validateUser method를 통해 비밀번호를 비교한다. 만약 비밀번호가 일치한다면, login controller가 실행되고 authService에 있는 login method가 실행된다. 참고한 블로그 https://docs.nestjs.com/security/authentication Documentation | NestJS - A p..
static 이란, 쓰는 이유 JAVA에서의 메모리 공간 Static Area Java 파일은 field, constructor, method로 구분되는데, field에서 선언된 전역변수, static 변수[정적변수]를 static 영역에 저장한다. 그리고 Garbage Collector의 관리 영역 밖에 존재하므로 프로그램의 종료시까지 메모리가 할당된 채로 존재하므로 자주 사용하게 되면 시스템의 퍼포먼스에 악영향을 주게 된다. Stack Area method 내에서 정의하는 기본 자료형에 해당하는 지역변수의 데이터 값이 저장되는 공간으로 해당 메소드가 호출될 때, 메모리에 할당되고 종료되면 메모리가 해제된다. 이 영역은 LIFO의 구조를 갖고 새로운 데이터가 할당되면 이전 데이터는 지워진다. Heap Area Reference Ty..
const와 readonly의 차이 const const로 선언된 객체의 속성은 바꿀 수 있다. 즉, 재할당 가능과 객체의 속성 변경 가능은 서로 독립적인 내용이다. -> 컴파일 시 정해진 불변 값이며 프로그램이 종료될 때까지 변경할 수 없다. -> 상수는 기본적으로 static(정적)이다. 따라서 접근할 때 객체 필요없다. readonly TS에서 readonly 키워드를 통해 특정 속성의 변경을 막을 수 있다. type ReadOnlyType = { readonly prop: InnerType; } type InnerType = { innerProp: string; } const readonlyType: ReadonlyType = { prop: { innerProp: 'a' } } // readonlyType.prop.innerProp..