목록백엔드 (17)
프로그래밍 공부방

🐥우분투에서 Git 리포지토리 가져오기 안녕하세요. 우분투에서 git clone하는 방법에 대해서 알아보겠습니다. 1. 깃허브에서 clone할 리포지토리의 주소를 복사합니다. 2. 우분투에 접속한 후 git을 설치해줍니다. $ sudo apt install git 3. git clone [위에서 복사한 주소] 을 해줍니다. git clone을 하면 아래와 같이 Username와 Password 입력창이 뜹니다. - Username에는 본인의 깃허브 유저네임을 적어주세요. - Password에는 깃허브 personal access token을 적어주세요. personal access token 만드는 방법을 모르신다면 👉깃허브 Personal access token 만들기 [Git] Personal acc..
🔥에러 내용: The provided value for the column is too long for the column's type prisma 이미지를 추가하기 위해서 이미지의 url을 넣어주는 작업을 하던 도중에 오류가 발생했습니다. 🤷♀️Why?🤷♀️ 저장할 데이터의 길이가 지정한 type의 크기보다 크기 때문에 발생한 오류입니다. ✨해결 방법 model User { ... avatar String? @db.Text ... } @db.Text를 추가해줘서더 긴 길이의 데이터를 넣을 수 있게 해주었습니다.
다른 분들이 저와 같은 문제를 겪지 않기를 바라고, 저도 이번 경험을 확실히 기억하기 위해 적는 포스팅입니다..! 일단 저는 AWS의 S3를 사용하고 있었고, 코드로 작성한 내용은 깃허브에 올라가고 있는 상황이였습니다. AWS를 처음 사용했기 때문에 Key의 중요성에 대해 잘 몰랐던 저는 Key를 환경변수 처리를 하지 않고 깃허브에 올려버렸습니다ㅠㅠ 그 이후로 AWS에서 이메일이 왔더라구요. 저는 별 거 아닌 이메일일 거라고 생각해 읽지 않았습니다. 근데 제 Key가 노출되어 위험하다는 내용이였습니다.. 후 ( AWS에서 날아오는 이메일은... 꼭 확인하시기를....) 그걸 읽고 바로 결제 대시보드를 확인했는데 50만원이 찍혀있더라구요?!?!?!?😲 진짜 금액 보자마자 기절할 뻔했습니다. 일단 Key가 ..

우선 회원가입을 할 때 입력받은 패스워드를 암호화해서 db에 넣어야겠죠? 그렇기 때문에 회원가입 코드에서 패스워드를 암호화하는 작업을 해줍니다. 사용한 패스워드 암호화 방식은 bcrypt 모듈을 이용한 단방향 암호화입니다. 단방향 암호화이기 때문에 복호화를 해서 원래의 패스워드는 확인이 불가능합니다! 원래는 아이디는 양방향 암호화를 해서 넣으려고 했지만 그렇게 되면 아이디 중복 등과 같이 비교를 할 때 힘들어질 것 같아서 따로 암호화는 하지 않았습니다. 단방향 암호화: 암호화를 한 후에 다시 복호화하는 것이 불가능하다. 양방향 암호화: 암호화를 한 후에 다시 복호화하는 것이 가능하다. bcrypt로 패스워드 암호화 bcrypt.hashSync() /* signup.js */ const express = ..
클라이언트 측에서 httpRequest를 서버로 보낸 후 서버에서 request를 하려고 하는데 문제가 생겼습니다. 왜 문제가 생겼을까요? 코드는 아래와 같습니다. /* signup.js 클라이언트 코드*/ signup_btn.addEventListener("click", function(e) { if(pw.value && pw.value === pw_check.value){ // pw값과 pw체크값이 같다면 if (id.value == ''){ // id 값이 비어있다면 alert("아이디를 입력하세요"); } else { // id값이 비어있지 않다면 makeRequest('http://localhost:5000/signup/process', id.value, pw.value); } }else{ //..

로그인 기능을 구현하기 위해서 먼저 세션을 공부해보겠습니다! 먼저 아래와 같이 입력해서 설치해주세요. npm install -s express-session npm install express-mysql-session MYSQL 세션 저장 저는 mysql에 세션을 저장하는 방식을 이용했습니다. 그렇기 때문에 mysql도 미리 설치를 해주고 시작해주세요. options에는 본인 데이터베이스의 포트번호와 패스워드 등을 입력해주세요. const session = require("express-session"); const MySQLStore = require('express-mysql-session')(session); var options = { host: "localhost", port: 포트번호, use..

HTML 파일에서 중복으로 사용되는 부분을 계속 코드를 작성해서 따로 넣어주기에는 비효율적인 일입니다. 따라서 ejs파일로 만들어서 html 파일 안에 다른 html 코드를 include 해주도록 하겠습니다. 1. app.js 코드 var fs = require('fs'); const ejs = require("ejs"); app.get('/', function(req, res){ fs.readFile('./views/index.ejs', "utf-8", function(error, data){ res.writeHead(200, {'Content-Type': 'text/html' }); res.end(ejs.render(data)); }) }) ejs를 사용하기 위해서 ejs 모듈을 require 해주세..

저는 식물 커뮤니티 프로젝트를 진행하고 있었습니다. 문제없이 잘 진행하고 있다가 openAPI에서 값을 받아온 후 화면에 출력하는 과정에서 문제가 생겼는데...ㅠ 바로 CORS 에러!!!!!!!!!!! 동일한 출처일 땐 자원에 접근할 권한이 주어지지만 그렇지 않을 때는 권한이 없기 때문에 생기는 에러입니다. 프론트엔드쪽만 공부하면서 개발하고 있었기 때문에 이 문제도 프론트엔드 상에서 해결하려고 했습니다. 하지만.. 실패... !!!!!!! -_-.... 저는 클라이언트쪽에서 공공데이터포털쪽 서버로 XMLHttpRequest를 이용해서 바로 데이터를 요청했습니다. 그렇게 한 결과 위에 사진처럼 cors 에러가 생겼죠 좀 더 알아보니깐 cors 에러를 해결하려면 서버 측에서 코드를 수정해야했습니다. 저는 기..