본문 바로가기

전체 글164

None Blocking & IO 태스크 큐로 보내는 동작을 논블로킹이라고 한다. (순서가 달라짐) 인풋 아웃풋 IO 크게 두가지 => 파일 시스템, 네트워크 파일 시스템 IO => 파일 열고 닫고, 쓰고, 이미지 저장, 서버 파일에 쓰는 IO 네트워크 IO => 네트워크 보내고 받고 함. *파일시스템 => 멀티로 돌린다. (자체적으로 논블로킹으로 동작한다. ) *싱글 스레드 (자바스크립트) 블로킹이 발생한다. *논블로킹으로 순서를 바꿔서 효율적으로 하게끔 한다. *파일시스템은 알아서 동시에 작업할 수 있도록 도와준다.(멀티스레드) 네트워크 테스크 거쳐서 논블로킹 2019. 10. 19.
서버&클라이언트 , 테스크 큐 => 이벤트루프 => 호출스택(콜스택) 서버란 클라이언트에게 요청을 받아서 응답해주는 것 서버가 클라이언트가 될 수 있음. 서버가 서버에게 요청을 보낼 수 있음. *하지만, 언제 요청이 올지 모른다. 그래서 이용하는 것이 이벤트 리스너. ex) *방문(이벤트) => HTML 받는다.(콜백함수) *댓글등록 => 댓글 저장(콜백함수) 테스크 큐 (콜백들은 테스크 큐에 들어옴) (HTML) (콜백함수) / (HTML) (콜백함수) / (댓글 저장)(콜백함수) => 이벤트 루프(여러개의 테스크 규에서 우선순위를 파악해서 호출스택으로 불러서 실행해준다. => 호출 스택 (해당 함수들이 실행되는 부분) (댓글 저장) 실행 => done (HTML) 실행 => done (HTML) 실행 => done 2019. 10. 19.
이벤트 루프 function first() { second(); console.log('1번째') } function second() { third(); console.log('2번째') } function third() { console.log('3번째') } first(); 실행 순서 3번째, 2번째, 1번째 Stack => 빠질때는 들어왔던 순서 반대로 나간다. 호출 스택(콜스택) console.log('1번째') console.log('2번째') console.log('3번째') (third) (second) (first) 언제 Task Que에 들어가나?******* 이벤트 루프가 알아서, 우선수위 순서 맞춰서 끄내서 실행 시킨다. ex) setTimeout, setInterval, setImmediate,.. 2019. 10. 19.
contextAPI, provider 설정, createContext( ) createContext ( ) 기본 값을 넣을 수 있다. contextAPI 접근하고 싶은 COMPONENT를 PROVIDER로 묶어준다. 데이터는 value 에 넣는다. 자식 컴포넌트에서도 데이터값을 접근할 수 있다. 값은 value안에다 넣어주어야 한다. const TableContext = createContext( { tableData : [ ], dispatch : ( ) => { }, }); const value = useContext(TableContext); useMemo를 사용하여 새로운 객체가 생기지 않도록 도와준다. 렌더링을 하면 객체가 생겨 자식 컴포넌트에게 전달이 될 수 있기 때문임. 그 후, 언제 바뀌는지 배열 안쪽에 선언해주면 된다. const value = useMemo (.. 2019. 10. 17.