본문 바로가기

전체 글36

호이스팅(Hoisting)이란? 호이스팅이란? Hoist는 사전적으로 '들어[끌어]올리다' 라는 의미를 가진 단어이다. Javascript에서 var 로 선언된 모든 변수들은 변수를 정의하는것이 범위에 따라 선언과 할당으로 분리된다. 즉, 변수가 함수 내에서 정의된 경우, 선언이 함수의 최상위로, 함수 바깥에서 정의되었을 경우 전역 컨텍스트의 최상위로 선언된다. console.log(test); // undefined console.log(test2); // ReferenceError: Can't find variable: test22 var test = 1; console.log(test); // 1 변수가 뒤에 어디서든 정의가 된다면 일단 선언이 되었으므로 undefined 가 리턴될것이고, 정의 즉 선언조차 되지 않은 변수는 에러.. 2021. 8. 9.
블록스코프, 함수스코프 란(feat. var, const, let) 오늘은 Javascript의 기본기를 다져보는 시간을 가져보려고 한다. var 과 const, let의 차이를 알아보려고 한다. 일단 블록 스코프, 함수 스코프의 차이를 말하기에 앞서 스코프란 무엇인지 알아보자. 스코프(Scope)란? 단순하게 한국말로 직역하면 '범위' 이다. Javascript 에서의 스코프는 '변수에 접근할 수 있는 범위'라고 생각하면 된다. 블록스코프, 함수스코프란? 블록스코프에는 let(수정가능), const(수정불가)가 있고, 블록({ })마다 새로운 스코프가 새로 재정의 된다라고 생각하면 된다. function test_func(){ let test1 = 'hi1'; const test1 = 'hi2'; console.log(test1, test2); // hi1 hi2 } .. 2021. 8. 9.
NestJS + Websocket으로 채팅만들기 #4 (feat. 채팅 구색갖추기) 이번에는 채팅에 필요한 기능들을 정리하여 제작해보려고 한다. 일단 기본적으로 내가 만들고 싶은 채팅방은 입장했을 시 lobby에 입장한다. 물론 로비에 있는 다른 회원과 대화가 가능하다. 채팅방을 임의로 제작할 수 있고, 채팅방을 만들면 자동으로 채팅방 목록에서 채팅방이 추가된다. 아무도 없는 채팅방은 자동으로 소멸된다. 1유저는 1개의 채팅방에만 들어갈 수 있다. 닉네임은 언제든지 변경이 가능하고, 창을 껐다 켰을시에도 해당 닉네임이 유지되야한다. 이 형태의 채팅방이고 부가적인 기능인 방장이 나갔을 경우 랜덤으로 방장이 바뀐다거나, 채팅방 혹은 닉네임 중복 방지와 같은 부가기능은 일단 제외하고 기본적으로 채팅방으로서의 형태를 제작해보려고 한다. 이렇게 되면 만들어야 하는 함수목록이 대강 정리가 된다. .. 2021. 7. 26.
NestJS + Websocket으로 채팅만들기 #3 (feat. 채팅 "방" 만들기) 채팅방 만들기 채팅 "방"을 만들기 위해서는 각각 개별적인 구분이 필요하다. 입장 해 있는 회원목록이나 회원수가 필요할 것이고, 누가 방장이고, 방 이름이 무엇인지 입력이 필요하다. 직접 room의 Object를 컨트롤 해주는 방법 도 좋지만, Socket.io 에서는 Room 이라는 기능을 제공한다. 👉 [Namespace 와 Room 이란?] 단순하게 //채팅방 들어가기 @SubscribeMessage('enterChatRoom') enterChatRoom(client: Socket, roomId: string) { client.join(roomId) } 이런 형태로 client를 room 에 들어갈 수 있다. room은 별도로 생성 할 필요는 없고 단순히 join을 할 경우 room이 생성된다. 마.. 2021. 7. 26.