Node.js 18

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

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

Node.js 2024.07.27

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

node>삭제기능 만들기 (AJAX, query string,dataset, AJAX 추가 내용)

글 삭제기능도 만들어봅시다.기능이 어떻게 동작하는지 글로 정리부터 해보면"글마다 있는 삭제버튼 누르면 DB에 있는 document 삭제하기"가 끝인데 근데 유저가 직접 DB를 조작하면 위험하니까 중간에 서버를 거치도록 합시다.  1. 글마다 삭제버튼이 있는데 누르면2. 서버로 이 글 삭제해달라고 요청을 날리고 3. 서버는 확인 후 DB에 있는 document 삭제 이러면 될 것 같습니다. 그리고 이런거 작성할 때 상세할 수록 더 좋은 코드 작성이 가능합니다.       AJAX  삭제기능은 똑같이 만들면 재미없으니까 좀 다르게 만들어보도록 합시다. 여러분들 서버로 GET요청 POST요청 날리는 법 배웠죠? 주소창에 URL 입력하거나 을 전송하거나 하면 됩니다.근데 그런걸로 요청을 날리면 항상 새로고침이 ..

Node.js 2024.07.25

node> 수정기능 만들기 (method-override, MongoDB 수정문법 추가)

글 수정기능을 만들어볼건데 실은 수정기능 만드는건 상세페이지 했던거랑 약간 비슷한 것 같은데 실력향상을 원하시면 강의끄고 직접 글 수정기능 만들어봅시다. 혼자 코드를 짜봐야 혼자 코드짜는 실력이 늡니다.  겁쟁이들은 저랑같이 해보고요      수정기능이 뭐냐면 수정기능이 뭔지 한글로 설명부터 해봅시다.다들 게시판서비스에서 글 수정같은거 해봤을거 아닙니까 1. 글마다 있는 수정버튼 누르면 글수정할 수 있는 페이지로 이동2. 그 페이지엔 글의 제목과 내용이 이미 폼에 채워져있어야함3. 전송누르면 그걸로 기존에 있던 document를 수정해줌 여기서 모르는건 기존 document 수정하는 법 정도인 것 같은데 1번부터 해보도록 합시다.      1. 글마다 있는 수정버튼 누르면 글 수정페이지 이동 버튼누르면 ..

Node.js 2024.07.25

node>상세페이지 만들기 (URL parameter,링크 만들기)

게시판의 경우에 글제목 누르면 상세페이지 같은걸로 이동하지 않습니까 그래서 우리도 글마다 상세페이지를 만들어봅시다.한글로 기능설명부터하면 되는데근데 내가 그 기능이 어떻게 돌아가는지 몰라서 한글로 설명도 못하겠으면  다른 사이트의 상세페이지 기능은 어떻게 돌아가고 있는지 살펴보면 됩니다.     네이버 Vibe라는 음악감상하는 사이트인데 곡을 누르면 곡마다 상세페이지가 있습니다.  근데 URL 주목해보시면  /track/곡번호  이렇게 접속하면 거기에 맞는 곡의 상세페이지를 보여주는 식으로 만들어놨군요. 여기말고도 다른 서비스의 상세페이지들도 다 비슷하게 동작할걸요.그래서 우리도 요 시스템을 카피해보도록 합시다. 누가 /detail/글번호로 접속하면 그 글번호를 가진 글의 상세페이지를 보여줍시다. 자 지..

Node.js 2024.07.25

node>글 작성기능 만들기 (POST 요청,insertOne, 예외 처리)

글쓰기 기능을 만들어볼건데알아서 한번 코드 짜보시면 되겠습니다. 안배운건데 코드를 어떻게 짜냐고요? 첨보는 기능하나 만들라고 했을 때 어떻게 해야되냐면 - 기능이 어떻게 동작하는지 한글로 상세히 정리부터 하고- 그걸 코드로 번역하기  이렇게 하면 처음보는 기능도 알아서 잘 만들 수 있습니다. 숙련된 프로그래머들도 다들 이렇게 합니다. 자바스크립트 기초강의에서 맨날 연습하던 것임      글작성 기능이 어떻게 동작하는지 정리부터 글작성기능은유저가 작성한 글을 DB에 저장하면 그게 글쓰기 기능 끝아니겠습니까이렇게 써놓고 그대로 코드로 번역만 하면 될거같은데  이렇게 코드짜면 금방 서비스 종료한다고 했습니다. 유저가 DB와 직접 통신하게 냅두면 유저가 DB에 이상한 짓을 할 수도 있기 때문에DB조작이 필요한 ..

Node.js 2024.07.25