본문 바로가기
개발 공부/서버

[서버 기초] 서버와 데이터베이스는 어떻게 연결될까?

by 악마의 개발자 2025. 4. 7.
반응형


💡 “로그인 버튼 누르면 어떻게 사용자 정보를 확인할까?”

사용자가 로그인 버튼을 눌렀어요.
그러면 서버는 사용자가 입력한 ID와 비밀번호를 확인한 뒤,
정상적이면 홈 화면으로 보내주죠!

그런데 질문! ❓

“서버는 사용자 정보를 어디서 확인한 걸까?”

정답은 바로 데이터베이스(Database)!
그리고 오늘은, 서버와 DB가 어떻게 연결되고,
데이터를 주고받는지 알려드릴게요. 😊


🗃️ 데이터베이스(Database)란?

DB는 말 그대로 데이터를 저장해두는 창고예요.

📌 예:

  • 사용자 정보
  • 상품 목록
  • 주문 내역
  • 게시글 등

📦 우리는 DB에 정보를 저장하고 꺼내오며 웹 서비스를 운영합니다.


🌐 서버와 DB 연결 구조는 이렇게 생겼어요!

[클라이언트] → [서버] → [데이터베이스] ↑↓ SQL(질의문) 주고받기
  1. 사용자가 요청
  2. 서버가 DB에 SQL로 요청
  3. DB가 결과를 전달
  4. 서버가 결과를 사용자에게 응답

🔗 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

 

반응형