우아한 테크러닝

1 minute read

우아한 테크러닝 - Typescript&react
네트워킹 ; 코드품질->아키텍처->적정기술

(상태 State)
환경 (Env) 실행 환경에 대한 환경, runtime, 개발 환경까지도
제품 Prod; 실제 서비스 제품
목표 (Mission)) 베스트 practice 에 대한
코드 (Quality)
상대적{E=mc2}

https://www.typescriptlang.org/play https://codesandbox.io/index2 https://reactjs.org/ https://redux.js.org/ https://mobx.js.org/README.html https://redux-saga.js.org/ https://blueprintjs.com/ https://testing-library.com/

TypeScript

type Age = number;      //number의 타입을 Age로 정해줌
//이런 타입 명시는 컴파일 타임에만 작동되는 문법 요소
//런타임까지 가는 요소는 TRANSFILING 되어서 JS로 변형되는것
//TYPESCRIPT의 이점은 컴파일 타임에 적용되는 것이 많음

type Foo = {    //객체 타입 생성
    age: Age;
    name: string;
}

interface Bar{  //인터페이스
    age: Age;
    name: string;
}

const foo: Foo = {  //변수 만들고 변수 뒤 타입
    age: 10,
    name: 'Ki',
}

const bar: Bar = {  
    age: 10,
    name: 'Ki',
}

//변수 만들기 let foo = 10;은파이썬처럼 이미 type이 정해졌으므로 foo=false와 같은거 하면 오류
let fii: number = 10;   //타입을 명시한 경우; docs에서 type 익히기
let age: Age = 10;
function func(){
    arguments   //가변인자
    return 0;
}


React

Yarn create react-app my-app –template typescript / npx create-react-app my-app
Index.tsx -> serviceWorker 삭제
https://babeljs.io/

import React from 'react';	//변환된 다음에 사용하므로 반드시 포함

interface AppProps{ //외부와 소통하는 interface
  title: String;
  color: String;
}

function App(props: AppProps){  //함수 인자의 객체로 전달, 순수 함수 컴포넌트
  return(
    <h1>{props.title}</h1>  //자바스크립트에서   {} dksdp tkdyd
  )
}

ReactDOM.render(  //production 작동 x, 컨테이너 관리, 단일트리의 virtual dom이므로 최상위에서 한번만 호출

  <React.StrictMode>
    <App title="Tech HELLO!" color="red"/>
  </React.StrictMode>,  //첫번째 인자
  document.getElementById('root') //html 컨테이너
);

js로 변형되면»

"use strict";

function App() {
  return /*#__PURE__*/React.createElement("h1", null, "Hello Tech");	//type, property, child요소의data
}

상태관리 -> redux(간단함) => MobX
변하는 상태가 있을 때 어떻게 할 것인가
전역에 상태를 어떻게 관리할 것인가..
Compile 상태에서 관리하기
유연성 측면에서 각 기능 잘 생각하기…

다음 시간 : sample들 만들어보며 하나하나