▣ PART · DB

MySQL 설치 + 테이블 만들기

실제 DB 환경 준비

학습 목표

  • MySQL 서버 설치 + 가동
  • DBeaver 또는 Workbench 같은 GUI 도구 연결
  • 데이터베이스 + 테이블 직접 생성
  • 본 과정 끝까지 사용할 두 테이블 (mymember, myboard) 준비 — 최소 컬럼부터

설치 단계 — Mac/Windows 공통

  1. MySQL Community Server 다운로드 (mysql.com)
  2. 설치 (root 비밀번호 설정 시 잊지 말 것)
  3. 서비스 시작 (자동 시작으로 설정)
  4. DBeaver 또는 MySQL Workbench 설치 (GUI 도구)
  5. root 계정으로 연결 테스트

DBeaver — 추천 GUI 도구

DBeaver 설치 후 새 연결:

  • Database: MySQL
  • Server Host: localhost
  • Port: 3306
  • Username: root
  • Password: 설치 시 설정한 비밀번호

「Test Connection」 → 성공이면 「Finish」.

① 데이터베이스 만들기


CREATE DATABASE spring_db
    DEFAULT CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

USE spring_db;

👉 본 과정에서 사용할 DB 의 이름은 spring_db.
utf8mb4 = 한글 + 이모지 지원.

② mymember 테이블 생성 (v2 최소형)


CREATE TABLE mymember (
    id   VARCHAR(50)  PRIMARY KEY,
    pwd  VARCHAR(20)  NOT NULL
);

👉 처음에는 딱 두 칸 — 로그인 ID 와 비밀번호. pwd 는 평문 단계라 짧게(20). 나중에 BCrypt 가 들어올 때 ALTER TABLE 로 늘릴 예정.

③ myboard 테이블 생성 (v5 최소형)


CREATE TABLE myboard (
    num     INT          PRIMARY KEY AUTO_INCREMENT,
    title   VARCHAR(100) NOT NULL,
    writer  VARCHAR(50)  NOT NULL,
    content TEXT         NOT NULL
);

👉 4 칸이 끝 — 글 번호 / 제목 / 작성자 / 본문. 작성 시각·조회수·첨부는 후속 차시에서 ALTER TABLE 로 추가.

왜 이렇게 단순한가

완성된 테이블을 통째로 보여주면 — 학생은 「왜 이 컬럼이 처음부터 있지?」 라는 가장 중요한 질문을 못 합니다.
이 과정에서는 차시가 진행될수록 ALTER TABLE 로 컬럼이 자라납니다. 그 ALTER 하나하나가 곧 학습 내용입니다.

테스트 데이터 삽입


-- 회원 3 명
INSERT INTO mymember (id, pwd) VALUES
    ('hong', 'temp1234'),
    ('kim',  'temp1234'),
    ('lee',  'temp1234');

-- 게시글 3 개
INSERT INTO myboard (title, writer, content) VALUES
    ('첫 글입니다',  'hong', '안녕하세요'),
    ('두 번째 글',   'hong', '내용입니다'),
    ('환영합니다',   'kim',  '반갑습니다');

👉 비밀번호는 「temp1234」 평문 — v3 에서 BCrypt 로 다시 저장할 예정.

확인 — SELECT 로 데이터 검증


SELECT * FROM mymember;
SELECT * FROM myboard;

-- 게시글 + 작성자 (mymember.id 를 writer 로 참조)
SELECT b.num, b.title, b.writer
FROM myboard b
INNER JOIN mymember m ON b.writer = m.id;

👉 결과가 정상 출력되면 — 본 과정의 DB 환경 준비 완료.

흔한 함정

증상원인
"Access denied"비밀번호 오류
"Unknown database"USE 안 했거나 DB 안 만듦
한글 깨짐CHARACTER SET utf8mb4 누락
테이블 못 찾음USE 안 했거나 이름 오타 (mymember / myboard)
포트 충돌3306 사용 중 — 다른 MySQL 인스턴스 또는 변경

🔄 Before / After

전 차시 끝

DB 와 SQL 은 책상 위 개념. 실제 DB 환경 없음.

이번 차시 끝

MySQL 서버 가동, mymember·myboard 최소 테이블 + 테스트 데이터. 차시가 진행되며 ALTER 로 자라날 출발점.

정리

오늘 들고 가는 것

  • MySQL 설치 + DBeaver 연결
  • spring_db (utf8mb4) + 최소 두 테이블 (mymember, myboard)
  • 테스트 데이터 삽입
  • SELECT JOIN 으로 검증 — 차시가 진행되며 ALTER 로 자란다