node.js

    JavaScript - 함수

    JavaScript의 함수는 다른 모든 객체 처럼 속성과 메소드를 가질 수 있으므로, 일급(First-class) 객체입니다. 다른 객체와 함수를 구별 하는 것은 함수는 호출할 수 있다는 점입니다. 즉, Function 객체 입니다. Function 객체 new Function([arg1[, arg2[, ...argN]],] functionBody) arg1, arg2, ... argN 쉼표로 구분한 유효한 식별자 목록이어야 한다. functionBody 함수 정의를 구성하는 JavaScript 문을 담은 문자열. new 연산자를 사용하지 않고 함수로써 Function을 호출하는 것은 생성자를 호출하는 것과 같습니다. 하지만, new 연산자가 제거됨으로써 코드의 크기를 약간(4 바이트 작게) 줄일 수 있..

    socket.io 실시간 chat API 서버 (Node.js, Socket.io, Redis)

    socket.io 실시간 chat API 서버 (Node.js, Socket.io, Redis)

    이전 포스팅을 봤을 때, node-multiroom-chat 레포지토리에 대한 내용만 기술하고, HJ커뮤니티에서 마무리 했던 ChatServer 레포지토리의 대한 내용을 기술하지 않아서 이번 기회에 포스팅 하게되었습니다. https://github.com/geun9716/ChatServer GitHub - geun9716/ChatServer: A Template ChatServer using socket.io, cluster, redis A Template ChatServer using socket.io, cluster, redis - GitHub - geun9716/ChatServer: A Template ChatServer using socket.io, cluster, redis github.com ..

    Nest JS 프레임워크 공부하기 (Node.js) - 3 [DTO, DAO, Entity]

    Nest JS 프레임워크 공부하기 (Node.js) - 3 [DTO, DAO, Entity]

    오늘은 프레임워크에 좀 더 상세히 알아보면서 모듈로 관리하는 방법에 대해 알아보도록 하자. DB까지 접근하기 위한 Framework의 구조는 주로 다음과 같이 구성되며 이전에 Contorller, Service, Repository에 대한 설명을 했었다. [이전 글 참조 : https://roothyo.tistory.com/56?category=1034781] 간단히 설명하자면, Contoller : 해당 서버로 요청이 오는 것을 처리해주는 Router 기능 Service : 유저가 요청한 데이터를 실질적으로 처리하고 Controller에게 건네주는 기능 Repository : 서버에서 DB로 직접 접근하여 데이터를 가져오는 기능 이라고 보면 된다. 그럼 그냥 Framework를 위와 같이 3개의 구조로..

    Nest JS 프레임워크 공부하기 (Node.js) - 2

    Nest JS 프레임워크 공부하기 (Node.js) - 2

    오늘은 Service에 대해 알아보려 한다. Nest는 객체지향적 방식으로 종속성을 설계하기 때문에 서비스, 리포지토리, 팩토리, 헬퍼 등이 프로바이더로 취급되며 사용된다. 서버에서의 처리 과정을 다음과 같이 크게 3가지로 분리된다. Controller - 클라이언트의 요청을 받음 - 요청에 대한 처리는 서비스에게 전담 - 클라이언트에게 응답 Service - 사용자의 요구사항 처리 - DB 정보가 필요한 경우 Repository에게 전담 Repository - DB 관리(연결, 해제, 자원 관리) - DB CRUD 작업 처리 그럼, Nest.js에서 Service를 구현하는 것을 알아보자. 먼저, Nest CLI를 통해 Service를 생성해준다. 서비스 name은 controller와 똑같이 movi..

    Nest JS 프레임워크 공부하기 (Node.js) - 1

    Nest JS 프레임워크 공부하기 (Node.js) - 1

    npm install -g @nest/cli nest new nestJS 시작에 앞서 nest/cli를 npm을 통해 설치를 하고 nest 명령어를 통해 새 프로젝트를 생성한다. npm과 yarn중에 편한 것을 고르면 된다. 필자는 npm을 사용하였다. 처음에 패키지를 시작하기 위해 설치를 하는데 시간이 걸리니까 잠깐 기다리면 알아서 구조와 필요한 dependency를 설치해준다. 만들어진 nest-js 디렉토리를 vscode로 열고 src 파일을 보면 코드 구조는 다음과 같으며, 각각의 설명이 있다. src ㄴapp.controller.spec.ts app.controller.ts app.module.ts app.service.ts main.ts app.controller.ts 하나의 라우트가 있는 기..

    Nest JS 프레임워크 공부하기 (Node.js) - 0

    서비스를 구현하기 위해 처음으로 배웠던 기술 스택은 Node.js였다. 당시에는 구현을 할 수 있으면 된다고 생각했고, 가볍게 구현하기 쉽다는 소리를 들었기 때문이다. 또한 프론트에서도 js 백엔드에서도 js를 활용하면 1가지 언어로 2가지를 다 구현 가능한 것이 마음에 들어 시작하게 되었다. 3학년과 4학년 동안 꾸준히 서비스를 만들어보고, 해커톤도 나가보니, 점점 코드의 체계적인 구조가 필요하다는 것을 깨닫았고, 당시에는 따로 프레임워크를 배우지 않고, 주로 사용하는 구조를 직접 나누고 구현했다. 물론 Java Spring이나 Nest.js에 대해 들어보기도 했으나, 당시 새로운 기술을 배우고 적용할 시간이 부족할 뿐더러 아직 필요성을 느끼지 못했다. 그러나 졸업학기가 되고 취직 준비를 하면서 기업의..

    socket.io 실시간 chat 구현 (react - Node.js)  - (1)

    socket.io 실시간 chat 구현 (react - Node.js) - (1)

    채팅과 같은 통신 시스템은 2가지 Protocol 방식으로 나뉘어 진다. 2가지 방식에 대한 자세한 설명은 다음을 참조하기 바란다.(https://roothyo.tistory.com/5?category=952607) 간단하게 설명하자면, TCP - 신뢰성 있는 통신을 제공 - UDP에 비해 시간이 더 걸림. - Stream 방식으로 통신 - smtp, http, ... UDP - TCP에 비해 지연시간이 거의 없음. 주로 반응속도가 중요한 시스템에 적용. - 신뢰성 있는 통신을 제공하지 못함. - DataGram 방식으로 통신 - 게임, 동영상, ... 등 실시간 채팅은 주로 TCP로 구성되며 위에 있는 메소드의 대한 각 설명은 다음과 같다. socket() : 소켓 생성 bind() : 소켓에 주소 할..