[NestJS] 미들웨어에서 `this` 사용 이슈 해결: JavaScript의 `this` 동작 방식 이해와 해결책
프로그래밍/Nestjs2024. 11. 21. 15:30[NestJS] 미들웨어에서 `this` 사용 이슈 해결: JavaScript의 `this` 동작 방식 이해와 해결책

NestJS에서 미들웨어의 this 사용: JavaScript의 this 동작 방식 이해와 해결책 NestJS 프로젝트에서 커스텀 로깅 미들웨어를 작성하다 보면 JavaScript의 this 동작 방식에 의해 의도치 않은 오류를 마주칠 수 있습니다. 이 글에서는 이런 문제를 해결하는 방법을 다뤄보겠습니다. 문제 상황아래와 같이 Express Response 객체의 json 메서드를 오버라이드하여 요청과 응답을 로깅하려고 할 때, this.logger 접근이 실패하는 문제가 발생할 수 있습니다.import { Injectable, Logger, NestMiddleware } from '@nestjs/common';import { NextFunction, Request, Response } from 'exp..

[SpringBoot] 로그 레벨 변경 - 내장 톰캣 로그 레벨 이슈
프로그래밍/Spring2024. 3. 18. 23:55[SpringBoot] 로그 레벨 변경 - 내장 톰캣 로그 레벨 이슈

스프링부트 로그 레벨 변경기 - 내장 톰캣 로그 레벨 이슈 오늘 강의를 듣다가 HTTP 요청 로그가 뜨지않아서 찾아본 경험을 정리합니다. 디버깅을 위해 로그 레벨을 설정했는데, 로그가 보이지 않는 상황이 발생. 이 문제를 해결하기 위해 여러 시도 끝에 찾아낸 정보와 해결 방법을 정리해보려고 해요. 로그 레벨이란? 먼저, 로그 레벨에 대해 간단히 설명하자면, 로그 레벨은 애플리케이션에서 발생하는 다양한 정보의 중요도에 따라 분류하는 것 입니다. 스프링부트는 기본적으로 다음과 같은 로그 레벨을 제공해요. TRACE: 가장 상세한 정보를 제공하며, 애플리케이션의 실행 흐름과 디버깅 정보를 상세히 기록. DEBUG: 개발 단계에서 상세한 정보를 기록하며 애플리케이션의 내부 동작을 이해하는 데 도움. INFO: ..

[GitHub Actions] Spring Maven 프로젝트 테스트 자동화
프로그래밍/DevOps2024. 3. 15. 12:15[GitHub Actions] Spring Maven 프로젝트 테스트 자동화

Github Actions 에서 Maven프로젝트 테스트 로컬에서 Test코드를 돌려보면 다 정상적으로 돌아가거나 실패하는데, Github Actions에서 실행하면 테스트가 모두 실행되지 않고 그냥 통과가 되는 현상이 발생했다. Framework : Spring 프로젝트 : Maven Java : 17 Test : JUnit5 문제상황 Running hello.deployproject.beanfind.ApplicationContextBasicFindTest # 단위테스트 0개 step:6:48)Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec # 통합테스트 0개 step:6:50)Results : step:6:52)Tes..

Spring Framework의 @Component 어노테이션
프로그래밍/Spring2024. 2. 26. 22:14Spring Framework의 @Component 어노테이션

스프링 프레임워크의 스테레오타입 어노테이션 이해하기 스테레오타입 어노테이션은 SpringFramework에서 제공하는 기능으로, 클래스를 특정 목적에 따라 분류하는 역할을 한다. 이를 통해 Spring은 클래스를 더 쉽게 관리하고, 개발자는 더 쉽게 코드를 작성하고 이해할 수 있다. 스테레오타입 어노테이션에는 크게 @Component, @Service, @Repository, @Controller가 있다. 각각의 어노테이션은 해당 클래스가 어떤 역할을 하는지 명시적으로 알려주는 역할을 한다. 스테레오타입 어노테이션의 역할 스테레오타입 어노테이션은 스프링의 컴포넌트 스캔 기능에서 사용된다. 이 어노테이션을 사용하면 스프링 컨테이너가 해당 클래스를 빈으로 자동 등록한다. 이는 개발자가 XML이나 자바 설정 ..

[Java] 서블렛사용시 상대경로 인식 못함
프로그래밍/Java2024. 2. 22. 16:25[Java] 서블렛사용시 상대경로 인식 못함

문제상황 기존 경로로 접속했을때는 상대경로로 잘 작성되어있어서 css가 불러와지는데, Servlet으로 dispatcher할 시에 css가 적용이 안되는 문제가 있었다. 기존 스타일 CSS적용안됨 해결 기존 페이지에서 css를 로드하는 방식에서 문제가 있었다. 상대경로로 지정된 css 파일이 dispatch 하는 과정에서 경로를 알아보지 못하는것이었다. 따라서, 서블릿이 JSP 파일을 다른 위치에서 불러오면 CSS 파일의 경로가 더 이상 유효하지 않을 수 있다. 이 문제를 해결하기 위해, CSS 파일의 절대 경로를 사용하는 것이 좋다. 웹 애플리케이션의 루트 디렉토리를 기준으로 CSS 파일의 경로를 지정하면 됩니다. 이렇게 하면 JSP 파일의 위치와 관계없이 항상 동일한 CSS 파일을 참조할 수 있습니다..

image