반응형 SQLite11 바이브코딩 툴 입문 - 사용자별 To-do 데이터 분리하기: todos 테이블에 user_id 추가하기 지난 글에서는 로그인 성공 후 JWT 토큰을 발급하고, 이후 요청에서 토큰을 검증하는 기본 구조를 만들었습니다.이제 서버는 요청을 보낸 사용자가 누구인지 알 수 있습니다.로그인 성공→ JWT 토큰 발급→ Authorization: Bearer 토큰 전송→ authMiddleware에서 토큰 검증→ req.user 생성 이제 다음 단계는 자연스럽습니다.로그인한 사용자마다 자기 To-do 데이터만 보게 만드는 것.지금까지 만든 To-do 앱은 모든 사용자가 같은 데이터를 봅니다.하지만 실제 서비스에서는 이렇게 동작해야 합니다.A 사용자 → A의 할 일만 조회B 사용자 → B의 할 일만 조회A 사용자는 B의 할 일을 수정/삭제할 수 없음 이번 글에서는 todos 테이블에 user_id를 추가하고, JWT에서 .. 2026. 6. 9. 바이브코딩 툴 입문 - JWT 토큰 기초: 로그인 성공 후 토큰 발급하기 지난 글에서는 회원가입과 로그인 구조를 만들었습니다.지금까지 만든 흐름은 이렇습니다.회원가입→ users 테이블에 사용자 저장→ 비밀번호는 bcryptjs로 해시 저장로그인→ 이메일로 사용자 찾기→ 비밀번호 비교→ 맞으면 로그인 성공 응답 하지만 아직 중요한 문제가 남아 있습니다.로그인 성공 후, 서버는 다음 요청에서 이 사용자가 누구인지 어떻게 알 수 있을까?예를 들어 사용자가 로그인한 뒤 To-do 목록을 요청한다고 생각해보겠습니다.GET /api/todos 서버 입장에서는 이 요청만 보고는 알 수 없습니다.이 사람이 로그인한 사람인가?몇 번 사용자일까?이 사용자의 할 일만 보여줘도 될까? 이 문제를 해결하기 위해 많이 사용하는 방식 중 하나가 JWT 토큰입니다.이번 글에서는 로그인 성공 후 JWT .. 2026. 6. 8. 바이브코딩 툴 입문 - 회원가입과 로그인 구조 이해하기: 사용자 테이블 만들기 지난 글에서는 .env와 환경 변수를 사용해 서버 설정값을 코드 밖으로 분리했습니다.이제 프로젝트 구조는 꽤 실전형에 가까워졌습니다.server.jsdb.jsconfig.jsroutescontrollersservicesmiddlewarespublic.env 지금까지 만든 To-do 앱은 데이터를 SQLite에 저장하고, 검색·필터·정렬·페이지네이션까지 지원합니다.하지만 아직 중요한 문제가 하나 남아 있습니다.모든 사용자가 같은 To-do 목록을 본다.실제 서비스에서는 사용자마다 자기 데이터가 따로 있어야 합니다.A 사용자는 A의 할 일만 보기B 사용자는 B의 할 일만 보기로그인한 사용자만 자기 데이터 수정하기 이 구조로 가려면 먼저 회원가입과 로그인을 이해해야 합니다.이번 글에서는 사용자별 앱으로 확장하.. 2026. 6. 5. 바이브코딩 툴 입문 - 환경 변수 사용하기: PORT와 DB 경로를 .env로 분리하기 지난 글에서는 길어진 Express 서버 코드를 역할별로 나누는 리팩토링을 진행했습니다.server.jsdb.jsroutescontrollersservicesmiddlewares 이제 서버 코드는 훨씬 깔끔해졌습니다.하지만 아직 코드 안에 직접 적혀 있는 값들이 남아 있습니다.예를 들면 이런 값입니다.const PORT = 3000;filename: "./database.db" 처음에는 문제가 없어 보입니다.하지만 프로젝트가 커지고 배포 환경이 생기면 이런 값들을 코드에 직접 적어두는 방식은 불편해집니다.이번 글에서는 환경 변수(environment variables)와 .env 파일을 사용해 설정값을 코드 밖으로 분리하는 방법을 정리해보겠습니다.환경 변수란 무엇일까?환경 변수는 애플리케이션이 실행되는 .. 2026. 6. 4. 이전 1 2 3 다음 반응형