Node (15) 썸네일형 리스트형 커넥션 풀(Connection Pool) 커넥션 풀(Connection Pool) 데이터베이스와의 연결을 미리 여러개 생성하여 풀에 저장한다.필요할 때마다 재사용하여 성능을 향상시킨다.미리 생성된 연결을 사용함으로써 응답 시간을 감소시킨다.커넥션 풀의 장단점장점더 많은 연결이 더 많은 처리를 동시에 할 수 있어 동시 처리 능력이 향상된다.동접자가 많은 환경에서 유리하다.여러개의 연결을 유지함으로써 갑작스러운 트래피증가에 고가성용성을 제공한다.단점사용하지 않는 커넥션으로 자원이 낭비된다.데이터베이스 서버에 과도한 부하를 줄 수 있다. = 성능저하네트워크 성능에 영향을 미친다. (대역폭 사용 증가)** 실제 고성능 게임서버의 경우 수천개 이상의 커넥션을 유지하기도 한다.서버에 DB 연동환경변수에 DB 정보를 세팅한다. 현재는 로컬 환경에 MySQL.. process.exit() 메서드 process.exit()현재 프로세스를 종료하는데 사용되는 메서드다.종료 상태코드를 매개변수로 받아 들여 작동한다. 상태 코드의 의미 0 : 프로그램이 정상적으로 종료되었음을 나타낸다. 즉 , 모든 작업이 성공적으로 완료 되었다는 의미1 : 프로그램이 비정상 적으로 종료되었음을 나타낸다. 일반적으로 오류가 발생하거나 예외적인 상황이 발생한 경우 사용된다.기타 숫자 : 2 이상의 다른 숫자는 각기 다른 오류 상황을 나타낸다. 사용자가 정의한 특정 오류코드를 나타낼 수 있다.if (someErrorOccurred) { console.error("An error occurred!"); process.exit(1); // 비정상 종료}// 정상적으로 종료될 경우console.log("Program comp.. 객체지향 패턴(Object-Oriented Patterns) 객체지향 패턴(Object-Oriented Patterns) 객체지향 패턴은 객체 지향 프로그래밍에서 자주 발생하는 문제를 해결하기 위한 일반적인 설계 솔루션이다.이러한 패턴은 코드의 재 새용성을 높이고 유지보수를 용이하게하며 시스템의 구조를 명확하게 만드는데 도움이 된다.객체지향 패턴의 3가지 유형생성 패턴 (Creational Patterns) 객체 생성과 관련된 패턴으로 객체를 생성하는 방법을 정의하여 유연성을 제공한다. ex) 싱글턴(singleton) , 팩토리 메서드(Factory Method) 등이 있다.구조 패턴 (Structural Patterns) 클래스나 객체를 조합하여 더 큰 구조를 형성하는 패턴이다. ex) 어댑터(Adapter) , 데코레이터(Decorator) , 컴포지트(Co.. TCP 이해하기 TCP 로 서버 열기 TCP는 기본적으로 지원해주는 net모듈을 사용하여 서버를 열 수 있다.import net from "net";express와 비슷하지만 TCP서버는 기본적으로 제공해주는 createServer 메서드를 사용하여 서버를 선언해 준다.const server = net.createServer((socket)=>{console.log("연결확인")//socket.id === undefined})선언한 서버를 listen을 사용하여 실행을 시켜준다.server.listen('포트번호','127.0.0.1(host)',"10(backlog 선택사항)"()=>{});backlog사람이 몰릴 경우를 대비하여 대기자 수를 지정하여 설정할 수 있다.configconfig폴더는 일반적으로 소프트웨어 .. socket 이벤트 / 버퍼(Buffer) socket 대표적인 이벤트들data서버가 클라이언트로부터 데이터를 받을 때마다 발생한다. 데이터는 버퍼 형태로 제공되며 이를 문자열로 변환 혹은 원하는 형식으로 처리가능하다. 주로 요청을 처리 , 응답을 준비 할 경우 사용한다.end 한쪽의 연결이 끝난경우에 발생한다. 소켓의 다른 쪽에서 FIN패킷을 보내어 데이터 전송이 완료되었음을 나타낼 때 발생한다. 소켓의 읽기 측면이 닫힌다. TCP프로토콜에서 FIN패킷을 보낸다는것은 더이상 데이터를 보내지 않겟다는 신호이다. 연결의 끝을 의미한다. 이 이벤트로 연결이 정상적으로 종료되었는지 확인가능하다. 주로 자원을 정리하거나 로그를 남길때 사용한다.error 에러가 발생할 경우 발생한다. 이 이벤트가 발생한다면 이후에 바로 close이벤트가 호출된다.clos.. Socket.io 기본 기능 Socket.io 명령어기능 설명io()클라이언트에서 서버에 연결socket.disconnect()서버와의 연결을 해제socket.emit(event,data)클라이언트가 서버로 이벤트를 전송socket.on(event,callback)서버가 클라이언트로부터 이벤트를 수신할 때 호출되는 콜백함수socket.join(room)클라이언트를 특정 방에 추가socket.leave(room)클라이언트를 방에서 제거socket.id각 소켓의 고유 ID 로 클라이언트를 식별하는 데 사용socket.connected클라이언트가 현재 연결되어 있는지 여부를 확인 ★ 주의사항1.이벤트 이름은 임의로 설정해도 상관없지만 알아보기 쉬워야하며 일관성을 유지해야한다. 서버의이벤트의 이름이 a라면 클라이언트에서 발생시키는 이벤트의.. webSocket 게임 서버 개발 강의 코드 이해하기 src/init/socket.js초기화 및 설정import { Server as SocketIO } from 'socket.io';import registerHandler from '../handlers/register.handler.js';const initSocket = (server) => { const io = new SocketIO(); io.attach(server); registerHandler(io);};export default initSocket;Socket.IO 서버를 초기화하고 registerHandler을 통해 클라이언트 연결 인벤트를 처리한다. src/handlers/register.handler.js사용자 등록 및 연결import { addUser } from '../mo.. HTTP의 특징,webSocket의 특징 HTTP의 특징 Request Response 구조Request가 있어야만 Response가 존재할 수 있기 때문에 리퀘스트 리스폰스 구조라고 합니다. 만약 서버가 HTTP 응답을 보내야 하는데 요청이 없다면 어디로 응답을 보내야 할지 알 수 없습니다. 간단하게 말해 요청(Request)이 없다면 응답(Response)도 없다고 이해할 수 있습니다.비 연결성이 구조는 비 연결성을 가지고 있는데, 하나의 요청을 보내고 하나의 응답을 받으면 그 연결이 끝난다는 것을 의미합니다. 요청 후 응답을 보낸 후 새로운 요청을 보낼 때마다 새로운 연결이 생성됩니다.(요청---응답) => (요청) (응답)장점: 연결을 유지하지 않기 때문에 리소스 소모가 적고, 따라서 처리가 빠릅니다.Stateless (무상태).. 이전 1 2 다음