
ERD는 언제 설계하는 것이 좋을까? 프로젝트 시작과 동시에 설계하는 것이 좋음 | 모두가 공통된 데이터베이스에 대해 인지한 후 작업하는 것이 좋음데이터베이스 설계이름 설정테이블&컬럼 이름은 모두 소문자 | 단어구분은 대소문자가 아닌 밑줄이 좋음각 엔티티 정보 중 유일한 값을 기본키로 설정하기 보다 인덱스를 따로 두는 것이 편하다.book_id, member_id → id기본 키 타입은 int가 아닌, 추후 서비스 확장을 고려해 bigint로,,,create_at, updated_at에서 datatime(6)은 밀리초 소수점 6자리까지 구분한다는 의미 (MySQL은 6자리가 최대)더보기member(회원) 테이블의 경우, status와 inactive_date를 두는 것이 좋음status : 활성/비활성 ..

오류 이유 - prisma/schema.prisma 파일에서 datasource 블록이 없기 때문에 발생해결방법 - schema.prisma에 datasource 추가// schema.prisma// 1️⃣ 데이터베이스 연결 설정datasource db { provider = "postgresql" // PostgreSQL 사용 (프로젝트에 맞게 설정) url = env("DATABASE_URL") // .env 파일에서 DB URL 가져오기}// 2️⃣ Prisma 클라이언트 생성 설정generator client { provider = "prisma-client-js"}// 3️⃣ 모델 입력model Post { id Int @id @default(autoi..
MVC 패턴(Model-View-Controller) : 각각의 역할과 관심사를 분리함으로써 모델, 뷰, 컨트롤러가 독립적으로 작동하도록 하는 것이 목적모델은 DB와 상호작용 및 비즈니스 로직 관리, 뷰는 레이아웃과 화면처리, 컨트롤러는 모델과 뷰로 명령을 전달하는 역할을 함서비스(Service): 비즈니스 로직을 서비스로 분리해 모델이 DB라는 하나의 역할만 할 수 있도록 도와줌 | 서비스를 사용함으로서 여러 부분에서 사용되는 기능을 서비스를 통해 중복 제거 가능, 모델-컨트롤러간 결합을 낮추고, 각 부분이 완전히 독립적으로 확장이 가능해짐키 파생함수(Key Derivation Function)키 스트레칭(Key Streching) : salt와 PW를 같이 해싱해 다이제스트(digest, 해시 알고리..

라우트 중복 제거하기app.route() 사용// app.route('경로명')app.route('/products') .get((req, res) => { res.json({ message: 'Product 목록 보기' }); }) .post((req, res) => { res.json({ message: 'Product 추가하기' }); }); 라우터 만들기express.Router() 사용(마무리로 app.use() 사용)const productRouter = express.Router();productRouter.route('/products') .get((req, res) => { res.json({ message: 'Product 목록 보기' }); }) .post((re..