분류 전체보기
-
Nexus 시작시 NullPointException 이 발생하면서 오류가 나는 현상설치&설정 관련 2024. 6. 21. 17:20
현재 외부 Nexus Repository에서 내부 Nexus Repository에 복제 처리를 하고 있습니다. Nexus에서 갑자기 오류가 발생했습니다. 그냥 재부팅을 했을 뿐인데 오류가 발생하였다고 합니다. 해당 내역이 이미 nexus의 팁에 올라와 있어서 따라해보니, 복구가 문제 없이 되었습니다.문제Nexus3을 빠르게 중지했다가 다시 시작하면 Nexus3 리포지토리가 전혀 시작되지 않을 수 있으며 로깅에 다음과 같은 예외가 발생할 수 있습니다2023-08-11 09:50:14,365+0900 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.pax.logging.NexusLogActivator - start2023-08-11 09:50:14,790+0900 ..
-
nestjs에서 guard에 Global service Inject 처리NodeJS 2024. 6. 20. 17:18
nestjs에서 guard에 Global service Inject 처리guard에서 특정 Module의 서비스를 사용하고 있는 상화에서 해당 guard를 다른 Module에서 사용하려면 사용하려는 Module에서 해당 Service를 import 해야 합니다. 이를 Global 처리를 이용한 전략 스토어를 사용하는 예제 입니다.Global Map 생성 및 전략 등록// Global로 사용될 Map 생성// https://github.com/lahuman/daily-quest/blob/main/api/src/auth/strategy-storage.tsexport const StrategyStorage = new Map();// https://github.com/lahuman/daily-quest/blob..
-
[Nestjs TIP] whitelist 사용시 주의점!NodeJS 2024. 6. 18. 17:18
whitelist 옵션 사용시 주의점!프로퍼티 제거하기또한, 유효성 검사 파이프는 메서드 핸들러가 수신해서는 안 되는 프로퍼티를 필터링할 수 있습니다. 이 경우 허용 가능한 속성을 화이트리스트에 추가할 수 있으며, 화이트리스트에 포함되지 않은 속성은 결과 객체에서 자동으로 제거됩니다. 예를 들어, 처리기에서 이메일 및 비밀번호 속성을 기대하지만 요청에 나이 속성도 포함된 경우 이 속성은 결과 DTO에서 자동으로 제거될 수 있습니다. 이러한 동작을 사용하려면 화이트리스트를 true로 설정하세요.app.useGlobalPipes( new ValidationPipe({ whitelist: true, }),);적용 실패 원인 분석프로퍼티 제거하기를 보고 whitelist를 추가 했더니, 빈 객체가 넘어..
-
[Nestjs TIP] Request Header에 validate 처리NodeJS 2024. 6. 17. 17:16
Nestjs에서 Request Header validate 처리 방법Validate Headers 를 참고해서 처리 했습니다.validateCustomDecorators 옵션을 true롤 꼭 설정 해야 합니다.// main.tsasync function bootstrap() { // ... app.useGlobalPipes( new ValidationPipe({ validateCustomDecorators: true // { const headers = ctx.switchToHttp().getRequest().headers; if ( typeof property === 'string' || typeof property === 'number' || ..
-
REDIS 접속 관리를 위한 Connection pool이 필요할까요?설치&설정 관련 2024. 6. 15. 17:15
Redis는 기본적으로 싱글 스레드로 동작하는 인메모리 데이터베이스입니다. 이는 Redis가 단일 스레드로 모든 요청을 처리하고, 이벤트 루프를 사용하여 비동기 입출력(IO) 작업을 처리한다는 것을 의미합니다.싱글 스레드 모델의 장점은 구현이 간단하고, 동시성 문제를 처리하기 위해 별도의 동기화 메커니즘을 사용할 필요가 없다는 것입니다. 그러나 이 모델은 요청을 처리하는 동안 다른 요청이 블로킹될 수 있다는 단점도 있습니다.Connection pool은 여러 클라이언트가 동시에 Redis 서버에 연결할 수 있는 기능을 제공하는 것이며, 주로 애플리케이션의 성능과 확장성을 향상시키기 위해 사용됩니다. 일반적으로 싱글 스레드로 동작하는 Redis는 여러 클라이언트가 동시에 요청을 보내는 경우에도 충분한 처리..
-
Swagger JSON 파일을 html로 변환 하기설치&설정 관련 2024. 6. 14. 17:14
Nestjs와 swagger를 함께 사용하고 있는 상황에서 swagger ui를 산출물로 제출해달라는 요청을 받았습니다. @redocly/cli 모듈을 이용하면 쉽게 html로 산출물을 생성 할 수 있습니다.@redocly/cli 설치다음 명령어로 쉽게 설치 할 수 있습니다.$ npm install @redocly/cli -gNestjs 설정 확인Nestjs의 swagger 설정이 아래와 같이 되어 있다고 가정합니다.// main.ts....const config = new DocumentBuilder() .setTitle('Petaverse API SERVER') .setDescription('The Petaverse API description') .setVersion('1.0') ..
-
nestjs에서 사용자 정의 validate 구현하기카테고리 없음 2024. 6. 13. 17:13
class-validator에서는 많은 validation 조건을 제공하여 줍니다. 하지만 사용자 정의 옵션이 필요할 때가 있는데, 이때 설정이 생각보다 복잡하네요.ValidatorConstraintInterface 구현 하기class-validator는 ValidatorConstraintInterface interface를 구현해서 사용자 정의 validation 처리를 합니다.아래는 구현된 예제 입니다.import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator';@ValidatorConstraint({ name: 'customText', async: false })export..
-
Module not found: Can't resolve 'encoding'설치&설정 관련 2024. 6. 12. 16:16
nextjs 를 사용한 개인 플젝 중 Can’t resolve ‘encoding’ 오류를 만나다오류 내용node-fetch에서 encoding 모듈을 찾을 수 없다는 오류가 로그에서 확인되었습니다....Module not found: Can't resolve 'encoding' in '/Users/lahuman/DEV/routine/web/node_modules/.pnpm/node-fetch@2.6.7/node_modules/node-fetch/lib'...해결 방법네, 찾을 수 없는 모듈은 설치해주면 되죠!$ pnpm add -D encoding마치며사실 위에 오류로그를 무시해도 동작에는 문제가 없습니다. 찝찝함을 없애기 위해서 방안을 찾아보니 너무나도 단순하게 모듈을 설치하라는 가이드가 나오네요.참고..