특정 역할로 구분되는, 예를 들어 화면 UI/비즈니스 로직/DB 작업등의 각각의 계층으로 설계하여 각 계층에 해당하는 역할만 수행하고 이 계층은 수직적으로 연결되어 있다. 유지보수와 확장 및 테스트가 쉽다는 장점이 있지만 단일 개체 서비스에서는 불필요한 연결과 의존하는 개체가 많아져 변경에 영향을 많이 받는 코드가 될 수 있다.
3. Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요
소스 코드의 수정, 변경 등에 영향을 많이 받는 강하게 결합된 클래스들을 분리하고, 애플리케이션 실행 시점에 객체 간의 관계를 결정해 줌으로써 결합도를 낮추고 유연성을 확보할 수 있다.
4. 본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요
<?php
//$min 보다 큰 항목만 걸러내는 익명 필터 함수
function criteria_greater_than($min)
{
return function($item) use ($min) {
return $item > $min;
};
}
$input = [1, 2, 3, 4, 5, 6];
// 동적으로 만들어낸 필터 함수를 array_filter 에 전달해서 입력을 필터링한다.
$output = array_filter($input, criteria_greater_than(3));
print_r($output); // 3보다 큰 숫자만 출력된다.
5. (코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)
1. 본인이 작성했던 코드 중 공유하고 싶은 코드를 이유와 함께 마크다운 코드블락을 사용해 올려주세요.
2. Layered Architecture(계층 아키텍처)에 대해서 설명해 주세요
특정 역할로 구분되는, 예를 들어 화면 UI/비즈니스 로직/DB 작업등의 각각의 계층으로 설계하여 각 계층에 해당하는 역할만 수행하고 이 계층은 수직적으로 연결되어 있다. 유지보수와 확장 및 테스트가 쉽다는 장점이 있지만 단일 개체 서비스에서는 불필요한 연결과 의존하는 개체가 많아져 변경에 영향을 많이 받는 코드가 될 수 있다.
3. Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요
소스 코드의 수정, 변경 등에 영향을 많이 받는 강하게 결합된 클래스들을 분리하고, 애플리케이션 실행 시점에 객체 간의 관계를 결정해 줌으로써 결합도를 낮추고 유연성을 확보할 수 있다.
4. 본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요
5. (코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)
결과값
$ ts-node delay.ts after 2 seconds successfully done Error: failed
6. 강의를 통해서 기대하는 바, 또는 얻고 싶은 팁을 적어주세요
NestJS 개념과 구조를 이해하고 새로 만들 애플리케이션에 적절한 방법을 찾아 잘~ 적용하고 싶습니다.