2024/07 119

node> 이미지 업로드 기능 만들기 (AWS S3 셋팅)

유저가 글작성시 이미지를 업로드할 수 있게 만들어봅시다.업로드한 이미지를 하드디스크에 저장해놓고 필요할 때 보여주면 될텐데 클라우드에 올리다보면 하드디스크 사용이 어려울 수 있을 때가 있어서 AWS S3같은 파일저장용 클라우드 서비스 빌려서 거기 업로드해놓는게 좋습니다. 첫가입시 카드등록까지 마치면 S3는 무료로 5GB까지 1년 이용가능하니까AWS S3 사용해서 이미지 파일 올리는 법을 좀 알아봅시다. 실은 구글 클라우드가 약간 더 싼데 사람들이 AWS를 좋아해서 그거나 씁시다.      Access 키 발급 일단 AWS 사이트 들어가서 가입하고 카드등록까지 마칩시다. 이제 서버에서 AWS기능을 이용하고 싶으면서버파일에서 코드짤 때 Access key가 하나 필요합니다. 그거 발급하려면 AWS 사이트 상..

Node.js 2024.07.27

기타 팁> 라우터를 구분해서 사용하면 용이하다

코드의 구조를 간단하게 하기 위해 공통 기능을 미들웨어로 추출하고, 각 기능을 모듈화할 수 있습니다. 아래는 개선된 버전으로, 공통 기능을 미들웨어로 분리하고 라우트 핸들러를 별도의 파일로 분리한 예입니다. 1. 환경 변수 설정 파일 (.env) DB_URL=mongodb+srv://hjw1191:zxc123@hjw1191.zaqklsn.mongodb.net/?retryWrites=true&w=majority&appName=hjw1191 PORT=8080 SESSION_SECRET=세션 암호화 비번~~2. 서버 설정 파일 (server.js)// server.js const express = require('express'); const app = express(); const session = requ..

기타 2024.07.26

node>환경변수 / 미들웨어

지금까지 코드 작성한 것 중에세션암호화비번, DB 접속용 URL 이런 것들은 여러분이랑 저랑 좀 다르겠죠?이렇게 유저나 컴퓨터에 따라서 좀 달라져야하는 가변적인 변수들을 환경변수라고 부릅니다. 이런 환경변수들은 서버파일에 하드코딩해놓는거보다 따로 별도의 파일에 보관하는게 좋습니다.그래야 나중에 사람들이랑 소스코드 공유할 때도 비번유출같은게 없으니까 안전하고클라우드에 서버를 배포할 때도 좀 편리하게 소스코드를 올릴 수 있습니다.     .env 파일에 환경변수 보관하려면 그래서 환경변수들은 보통 .env 파일에 보관하는데 그걸 쓰려면  npm install dotenv  1. 일단 터미널 열어서 dotenv 설치하고   require('dotenv').config() 서버파일 상단에 아무데나 추가하면 됩니..

Node.js 2024.07.26

node> 회원기능 만들기 (passport, 로그인기능,세션,가입기능, connect-mongo)

사이트에 회원기능이 필요하면 회원기능 만들면 되는데많은 상황에서 가장 기본은 할 수 있는 인증방식이 바로 역사와 전통의 session 방식 회원인증이기 때문에session 방식으로 회원기능을 구현해봅시다.  직접 처음부터 쌩으로 코드짜서 구현하려면대충 이런 스텝으로 코드를 짜면 되는데 1. 가입기능부터 만듭니다.유저가 입력한 아이디/비번을 DB에 저장해두는게 가입기능 끝 아닙니까 2. 로그인기능 만들면 됩니다. 로그인폼에서 아이디/비번을 제출하면 DB에 있는거랑 일치하는지 확인하고 일치하면 세션을 하나 만들어줍니다. 3. 세션이뭐냐면 그냥 DB에 document 하나 발행해주는 것일 뿐입니다.document에 "어떤 유저가 로그인했었고 걔 유효기간은 1월 30일까지다~" 이런거 기록해둡니다.  4. 세션..

Node.js 2024.07.26

node>회원기능 (JWT, session, OAuth 설명시간)

회원기능 동작방식  예를 들어 게시물들을 로그인한 사람만 볼 수 있게 만든다고 칩시다. 그럼 회원기능이 필요한데 어떤 식으로 회원기능을 만들면 되냐면 회원가입 : 1. 유저가 가입하면 아이디/비번을 DB에 저장해둠  로그인 : 1. 유저가 로그인시 아이디/비번을 서버로 보냄 2. 서버는 DB에 있는 아이디/비번과 유저가 보낸 아이디/비번이 일치하는 경우 입장권을 발급해줌  로그인이 필요한 서버기능 : 1. 유저는 서버에 GET/POST로 데이터 요청시 입장권도 함께 제시함 2. 서버는 입장권 확인 후 데이터나 페이지 보내줌 이런거 만들어두면 회원기능 끝입니다. 아이디/비번 이런거 DB에 저장하는건 여러분도 할 수 있으니까 패스하고오늘은 입장권을 어떤 식으로 만드는지 알아봅시다.      입장권이 뭐냐면 ..

Node.js 2024.07.25

node>글목록 여러 페이지로 나누기

pagination 지금은 글이 100개 있으면 아마 이렇게 하면 100개 전부 가져와서 보여주도록 코드짜놨는데 근데 그러면 DB쨩도 부담되고 유저 브라우저도 좀 부담이 되지 않겠습니까그래서 보통 웹서비스들은 글이 너무 많으면 글을 여러 페이지로 쪼개놓는데이걸 pagination이라고 부릅니다. 같이 만들어봅시다.  당연히 페이지네이션 만드는 강의를 들어야 만들 수 있는게 아니라 한글로 기능설명부터 하고 알아서 코드짜면 되는데 어떻게 돌아가는지 모르겠으면 다른 사이트를 참고하면 되는 것이고요  1. 일단 페이지 이동 버튼들을 만들어둡니다 2. 버튼1 누르면 첫글부터 5번째글 들어있는 페이지 보여주고 버튼2 누르면 6번째글부터 10번째글 들어있는 페이지 보여주고하면 끝입니다.  저는 글이 13개 있어서 그..

Node.js 2024.07.25

node>요약

node 1. server.js 파일을 하나 만들어줍시다.  거기다가 서버코드짤 것임  2. 에디터 상단 terminal 눌러서 터미널을 열 수 있는데 거기다가 npm init -y 를 입력합시다.  package.json 파일 생성해주는 명령어입니다.    3. 터미널에 npm install express를 입력합시다.  express라는 라이브러리를 설치하는 명령어입니다.  4.npm install -g nodemon  npx nodemon server.js  5. server.js 파일안에 서버코드 작성 const express = require('express') const app = express() app.use(express.static(__dirname + '/public')); app.s..

Node.js 2024.07.25