분류 전체보기 219

3장. 타입의 모든 것

3.1 타입의 가나다 any any는 모든타입을 허용한다. 가급적 사용하지 않아야 한다. 타입스크립트의 기본 설정은 자유를 허용하므로 any로 추론되는 값을 발견해도 예외를 발생시키지 않는다. 암묵적 any를 예외처리 하고싶다면 tsconfig.json파일에서 noImplicitAny플래그를 활성화하면 된다. unknown 타입을 미리 알 수 없는 어떤값이 있다면 any대신 unknown을 사용하자. unknown도 모든 값을 대표하지만, 타입을 검사해 정제하기 전까지는 타입스크립트가 unknown 타입의 값을 사용할 수 없게 강제한다. unknown은 비교연산과 !를 지원하고 typeof, instanceof로 정제할 수 있다. boolean true와 false를 가진다. 타입스크립트에게 어떤값이 b..

2장. 타입스크립트: 3000미터 상공에서 내려다보기

타입스크립트를 사용하는이유? 타입 안전성을 지키기 위해서 타입 안전성이란 타입을 이용해 프로그램이 유효하지 않은 작업을 수행하지 않도록 방지하는 것이다. 타입스크립트는 에러를 알려주는 시점이 편집기에 코드를 입력하는 순간이기 때문에 에러를 검출하기에 용이하다. 컴파일러 프로그램은 프로그래머가 작성한 텍스트파일을 컴파일러라는 프로그램이 파싱하여 추상 문법 트리(AST)라는 자료구조로 변환한다. (파싱) 그러고 다시 AST를 바이트코드라는 하위 수준의 표현으로 변환한다. (컴파일) 바이트코드가 만들어지면 런타임이라는 프로그램에 바이트코드를 입력해 평가하고 결과를 얻는다. 타입스크립트가 다른언어와 다른점은 컴파일러가 코드를 바이트코드 대신 JS코드로 변환한다는 점이다. 타입스크립트 컴파일러는 AST를 만들어 ..

윈도우10 도커 설치시 리눅스 커널 업데이트 [WSL 2 installation is incomplete]

WSL 2 installation is incomplete, 윈도우10 도커 설치시 리눅스 커널 업데이트, Docker Linux Kernel Update on Windows 10 - AHNDOORI (kAUdo) (nachal.com) WSL 2 installation is incomplete, 윈도우10 도커 설치시 리눅스 커널 업데이트, Docker Linux Kernel Update on Wind 윈도우에서 도커를 설치하다가 WSL2가 설치되지 않았다는 오류 메세지가 뜨면, 리눅스 커널 업데이트를 해야 합니다. 뭔 윈도우에 리눅스 커널이야?!?!? 1. 파워쉘을 관리자 권한으로 실행 (파워쉘 blog.nachal.com 아주잘된다

<Hooks 성능>

rendering이 변경되는것은 상태가 변경되거나 props가 변경될때이다. useEffect useLayoutEffect useMemo useReducer react에서 Memo라고 하는것은 다 cache를 이용한다.(Object를 useEffect에 걸고싶을떄 useMemo를 쓴다고 생각하면 댄다) hooks는 async를 걸면 안된다. hooks의 특징은 상태가 변경되었을때 순서대로 실행시킨다. 항상 최상위에서 한번에 실행되어야 한다. ** 훅은 최상위에서만 실행가능하다. react query는 함수가 계속 리랜더링하는 문제를 useEffect를 안써도 useQuery로 이런부분을 캐시했다가 해서 서버에 안가도록한다(일정시간) 1. 훅스는 컴포넌트 영역 안에서만 작동한다. 2. 기능은 따로잡자 (u..

Hooks

-공지- 목요일 7 - 9을 토요일 9시반부터 시작하는걸로 옮겨서 할 예정(이때 리액트의 기본적인것 끝) 그다음주 토요일은 노드실습 그다음주 토요일은 next.js & typescript로 바꾸기 예정 시간이 되면 RN을 껍데기로 씌우기 - 대댓글 - 오라클을 쓴다면 connect by로 pid를 조인걸면 댄다. 로그인컨텍스트를 세션컨텍스트라고해보고 const SessionContext = createContext(); 를 선언한다. 그러면 이러한 모습이 된다. 여기에서 제공해줄 아이를 value={}에 적어주면 세션컨텍스트가 감싸고있는 모든컴포넌트는 바로 value에 접근할수 있다. // App안의 Nav컴포넌트속에서 외부의 didLogin을 참조 const {didlogin..

React Hook

* 리액트 소스한번보기! const [state, setState] = useState(false); //이것의 문제점은 타자를 칠때마다 컴포넌트 전체를 다시 render()하게된다. setState(e.target.value}/> // rendering과 painting이 있다. // react는 render를 vertual DOM에 값을 set한다. // 그다음 painting한다. //props는 리액트 내부에서는 state로 되어있다. //그래서 props가 바뀌면 랜더링을 다시해야한다. const useState = (initValue)=>{ //useState는 대충 이런느낌으로 구성되어있다.. return [this.state, (v)=> {this.state = v}] //리액트 문서에서 ..

JSX

React.render () npm i react-dom --save. //save는 default가 됐다 --save-dev < 개발할때만 필요하고 배포할떄는 필요없는애들이면 create-mf-app 으로 다운로드받으면 여러 프레임워크중 선택해서 받을 수 있다. 리액트 파일의 기본은 .jsx 파일이다. 하지만 .js파일도 설정하기 나름으로 돌릴 수 있다. JSX의 가장 큰 특징은 XML의 공존이다. 리액트에서 컴포넌트는 함수다 (리액트 16이전에는 클래스) export는 해당 특정 변수만 내보내고 export default는 파일 전체를 내보낸다. 실제로 ES표준에는 import라는 말은 없다(require()가 표준), 하지만 import가 더 편하기 때문에 사용하고 바벨이 require를 impor..