2024/11 28

내일배움캠프 5주차 WIL

지난 일주일 동안 프리즈마 스키마를 작성하고, EC2와 RDS를 연동해서 데이터베이스를 생성했다. npx prisma db push 명령어를 통해 테이블을 생성하고, GitHub에 변경 사항을 커밋했다. 이후 API 개발을 진행하면서 회원가입 및 캐릭터 생성 API를 작성했고, 정규표현식을 사용해서 아이디와 비밀번호의 유효성을 검사하는 로직을 구현했다. 마지막으로 인증 미들웨어를 구현하고, 라우터에 개별적으로 적용하는 방법을 배웠다.프리즈마 스키마를 작성하고 데이터베이스를 설정하는 과정에서 처음에는 약간 불안했지만, 테이블이 성공적으로 생성되었다. API 개발 중 정규표현식을 활용해서 아이디와 비밀번호를 검증하는 방법을 찾았을 때 더 좋은 방법을 적용할 수 있어 좋았다 (정규표현식 자체는  잘 모르지만...

WIL 2024.11.29

내일배움캠프 5주차 금요일

아이템 시뮬레이터 프로젝트개발 기간 24/11/25~24/11/28 (4일) 코드 구조 서버 설정 (app.js) Express 애플리케이션을 생성 환경 변수를 로드하여 서버를 설정 다양한 API 라우터를 /api 경로에 연결하여 회원가입, 로그인, 캐릭터, 삭제, 검색, 아이템 관련 기능 제공 지정된 포트(3000)에서 서버를 실행합니다. Prisma 스키마 Item, Accounts, Characters, Character_Inventory, Character_Items의 다섯 가지 모델 정의 Item : 아이템의 고유 ID, 코드, 이름, 스탯, 가격, 캐릭터 인벤토리와 아이템 간의 관계 설정 Accounts: 계정 정보, 이메일, 아이디, 비밀번호, 이름, 나이, 성별, 생성일시 Character..

TIL 2024.11.29

내일배움캠프 5주차 수요일 TIL

// (?=.*\d) : 최소한 1개 이상의 숫자가 포함되어야 합니다// [a-z0-9]+ : 소문자와 숫자로만 이루어져야 합니다// ^와 $ : 문자열의 시작과 끝을 의미합니다.const idForm = /^(?=.*[a-z])(?=.*\d)[a-z0-9]+$/;해당 코드로 수정하여 영어(소문자) + 숫자 가 포함된 형식으로 아이디를 생성하도록 적용하였다. // 로그인 APIimport express from "express";import { prisma } from "../utils/prisma/index.js";import bcrypt from "bcrypt";import jwt from "jsonwebtoken";const router = express.Router();router.post("/s..

TIL 2024.11.27

내일배움캠프 5주차 화요일 TIL

금일 작업 중 회원가입 API를 작성하고, 서버를 연후 인섬니아에서 입력값을 제대로 받는지 테스트하였다.{ "email" : "dbeodnjs1001@naver.com", "password" : "sfzeho2gy", "name" : "유대원", "age" : 26, "gender": "male"}해당 내용을 인섬니아 바디에 넣고 포스트하였을 때, 서버가 꺼지면서 DATABASE_URL을 제대로 읽어오지 못한다는 오류메시지가 표시되었다. env 파일에  DATABASE_URL은 양식대로 잘 적었고, DB와의 연결도 문제 없었기 때문에 튜터님의 도움을 받아 진행하였다.피드백 결과는 DATABASE_URL을 담고있는 파일이 app.js이 있는 s..

TIL 2024.11.26

내일배움캠프 5주차 월요일 TIL

쿠키?브라우저가 서버로부터 받은 정보를 클라이언트측에 저장하는 방식내가 브라우저 방문 시 쿠키를 저장한 후, 이후 방문 때 마다 브라우저는 해당 쿠키도 요청과 함께 서버로 보낸다.서버가 정한 기간에 따라 유효기간 존재한다인증뿐만 아니라 다양한 정보를 담을 수 있다.세션?서버에서 관리되는 사용자 정보를 저장하는 방식.사용자가 로그인할 때 세션 ID가 생성되고, 이 ID를 통해 사용자를 식별한다. 세션은 서버의 세션 DB에 모든 정보를 저장해야 하므로, 사용자 수가 많아질수록 데이터베이스의 부담이 커진다.서버로 가는 모든 요청은 이전 요청과 독립적으로 처리된다.요청이 끝나면 서버는 사용자의 정보를 잊어버린다. > 매 요청 시마다 사용자가 누구인지 서버에 알려줘야 한다.세션을 통한 사용자 인증 과정:사용자가 ..

TIL 2024.11.25

내일배움캠프 4주차 WIL

이번 주에는 입문 주차 강의를 실습하며 서버 구성에 대한 기본을 학습했다. 프로젝트를 직접 진행하면서 배울 것이 많았지만, 기본적인 구조에 익숙해지는데 의의를 두고 강의 1회독에 집중했다. 새로운 언어를 배우는 듯한 느낌이 들어 이해가 어렵고, 당장 혼자서 실현해내기에는 어려움이 있었다.숙련 강의에서 사전 캠프 때 그나마 잘 진행했던 SQL 관련 강의 내용을 다시 보며 드디어 써먹는구나라는 기분이 들었다. 기초적인 사용법은 프로젝트를 진행하며 막힐 때 다시 들었던 강의와 TIL을 참고하여 잘 활용할 수 있을 것 같다. 금요일에 진행한 커리어 코칭을 통해 업계의 트렌드, 취업 시장 흐름, 게임 자체에 대한 정보에 많이 노출되어야 한다는 생각이 들었다. 남는 시간에 직접 찾아보며 익숙해져야 할 것 같다.들었..

WIL 2024.11.22

내일배움캠프 4주차 금요일 TIL

이전에 사용했던 MongoDB는 비관계형 데이터베이스(NoSQL) MySQL이 바로 관계형 데이터베이스(RDB) NoSQL - 데이터 형식이 자유롭다저장(Write)과 읽기(Read) 작업이 더욱 빠르며, 복잡한 비즈니스 로직 없이 주로 데이터 읽기와 쓰기에 중점을 둔 서버에서 주로 사용 RDB - 열, 행에 데이터를 가진 테이블이 존재욱 복잡한 비즈니스 로직과 정형화된 데이터를 체계적으로 관리할 수 있어 더욱 안전한 서버 환경을 구성하기에 좋다보안이 중요한 기관이나, 은행과 같은 안전성을 중시하는 회사 MYSQL - 가장 널리 사용되는 오픈소스 관계형 데이터베이스(RDB)데이터베이스를 관리하는 가장 대표적인 언어인 SQL(Structured Query Language)을 사용하여 데이터를 조작하고 관리..

TIL 2024.11.22

내일배움캠프 4주차 목요일 TIL

eq.body - 회원가입 및 생성 수정 조회 할때 클라이언트에서 보낸 정보를 기준으로 사용해야 할때req.params - ID가 필요할때.req.query - 정렬 할때.req.cookies - 쿠키가져올때req.get(header) - 헤더에 저장된 값을 가져오고 싶을때res.status - HTTP 상태 전달res.send - 데이터를 포함하여 Response를 전달res.json(JSON) - Json 형식으로 Response를 전달res.redirect(주소) : 리다이렉트할 주소와 함께 Response를 전달합니다.res.cookie(key,value,option) - 쿠키를 설정할 때 사용합니다.res.clearCookie(key,value,option) - 쿠키를 제거할 때 사용합니다.ba..

카테고리 없음 2024.11.21

내일배움캠프 4주차 수요일 TIL

Express.js에서 요청과 응답 객체의 역할요청 객체(req)는 클라이언트가 보낸 요청에 대한 정보응답 객체(res)는 서버가 클라이언트에게 보낼 응답을 구성하는 데 사용요청 객체는 손님이 음식점에 주문할 때 전달하는 주문서와 같고, 응답 객체는 주방에서 준비한 음식을 손님에게 전달하는 역할.Express.js에서 미들웨어의 역할미들웨어는 요청과 응답 사이에서 특정 작업을 수행하는 함수요청을 로깅하거나, 인증을 확인하거나, 요청 데이터를 파싱하는 등의 역할미들웨어는 음식점의 주방에서 요리를 준비하는 셰프셰프는 손님이 주문한 음식을 만들기 위해 여러 재료를 준비하고 조리하는 과정을 거친다const schema = Joi.object({    name: Joi.string().min(3).max(30)...

카테고리 없음 2024.11.20