패스트캠퍼스 데브캠프

김민태의 데브캠프 2기 - 실시간 강의 (11/19)

vitamin3000 2024. 11. 20. 19:45

강의 내용 요약

  • Programming Language
    • 정의 : 컴퓨터에게 코드 내용의 일을 시키는 것
    • 하이레벨에서 로우레벨인 기계어로 변환의 과정이 필요
  • Compiler
    • 프로그래머가 작성한 언어를 기계어로 변환한 실행 파일을 생성하여 실행함
    • 컴파일 시간이 필요하다는 점이 단점
  • Interpreter
    • 소스 코드를 한 줄씩 읽고, 즉시 실행(Python이 대표적)
    • 즉, 해석과 실행 타이밍이 동시에 이루어짐
    • 실행 준비 시간이 짧지만, 실행을 하는 시간이 다소 오래 걸림
  • stage
    1. source
      • typescript
      • 실행하기 이전의 단계
    2. buildtime
      • javascript
      • 실행을 하기 위해 준비하는 단계
    3. runtime
      • javascript
      • 실행하는 단계

즉 TS -> JS -> JS임을 알 수 있다.

 

  • typescript
    • type 지정
      • '타입' 개념의 범위는 ?
ex) let data:number = 10; / let data2:string = ‘Hello’; …
  • type custom
type BloodType = ‘A’ | ‘B’ | ‘AB’ | ‘O’ ≤== Union Type // custom
let bloodType:BloodType = ‘A’ ⇒ 명시된 타입에 해당되지 않을 시 에러를 반환

 

함수의 반환값도 (파라미터) 뒤에 :type 지정 가능

 function myFunc(a: number, b: number): number { return a + b; }

 

객체에 대한 타입 지정도 가능

interFace User { //type과 interface로 골라서 쓸 수 있지만, interface를 권장
	name: string;
	age: number;
	height: number;
}
let user: User {
	name: 'John',
	age: 30,
	height: 180,
    hobby: movie, // 정의한 type과 맞지 않을 시 오류 발생
}
=> type과 맞지 않을 시 에러가 남

 

type의 상속

 

interface Animal {
	name: string;
}

interface Bear extends Animal { //부모 type을 '상속'받을 수 있는데 이때 사용하는 키워드는 extends
	height : number;
}
=> Bear은 Animal 형태를 그대로 상속받음

 

함수의 형태에 대해 정의하는 것도 가능

 

// function

function greeter(fn: (a: string) => void) {
	fn("hello, world!");
}
function printToConsole(s: string) {
	console.log(s);
}
greeter(printToConsole);


// generic function 

function firstElement<Type>(arr: Type[]): Type | undefined { //generic도 상속 가능
	return arr[0];
}