Skip to content

week01 - Typescript 기초와 Nodejs 동작원리 #2

@hyejungg

Description

@hyejungg

🔥 알게된 점

  1. Javascript
  2. Typescript
  3. Nodejs 동작원리

📚 배운 점

Javascript / Typescript 는 일급 객체

  • 변수 or 데이터 구조에 담을 수 있음
  • 다른 함수에 파라미터로 전달 가능
  • 반환 값으로 사용 가능
    -> 모두 충족한다면, 일급 객체 (특별한 종류의 값)

함수 표현법

  1. 함수 선언식 : `function name (a, b) { return }
  • 선언문이 정의되기 전에 사용 가능
console.log(menu2('gd'));
function menu(dinner){
    return `오늘 메뉴는 ${dinner}입니다.`;
}
  1. 함수 표현식 : let name = (a, b) => { return }
    -실제 실행 흐름이 해당 함수에 도달했을 때 생성 (그때부터 사용 가능)
const menu = (dinner) => {
  return `오늘 메뉴는 ${dinner}입니다.`;
};
const str2 = menu("곱창");
console.log(str2);
console.log(menu("곱창")); //일급 객체니까 가능

Typescript 기초 문법 (data type)

  1. 배열 타입
//* const arr: T[] = 초기화
//* let arr: Array<T> = 초기화
const ages: Array<number> = [1, 2, 3, 4, 5];
const anyArray: any[] = [1, 2, 3, "", false];
  • Array.map() : 배열 내 주어진 원소를 새로운 배열로 생성
let num = [1, 2, 3, 4];
const newNumArr = num.map((x) => (x *= 2));
newNumArr.map((x) => {
  x *= 2;
  console.log(x);
});
console.log(newNumArr);
  • for-of 문으로 배열 순회
for (const x of newNumArr) {
  console.log(x);
}
  1. 객체 타입
    (1) Object : 자바스크립트의 모든 생성자를 포함함. js의 모든 타입이 할당 가능한 타입
    (2) object : 원시타입(객체 ex. 배열은 가능)을 제외한 나머지 모두 가능한 타입
const f1 = (obj: object): void => {
  console.log(obj);
};
const f2 = (obj: Object): void => {
  console.log(obj);
};

f2([1, 2, 3, 4]);
f2("string");

f1([1, 2, 3, 4]);
// f1('string'); //오류. 객체타입만 보낼 수 있기 때문
  1. null / undefined
  • 자기자신 외의 값 할당 불가. null에는 null만, undefined에는 undefined만
let p: null = null;
let u: undefined = undefined;
  1. Type assertions
  • 타입을 직접 단언하는 것
    (1) angle-bracket : <> 로 단언
let myName: any = "김헤정";
let myNameLength: number = (<string>myName).length; //이런 식으로 형변환해서 myName이 str임을 보장
console.log(myNameLength);

(2) as

let myName2: any = "서버";
let myName2Length: number = (myName2 as string).length; //myName2는 any지만 string이 확실해!
console.log(myName2Length);
  1. 마법의 any
  • 타입 검사를 하지 않음
  • 알기 어려운 타입 받을 때 or 배열에 string, boolean 등 일부만 알고 있는 경우 사용
  • 남발하면 안돼 !!!!!!!!!

interface

  • 타입 체크를 위해 !여러가지 프로퍼티를 갖는 새로운 타입 정의!
  • 변수, 함수, 클래스 모두 사용 가능
interface Sopt { property: T }

interface ServerPart {
  name: string;
  age: number;
  group: string;
  mbti?: string[]; //선택적 프로퍼티
}

선택적 프로퍼티 : ?를 붙임. 이 프로퍼티는 들어올 수도 안들어올 수도 있다는 뜻. 인터페이스 외 함수에서도 사용 가능

function buildName(firstName: string, lastName?: string) {
  if (lastName) return firstName + " " + lastName;
  else return firstName;
}

Nodejs의 동작 원리

Nodejs : 브라우저 밖에서 자바스크립트를 돌려볼 수 있는 런타임 환경

  • Non-Blocking I/O
  • Single Thread
  • Event-Driven
    -> Nodejs는 I/O가 끝나기 전에 작업을 진행하는 Non-Blocking I/O방식으로 돌아가는 Single Thread형태로, 이벤트가 발생할 때 미리 저장해둔 작업을 수행하는 Event-Driven방식으로 동작한다.

image

참고자료

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions