본문 바로가기

JavaScript14

websocket과 라이브러리 websocket webSocket은 TCP 연결에서 클라이언트와 서버 사이에 지속적인 완전 양방향 연결 스트림을 만들어 주는 기술입니다. webSocket의 특징 양방향 통신 (Full-Duplex) 방식 클라이언트와 서버가 서로에게 데이터를 주고 받을 수 있음 일반적인 Http통신은 client가 요청을 보내는 경우에만 server가 응답하는 단방향 통신 실시간 네트워킹(Real Time-Networking) 웹 환경에서 연속된 데이터를 빠르게 노출 ex) 채팅, 주식 여러 단발기에서 빠르게 데이터를 교환 최초 접속에서만 http프로토콜 위에서 handshaking을 하기 때문에 http header를 사용한다. Socket.io Socket.io는 node.js를 지원하고, websocket을 기반.. 2022. 4. 28.
불변성은 왜 지켜야할까? 불변성 (Immutability) 불변성은 값이나 상태를 변경할 수 없는 것을 의미합니다. 프로그래밍에서 불변성은 데이터 원본의 훼손을 막는 것을 의미합니다. 간단히 말하자면, 어떤 값을 직접적으로 변경하지 않고 새로운 값을 만들어내는 것입니다. 자바스크립트에서는 원시타입은 불변성을 지니지만, 객체타입은 값이 변할 수 있습니다. 원시 타입 원시 타입에는 Boolean, Number, String, null, undefined, Symbol이 있습니다. 먼저 코드를 보겠습니다. let str = "example1"; str = "example2"; console.log(str) // example2 위에서는 원시타입은 값을 변경할 수 없다고 했는데 위와 같은 결과가 나왔습니다. 사실, 위 과정은 값이 변경.. 2022. 4. 27.
함수 스코프와 블록 스코프 스코프 변수나 함수가 선언되어 사용할 수 있는 유효 범위를 말합니다. 스코프는 크게 전역 스코프와 지역 스코프로 나누는데, 지역 스코프에 오늘 정리할 함수 스코프와 블록 스코프가 있습니다. 전역 스코프 : 어디든지 변수에 접근이 가능 지역 스코프 : 정해진 범위 안에서 접근이 가능 함수 스코프 자바스크립트는 함수 스코프를 기본으로 사용합니다. 함수 스코프는 새로운 함수가 생성될 때마다 새로운 스코프가 발생되는데, 함수에서 선언한 변수는 해당 함수 내에서만 접근 가능하다는 걸 의미합니다. function sayHello() { var hello = 'hello'; } hello; //ReferenceError 위 코드를 보면, sayHello라는 함수가 생성된 것을 볼 수 있습니다. hello라는 변수가 .. 2022. 4. 24.
async/await은 왜 쓰는가? 이번 글에서는 Promise와 async/await의 차이에 대해서 공부해보겠습니다! 동기 / 비동기 특징 동기의 (대략적인) 특징 동시에 여러 작업을 수행할 수 없다. 흐름을 예측하기 쉽다. 먼저 수행되고 나중에 수행되는 것들이 명확하다. 비동기의 (대략적인) 특징 동시에 여러 작업을 수행할 수 있다. 흐름을 예측하기 어렵다. (무엇이 먼저 완료될 지 보장할 수 없다.) Promise Promise는 자바스크립트에서 비동기 처리에 사용되는 객체입니다. 코드는 실행 되었지만 결과를 아직 반환하지 않은 객체라고 설명할 수 있습니다. Promise는 3가지 상태가 있습니다. Pending(대기) Fulfilled(이행) Rejected(실패) 비동기 처리를 아직 수행하는 단계인 Pending, 비동기 처리가.. 2022. 4. 18.