백엔드 (24) 썸네일형 리스트형 아주 쉽게 NestJS 백엔드 서버 만들어보기 자바의 스프링, 파이썬의 장고, 자바스크립트의 익스프레스 이 세가지 프레임워크들은 모두 각 언어의 백엔드 프레임워크입니다. 그리고 NestJS도 익스프레스와 같이 자바스크립트의 백엔드 프레임워크입니다. NestJS에 대해서는 더 소개할 내용들이 많지만, 간단하게 백엔드 서버를 하나 만들어보고 난 뒤에 다시 이야기해보도록 하겠습니다. NestJS를 사용하기 위해서는 우선 NodeJS가 설치되어있어야 합니다. https://nodejs.org/ko Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 위 링크에서 NodeJS LTS 버전을 다운받아주세요. 여기서 왼쪽 것을 다운받으면 됩니다. 최신버.. NestJS에서 MariaDB에 유저 정보 저장하기 들어가기에 앞서, 본 포스팅에서 사용한 MariaDB는 Docker를 활용해서 구동했습니다. NestJS에서는 TypeORM을 통해 DB와 NestJS를 연동합니다. ORM(Object Relational Mapping)은 이름 그대로 객체와 관계를 매핑해줍니다. 이렇게 매핑을 하게 되면 Nest에서 작성한 코드를 바탕으로 SQL을 생성하여 DB에 적용시켜줍니다. 말로만 하면 이해가 잘 안되니까 직접 해봅시다. npm install --save @nestjs/typeorm typeorm mysql2 @nestjs/config 우선 위 명령어를 입력하여 TypeORM을 설치합니다. DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASS=1111 DB_DATABASE=t.. 리액트에서 axios로 POST 요청할 때 401 오류 해결 후기(feat : object형 데이터 사용 오류) ReactJS와 NestJS를 이용하여 프로젝트를 제작중인데 로그인 기능 구현 도중 오류를 만났다. axios를 이용해 id정보와 password 정보를 서버로 post 했는데 브라우저에서 401 오류를 반환한 것이다. 오류 해결을 위해서 구글링을 진행했고 이런 저런 해결 방법들을 찾아 시도해보았지만 해결이 불가능했다. 1시간 가량을 삽질하던 중 object형 데이터에서 key와 value가 같다면 value만 적어도 된다는 글을 발견했다. // 이 코드를 let body = { username: id, password: password }; // 이렇게 바꿀 수 있다. let body = { id, password }; 참고로 로그인관련 코드를 구글링하면서 만들고 있었는데 내 원래 코드는 아래와 같았다.. 멋쟁이사자처럼 테킷 백엔드 자바, 신청과 선정 후기 부트캠프에 한번쯤 참가해보고 싶었는데, 마침 멋쟁이사자처럼에서 운영하는 테킷에서 백엔드 부트캠프를 한다는 사실을 알게되었다. 항해99와 싸피 등 다른 부트캠프도 많았지만 본인의 나이와 할애 가능한 시간 등의 이유로 테킷의 백엔드 코스를 선택하게 되었다. 테킷에서 진행하는 자바 백엔드 부트캠프는 5개월 가량 자바 강의를 듣고, 프로젝트를 진행할 수 있는 과정이었는데, 부트캠프는 처음이라 이게 어느정도 퀄리티일지 궁금해서 후기를 검색해봤지만 애초에 아직 몇 번 진행하지 않은 부트캠프라서 그런지 후기를 찾아보기 어려웠고 데이터가 많이 부족한 상태에서 자바 백엔드 과정을 지원하게 되었다. https://techit.education/ TECHIT BY LIKELION IT분야의 TECH 인재를 키우는 교육 커뮤.. nodejs에 웹소켓으로 채팅 기능 구현하기 1. 개요 socket.io 를 이용해서 실시간 채팅 기능을 구현 단체 채팅 및 1:1 채팅 기능 구현 2. 코드 (1) server.js // 누가 웹소켓 접속하면 코드 실행 io.on('connection', function(socket){ console.log('유저 접속됨'); console.log(socket.id); // room1-send 이벤트 발생 시 코드 실행 socket.on('room1-send', function(data){ // room1 채팅방 내 모든 사람들에게 메시지 전송 io.to('room1').emit('broadcast', data); }); // joinroom 이벤트 발생 시 코드 실행 socket.on('joinroom', function(data){ // 채팅.. nodejs에서 웹소켓 기능 구현하기 1. 개요 서버 - 유저 실시간 양방향 통신 가능 2. 설치 npm install socket.io 소켓 라이브러리 설치 // 소켓 사용 설정 const http = require('http').createServer(app); const {server} = require('socket.io'); const io = new Server(http); server.js파일에 위 설정 추가 http.listen(process.env.PORT, function () { console.log("db connected"); }); 원래 app.listen이었는데 http.listen으로 바꿔주기 3. 코드 (1) socket.ejs socket.ejs파일 만들기 채팅방 서버에 메시지 보내기 body태그에 위 코드들.. nodejs로 실시간 채팅 기능 만들기 1. 개요 실시간으로 DB데이터를 가져오는 방법을 알아야 함 2. 알고리즘 서버랑 유저랑 실시간 소통채널(Server Sent Events)을 열어야 함 서버가 유저에게 일방적으로 데이터 실시간 전송 가능 HTTP 요청시 몰래 전달되는 정보들이 있음(유저의 언어, 브라우저 정보, 쿠키, 위치정보 등) 이런 정보는 Header에 담겨있음 이 Header를 수정하면 서버와 유저간 실시간 소통 창구 열 수 있음 MongoDB Change Stream이란거 쓰면 DB가 업데이트될때마다 유저에게 데이터 쏴줄 수 있음 3. 코드 (1) server.js // 서버-유저 실시간 소통 코드 app.get("/message/:id", 로그인했니, function (req, res) { // Header 셋팅 res.wr.. nodejs로 채팅방 기능 만들기 1. 개요 게시글 간의 종속관계를 알아야 함 채팅기능 = 댓글기능 + 실시간 통신임 채팅방에 접속 후 메시지 전송 게시글에 접속 후 댓글을 달기 2. 알고리즘 채팅과 유사한 댓글기능에는 댓글 게시글에 부모 게시물이 뭔지도 기록되어 있어야 함 = document끼리 종속 관계 맺는 방법임 채팅 기능 버튼 누르면 채팅방 게시물 발행 댓글(메시지) 게시물 남길 수 있게 하면 됨 이때 댓글에는 부모 게시물이 뭔지를 알아야 함 3. 코드 (1) chat.ejs 채팅 페이지 만들기 ! 채팅방1 내용 채팅방1 내용 채팅방1 내용 전송 (2) server.js 요청받은 URL을 통해 데이터를 DB에 저장 // 채팅 기능 코드 app.post("/chatNow", 로그인했니, function (req, res) { //.. 이전 1 2 3 다음 목록 더보기