1. Socket.IO란Socket.IO는 실시간 양방향 이벤트 기반 통신을 위한 라이브러리입니다. WebSocket을 기반으로 하지만, 폴백 메커니즘을 제공하여 WebSocket을 지원하지 않는 환경에서도 동작합니다.1.1 Socket.IO vs WebSocketSocket.IO 장점:- 자동 재연결- 폴백 메커니즘 (long-polling 등)- 방(Room) 기능 내장- 네임스페이스- 이벤트 기반 통신- 브로드캐스트 기능- 바이너리 스트리밍2. 설치 및 기본 설정npm install socket.io socket.io-client2.1 기본 서버const express = require('express');const { createServer } = require('http');const { Ser..
분류 전체보기
1. 인증과 인가의 차이1.1 인증(Authentication)인증은 사용자가 누구인지 확인하는 과정입니다. "너는 누구니?"라는 질문에 답합니다.인증 방법:- 아이디/비밀번호- 소셜 로그인 (Google, GitHub 등)- 생체 인증- 인증서- OTP (일회용 비밀번호)1.2 인가(Authorization)인가는 인증된 사용자가 특정 리소스에 접근할 권한이 있는지 확인하는 과정입니다. "너는 이걸 할 수 있니?"라는 질문에 답합니다.인가 예시:- 관리자만 사용자 삭제 가능- 작성자만 글 수정 가능- 유료 회원만 프리미엄 콘텐츠 접근 가능2. 기본 인증 구현2.1 비밀번호 해싱npm install bcryptconst bcrypt = require('bcrypt');// 비밀번호 해싱async func..
1. 웹소켓이란웹소켓은 클라이언트와 서버 간의 양방향 실시간 통신을 가능하게 하는 프로토콜입니다. HTTP와 달리 연결이 유지되며, 서버에서 클라이언트로 데이터를 푸시할 수 있습니다.1.1 HTTP vs WebSocketHTTP:클라이언트 → 요청 → 서버클라이언트 ← 응답 ← 서버(연결 종료)WebSocket:클라이언트 ←→ 양방향 통신 ←→ 서버(연결 유지)1.2 웹소켓 사용 사례실시간 채팅실시간 알림주식/암호화폐 가격 업데이트멀티플레이어 게임협업 도구 (실시간 문서 편집)2. ws 라이브러리Node.js에서 가장 많이 사용되는 WebSocket 라이브러리입니다.npm install ws2.1 기본 서버const WebSocket = require('ws');const wss = new WebSock..
1. GraphQL이란GraphQL은 Facebook에서 개발한 API 쿼리 언어입니다. REST와 달리 클라이언트가 필요한 데이터만 정확히 요청할 수 있으며, 단일 엔드포인트(/graphql)를 통해 모든 데이터에 접근합니다.1.1 GraphQL vs RESTREST:GET /users/1GET /users/1/postsGET /posts/1/comments→ 여러 번의 요청, 오버페칭/언더페칭 문제GraphQL:POST /graphqlquery { user(id: 1) { name posts { title comments { content } } }}→ 단일 요청으로 필요한 데이터만 조회2. 프로젝트 설정npm install express @..