본인이 작성했던 코드 중 공유하고 싶은 코드를 이유와 함께 마크다운 code block 을 사용해 올려주세요
언어 상관없음
어떤 로직이든 상관없음
단, 길이가 길지 않은 함수 단위가 좋습니다
해당 code block 에 올려주세요
export class BaseService<T> {
constructor() {}
resObj(data: T): IResObj<T> {
return new IResObj(200, false, 'success', data);
}
resBoolean(data: boolean): IResObj<boolean> {
return new IResObj(200, false, 'success', data);
}
resNumber(data: number): IResObj<number> {
return new IResObj(200, false, 'success', data);
}
resList(data: any): IResObjList<T> {
return new IResObjList(200, false, 'success', data);
}
resError(message: string): IError {
return new IError(HttpStatus.BAD_REQUEST, message);
}
objValidate(obj: T): void {
if (!obj) throw new Error('findedObj not found');
}
}
-> 모든 서비스 레이어에서 사용될 수 있는 기본적인 응답 형태의 함수들을 모아놓은 클래스입니다.
Layered Architecture(계층 아키텍처)에 대해서 설명해 주세요
->
리퀘스트에 대한 역할을 분리하여 각각의 레이어는 맡은 바 일에 대한 책임을 다 하는 것입니다.
일반적으로 presentation, business, persistence, data 레이어로 구성되어 있습니다.
presentation: http 통신에 관한 요청에 대한 응답을 담당합니다.
business: 비즈니스 로직이 주로 위치합니다.
persistence: 데이터베이스 접근을 담당합니다.
data: 데이터베이스
Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요
->
개념: 추상화된 객체를 외부에서 주입합니다.
필요한 이유 : 여러 클래스에 의존하는 A클래스에서 의존하는 클래스를 생성한 후 문제를 해결하는 경우 비슷한 코드의 중복과 코드가 길어지는 경우가 많아 불핋요한 비용이 발생합니다.
A클래스에서 필요한 객체를 외부에서 주입하도록하여 A클래스의 코드에서 발생하는 비용을 줄일 수 있습니다.
본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요
-> 이번 강의를 통해서 배워보겠습니다.
(코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)
type SomeFunctionReturnString = () => string
-> 모든 서비스 레이어에서 사용될 수 있는 기본적인 응답 형태의 함수들을 모아놓은 클래스입니다.
-> 리퀘스트에 대한 역할을 분리하여 각각의 레이어는 맡은 바 일에 대한 책임을 다 하는 것입니다. 일반적으로 presentation, business, persistence, data 레이어로 구성되어 있습니다. presentation: http 통신에 관한 요청에 대한 응답을 담당합니다. business: 비즈니스 로직이 주로 위치합니다. persistence: 데이터베이스 접근을 담당합니다. data: 데이터베이스
->
개념: 추상화된 객체를 외부에서 주입합니다. 필요한 이유 : 여러 클래스에 의존하는 A클래스에서 의존하는 클래스를 생성한 후 문제를 해결하는 경우 비슷한 코드의 중복과 코드가 길어지는 경우가 많아 불핋요한 비용이 발생합니다. A클래스에서 필요한 객체를 외부에서 주입하도록하여 A클래스의 코드에서 발생하는 비용을 줄일 수 있습니다.
-> 이번 강의를 통해서 배워보겠습니다.