전체 글
-
this 키워드JavaScript ES6 2022. 5. 4. 08:35
this키워드를 함수와 Object에서 사용해보자. 먼저, this의 뜻을 알아보자. 1. this는 {window}를 뜻한다. (그냥 쓰거나 일반 함수에서 this를 사용했을 때) window는 기본 함수들의 수납공간이다. 만약 자바스크립트 상단에, 'use strict'이런게 있다면 자바스크립트를 엄격하게 실행하게 된다. 그러면 변수 선언시 var을 꼭 써야한다던가 이렇게 바뀐다. 여기서, 일반함수 내에 this를 사용하면 undefined가 나온다. (strict mode + 일반함수) 2. this를 오브젝트 안에서의 함수에서 사용할 때 즉, var 오브젝트 = { 함수 : function() { console.log(this) } } 이렇게 사용하면, this 는 나를 포함하고 있는 오브젝트를 ..
-
컴퓨터에서 자료 표현하기JAVA 2022. 5. 3. 13:32
컴퓨터는 2진수로 밖에 표현을 못한다. 2진수는 0과 1로만 데이터를 저장하며, bit(1비트)는 컴퓨터가 표현하는 데이터의 최소 단위이다. 그리고 8bit가 모이면 1byte가 된다. 그리고 8진수는 0부터 7까지 쓰고 10으로 가고, 즉 10진수가 8일때 8진수는 10이다. 그리고 10 11 12 ~ 17 ~20이 된다. 16진수는 0부터 9까지 쓰고 10진수로 10부터 A ~ F까지 쓰고 16을 10이라 한다. 그리고 25는 19, 26은 1a가 된다. 이제, 이클립스에서 표현하는 법을 알아보자. package ch04; public class BinaryTest { public static void main(String[] args) { int num = 10; int bNum = 0B1010; ..
-
폴더만들기JAVA 2022. 5. 3. 13:18
전체를 감싸는 폴더를 만들고 여기선 Chapter1이라고 만들었다. 그리고 ctrl N을 눌러서 package를 만들어준다. 모든 자바 파일들은 package에 만들어줘야 한다. 만약 그렇지 않으면 디폴트라고 페키지가 없는 묶음으로 들어가게 된다. 이제 package를 만드는데 package이름은 소문자로 만들어주는게 좋다. 위처럼 ch01이란 package를 만들고 class를 안에 만들어주는데 class이름은 대문자로 시작해줘야 한다. 그리고 만들 때 public static void main에 체크를 해주면 파일을 쉽게 시작할 수 있다. 그리곤 package ch01; public class HelloJava { public static void main(String[] args) { System...
-
socket.io (실시간 데이터 주고받기)Node.js,MongoDB 2022. 4. 27. 12:52
실시간으로 소통할 때 SSE말고도 WebSocket을 쓰면 서버, 유저간 실시간 통신이 가능하다. Server Sent Event는 서버 -> 유저의 일방적 통신이라면, WebSocket는 양방향 통신이 가능하다. 생js로 할 순 있는데, 라이브러리 사용이 편리하다. npm install socket.io 먼저, socket.io를 설치해준다. 그리고, const http = require('http').createServer(app); const { Server } = require("socket.io"); const io = new Server(http); 셋팅을 해준다. 세줄은 const app = express(); 밑에 작성해야 한다. 마지막으로, //app.listen(8080, functio..
-
채팅기능 만들기 (DB변동사항 실시간 업데이트)Node.js,MongoDB 2022. 4. 27. 09:49
var 지금누른채팅방id; //변수가 밖에 있으니 함수들안에도 사용가능 var eventSource; $('.list-group-item').click(function(){ 지금누른채팅방id = this.dataset.id; $('.chat-content').html(''); if (eventSource !== undefined) { eventSource.close() } eventSource = new EventSource('/message/' + 지금누른채팅방id)//실시간 소통채널 입장 eventSource.addEventListener('test', function(e){ var 가져온거 = JSON.parse(e.data) //서버에서 보낸 데이터 따옴표를 제거서 받음 //동적으로 html생성하..
-
채팅기능 만들기 (서버와 실시간 소통 SSE)Node.js,MongoDB 2022. 4. 25. 13:30
저번에 까지 전송 버튼을 누르면 서버에 저장하게끔 코드를 작성했다. 이제, 채팅방을 누르면 메세지를 보여줘야 한다. 근데 실시간으로 가져와야 한다. 2가지 방법이 있는데, 먼저, get요청을 1초마다 계속 날리는 방법이 있다. 이 방법은 요청이 많이지면 힘든 방법이다. 그래서, 실시간 소통채널을 여는 (Server Sent Event)라는 방법이 있다. server.js에 app.get('/message/:id', 로그인했니, function(요청, 응답){ 응답.writeHead(200, { //Header을 설정해주세요 란 뜻 "Connection" : "keep-alive", "Content-Type" : "text/event-stream", "Cache-Control" : "no-cache", }..
-
채팅기능 만들기 (메시지 발행)Node.js,MongoDB 2022. 4. 25. 01:33
채팅방1 내용 채팅방1 내용 채팅방1 내용 전송 input태그에 글을 써서 댓글을 다는 것도 게시물 발행과 같다. 우선 html을 짜고 전송버튼을 눌렀을 때 서버로 보낼 데이터를 정리해보자. var 지금누른채팅방id; //변수가 밖에 있으니 함수들안에도 사용가능 $('.list-group-item').click(function(){ 지금누른채팅방id = this.dataset.id; }) $('#send').click(function(e){ //당한id, 부모요소, 내id, content, date var 보낼거 = { parent : 지금누른채팅방id,//보통 카톡도 채팅방부터 클릭하고 메세지 작성함 content: $('#chat-input').val(), } $.post('/message', 보낼거..
-
채팅기능 만들기 (채팅방만들기)Node.js,MongoDB 2022. 4. 22. 10:11
채팅기능도 게시물 발행과 똑같다. 그저 내용을 발행해주면 된다. 그리고 대부분의 기능들도 각각의 정보를 발행시켜주는 것이라 게시물 발행과 근본적으로 같다. 채팅기능 +로 1. 게시물간 관계맺기 2. DB실시간 업데이트 이 두개를 더해야 한다. 이제, 종속관계에 대해 알아보자 댓글기능을 예를 들어 알아보자. 댓글기능은 채팅기능과 같은데 실시간만 추가되었을 뿐이다. 댓글은 단독으로 존재할 수 없고, 해당글에 달린 댓글을 구별해야 한다. 즉, 어디에 달린 댓글인지 알아야한다. 이걸 관계맺는다고 표현하다. 이처럼 게시물간의 종속관계를 표현하고 싶을 때 부모정보까지 같이 저장하면 된다. 먼저, 채팅하기 채팅하기란 버튼을 만들고, ajax요청을 통해 서버로 보내보자 $('.chat').click(function(e..