주어진 코드 조각은 TypeScript 클래스의 생성자 메소드로 보입니다. 생성자 메소드는 클래스의 인스턴스를 만들 때 호출되며 일반적으로 클래스의 속성 초기화 및 다른 설정 작업을 수행하는 데 사용됩니다. 생성자 메소드의 구문은 다음과 같습니다:
typescript]
class ClassName {
constructor(parameters) {
// 생성자 로직
}
}
여기서 "ClassName"은 클래스의 이름이고, "parameters"는 생성자 메소드에 전달되는 매개변수입니다. 생성자 메소드 내에서는 클래스의 속성을 초기화하거나 다른 초기화 작업을 수행할 수 있습니다.
주어진 코드 조각에서 "private server"는 생성자의 매개변수로, 클래스 내에서 해당 이름의 프라이빗 속성으로 사용됩니다. "private" 키워드는 TypeScript의 접근 제어 지시자 중 하나로, 해당 속성은 클래스 외부에서 직접 접근할 수 없으며 클래스 내부에서만 사용할 수 있습니다.
예를 들어:
typescript]
class MyClass {
private server;
constructor(server) {
this.server = server;
}
public doSomething() {
console.log(`Server: ${this.server}`);
}
}
const myInstance = new MyClass("example.com");
myInstance.doSomething(); // "Server: example.com"
console.log(myInstance.server); // 에러! 'server' 속성은 private이므로 클래스 외부에서 접근 불가능
이 코드에서 "server" 속성은 클래스 내부에서만 접근 가능하며 클래스 외부에서는 접근할 수 없습니다. 생성자를 통해 값을 설정하고, "doSomething" 메소드를 사용하여 클래스 내에서 속성 값을 출력합니다.
typescript의 start log : 로깅(Logger)
TypeScript에서 로깅(Logger)은 프로그램 실행 중에 정보, 경고 및 오류 메시지를 기록하고 디버깅 및 모니터링을 지원하는 중요한 도구입니다. 로깅을 TypeScript 프로젝트에서 구현하는 방법은 다양하며, 주로 다음 방법 중 하나를 선택합니다:
1. console.log 사용:
가장 간단한 로깅 방법은 console.log를 사용하는 것입니다. 이것은 브라우저와 Node.js 모두에서 사용 가능합니다.
typescript]
console.log('This is a log message');
console.log는 콘솔에 메시지를 출력합니다. 그러나 이 방법은 디버깅용으로만 사용하며, 프로덕션 환경에서는 사용하지 않는 것이 좋습니다.
2. 외부 로깅 라이브러리 사용:
프로덕션 환경에서 로깅을 관리하려면 외부 로깅 라이브러리를 사용하는 것이 좋습니다. 일반적으로 사용되는 로깅 라이브러리 중 하나는 winston입니다.
winston 설치:
bash/
npm install winston
typescript/
import winston from 'winston';
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.colorize(),
winston.format.simple()
),
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'error.log', level: 'error' }),
],
});
logger.info('This is an info message');
logger.warn('This is a warning message');
logger.error('This is an error message');
winston을 사용하면 로깅 레벨, 출력 형식, 저장 위치 및 다양한 설정을 구성할 수 있습니다.
3. Nest.js Logger 사용:
Nest.js 프레임워크를 사용하는 경우 내장된 Logger 모듈을 사용할 수 있습니다. 이 로거는 @nestjs/common 패키지에 포함되어 있으며, 설정이 간편하고 프레임워크에서 일관된 로깅을 지원합니다.
typescript]
import { Logger, Injectable } from '@nestjs/common';
@Injectable()
export class MyService {
private readonly logger = new Logger(MyService.name);
performAction() {
this.logger.log('This is a log message');
this.logger.warn('This is a warning message');
this.logger.error('This is an error message');
}
}
Logger 모듈은 클래스 이름을 기반으로 로그 메시지에 대한 메타데이터를 제공합니다.
각각의 로깅 방법은 프로젝트의 요구 사항과 환경에 따라 선택할 수 있으며, 적절한 로깅 수준, 포맷, 대상 및 설정을 구성할 수 있어야 합니다.
'Wecode -기업협업 인턴 (부트캠프) > 기업협업 독학, 공부' 카테고리의 다른 글
typescript에서 entities 가 뭐니/interface ** (0) | 2023.11.01 |
---|---|
@nestjs/core, nest.js에서는 database 연결을 어디에서 하니 *** (0) | 2023.11.01 |
this. 문법 알려줘. 이거는 javascript야 ** (0) | 2023.11.01 |
ORM,entity, repository ** (0) | 2023.11.01 |
api 쓰면서 알게 되는 nest.js, typescript, typeorm 연결 (0) | 2023.11.01 |