반응형
💡 “로그인 버튼 누르면 어떻게 사용자 정보를 확인할까?”
사용자가 로그인 버튼을 눌렀어요.
그러면 서버는 사용자가 입력한 ID와 비밀번호를 확인한 뒤,
정상적이면 홈 화면으로 보내주죠!
그런데 질문! ❓
“서버는 사용자 정보를 어디서 확인한 걸까?”
정답은 바로 데이터베이스(Database)!
그리고 오늘은, 서버와 DB가 어떻게 연결되고,
데이터를 주고받는지 알려드릴게요. 😊
🗃️ 데이터베이스(Database)란?
DB는 말 그대로 데이터를 저장해두는 창고예요.
📌 예:
- 사용자 정보
- 상품 목록
- 주문 내역
- 게시글 등
📦 우리는 DB에 정보를 저장하고 꺼내오며 웹 서비스를 운영합니다.
🌐 서버와 DB 연결 구조는 이렇게 생겼어요!
[클라이언트] → [서버] → [데이터베이스] ↑↓ SQL(질의문) 주고받기
- 사용자가 요청
- 서버가 DB에 SQL로 요청
- DB가 결과를 전달
- 서버가 결과를 사용자에게 응답
🔗 DB 연결에 필요한 요소들
1. DB 주소 (host)
서버가 어느 DB에 연결할지 지정 (예: localhost, aws-rds.com)
2. 포트(port)
DB가 열려있는 통신 번호 (기본: MySQL은 3306, PostgreSQL은 5432)
3. 계정 정보 (user, password)
DB에 접근하기 위한 로그인 정보
4. DB 이름 (database)
서버가 접근할 데이터베이스의 이름
💡 실제 연결 예시 (Node.js + MySQL)
const mysql = require('mysql2');
const connection = mysql.createConnection({ host: 'localhost', user: 'admin', password: '1234', database: 'my_app' });
연결 후엔 SELECT, INSERT 등의 SQL을 사용해 데이터를 주고받습니다.
🧾 SQL이란?
SQL(Structured Query Language)은
DB와 대화할 수 있는 언어예요.
📌 주요 명령어:
- SELECT: 데이터 조회
- INSERT: 데이터 추가
- UPDATE: 데이터 수정
- DELETE: 데이터 삭제
SELECT * FROM users WHERE email = 'abc@xyz.com';
⚙️ ORM이란?
ORM(Object Relational Mapping)은
SQL 없이도 프로그래밍 언어로 DB를 다룰 수 있게 해주는 도구예요!
예: Sequelize, TypeORM, Prisma
📦 코드 예시:
const user = await User.findOne({ where: { email: 'abc@xyz.com' } });
- SQL을 쓰지 않아도 데이터를 가져올 수 있음!
- 코드를 객체 중심으로 짤 수 있어 가독성이 높아짐
✅ 서버와 DB 연결 시 체크할 점
항목 | 이유 |
DB 계정 & 권한 설정 | 보안 위험 방지 |
연결 상태 모니터링 | 연결 끊김 또는 지연 방지 |
예외 처리 필수 | DB 장애 시 서버 다운 방지 |
커넥션 풀 사용 | 동시에 많은 요청 처리 효율성 향상 |
🧠 정리 한마디!
- DB는 데이터를 저장하는 공간,
- 서버는 그 데이터를 꺼내서 사용자에게 보여주는 역할
- 서버는 SQL 또는 ORM을 통해 DB와 통신하며,
- DB 연결 시에는 보안과 성능까지 꼭 고려해야 해요!
📌 다음 예고: “세션과 쿠키는 뭐가 다를까? 로그인 유지의 원리!”
- 사용자가 로그인한 상태를 어떻게 기억할까?
- 세션 vs 쿠키의 차이점과 사용법
- JWT와의 차이까지 한 번에 정리!
[서버 기초] 세션 vs 쿠키? 로그인 상태는 어떻게 유지될까?
💡“로그인했더니 계속 로그인 상태가 유지되네?”어제 로그인한 사이트에 오늘도 들어갔는데,로그아웃하지 않았더니 여전히 로그인 상태! 😲이런 '상태 유지’는 도대체 어떻게 되는 걸까요
it-afternoon.tistory.com
반응형
'개발 공부 > 서버' 카테고리의 다른 글
[서버 기초] CORS란? 프론트에서 서버 요청이 막히는 진짜 이유 (0) | 2025.04.09 |
---|---|
[서버 기초] 세션 vs 쿠키? 로그인 상태는 어떻게 유지될까? (0) | 2025.04.08 |
[서버 기초] 서버 로그란? 에러 추적부터 실전 로그 분석까지! (0) | 2025.04.04 |
[서버 기초] CDN이란? 전 세계 어디서든 웹이 빠른 이유! (0) | 2025.04.03 |
[서버 기초] 로컬 서버 vs 프로덕션 서버, 배포는 어떻게 하나요? (0) | 2025.04.02 |