TypeScript, 재귀함수2

이태성·2022년 6월 15일
0

TIL

목록 보기
5/8

Agenda

A. 컴파일러 옵션
B. exclude, include
C. 백준문제 17478번 - 재귀함수가 뭔가요?

A. 컴파일러 옵션

1. target

  • target에서 지정한 버전으로 TypeScript를 컴파일하게 된다.
  • 일반적으로 'ES5', 'ES6'를 쓴다.

2. outDir

  • TypeScript에서 컴파일된 파일을 어떤 디렉토리에 넣을 지 경로를 설정한다.
  • outDir : "./build"

3. rootDir

  • TypeScript파일이 생성될 수 있는 최상위 디렉토리를 정하게 된다.
  • rootDir : "./src" 라고 지정하게 되면, 모든 ts파일은 src 디렉토리 안에 생성해야만 한다.

4. sourceMap

  • SourceMap : True는 디버깅에 유용하다.
  • 디버깅은 브라우저에서 '개발자 도구 - source' 에서 주로 한다.이 때 확인 가능한 파일은 (실제 실행되고있는) 컴파일된 js파일이므로 직접 작성한 ts파일과 상이하다. 이는 개발자에게 혼동을 야기한다.
  • SourceMap은 컴파일 시 각 ts파일에 map파일을 생성하고, 이는 브라우저에서 디버그할 때 ts파일을 보며 디버깅이 가능하게 한다.

B. exclude, include

컴파일할 때, 특정 ts파일을 제외하거나 특정 ts파일만 한정지을 수 있다.
exclude와 include가 그 기능을 한다.

  • exclude : ["./src/login.ts"] --> login.ts만 제외하고 모든 ts파일 컴파일된다.
  • include : ["./src/shopping.ts", "./src/buy.ts"] --> shopping.ts와 buy.ts만 컴파일된다.

C. 백준문제 17478번 - 재귀함수가 뭔가요?

  • 백준 9단계 - 17478번 재귀함수가 뭔가요? 코드공개
// 문제번호:17478번; 재귀함수가 뭔가요? || console.log 끝에 undefined가 뜨는 오류 해결중
const fs = require("fs");
const { join } = require("path");
const stdin = (
  process.platform === "linux" ? fs.readFileSync("/dev/stdin").toString() : `2`
).split("\n");

const input = (() => {
  let line = 0;
  return () => stdin[line];
})(); // 여기까진 고정으로 사용

// 로직 시작
function what(i) {
  console.log("____".repeat(i) + `"재귀함수가 뭔가요?"`);

  if (i == num) {
    console.log(
      "____".repeat(i) + `"재귀함수는 자기 자신을 호출하는 함수라네"`
    );
    console.log("____".repeat(i) + "라고 답변하였지.");
  } else {
    console.log(
      "____".repeat(i) +
        `"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.`
    );
    console.log(
      "____".repeat(i) +
        `마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.`
    );
    console.log(
      "____".repeat(i) +
        `그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."`
    );
    what(i + 1);
    console.log("____".repeat(i) + "라고 답변하였지.");
  }
}

let num = +input();
console.log("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.");
console.log(what(0, num));
profile
재밌게 뚫고 나가자

0개의 댓글