Jun4928 / wanted-pre-onboarding-challenge-BE-task-JAN.2023

JAN.2023 wanted 프리온보딩 챌린지 BE 사전과제
29 stars 36 forks source link

사전 과제 제출 #34

Open eungsooKIM opened 1 year ago

eungsooKIM commented 1 year ago

1. 본인이 작성했던 코드 중 공유하고 싶은 코드를 이유와 함께 마크다운 code block 을 사용해 올려주세요

function HandleError() {
    return function (target : any, propertyKey : string, descriptor : PropertyDescriptor){        
                console.log(target);
        console.log(propertyKey);
        console.log(descriptor);
        const method = descriptor.value;
        descriptor.value =function(){
            try {
                method();
            }catch(e){
                console.log(e);
            }
        }
    }
}
class Greeter {
    @HandleError()
    hello(){
        throw new Error("테스트 에러");
    }
}
const t = new Greeter();
t.hello();

/* 기초적인 수준의 데커레이터지만 Typescript언어와 Nest.js 프레임워크를 처음 공부하고 
데커레이터의 개념에 대해 이해하는데 오랜 시간이 걸렸는데,해당 메서드 데커레이터 코드를 직접 작성해보며 
데커레이터의 의미와 활용법을 이해할 수 있게되어 공유하고 싶습니다.
*/ 

2. Layered Architecture(계층 아키텍처)에 대해서 설명해 주세요

Untitled

3. Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요

4. 본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요

let list = ["kim eungsoo","jo joonhyoung","jo kyungchan","jeoung dayoung"]
let firstCase = (sting) =>{
    return string.chatAt(0).toUpperCase() + string.slice(1)
}
let lastCase = (string) =>{
    return string.split(' ').map(firstCase).join(' ')   
}
list
    .maps(string => firstCase(string))
    .maps(string => lastCast(string))
    .sort()

스크린샷 2023-01-05 20-13-57

5. (코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)

type SomeFunctionReturnString = () => string
function delay(f: SomeFunctionReturnString, seconds: number): Promise<string> {
  return new Promise<string>((success, fail) => {
    setTimeout(() => {    
      try {
        success(f())
    } catch(e){
      fail(e);
    }
  } , seconds * 1000);
});

};
const success = () => {
  return "successfully done";
};
const fail = () => {
  throw new Error("failed");
};

스크린샷 2023-01-05 20-20-04

6. 강의를 통해서 기대하는 바, 또는 얻고 싶은 팁을 적어주세요