Day 40 - DB Connection

haxxru log;·2026년 4월 27일
post-thumbnail

이 글은 2026년 04월 27일 작성된 글입니다.

오늘은 DB 연동(JDBC), CRUD 구현, 그리고 회원/게시글 데이터베이스 연결까지 정리했다.


1. DB 연결 (JDBC)

자바에서 MySQL과 연결하기 위해 JDBC를 사용했다.

Class.forName("com.mysql.cj.jdbc.Driver");
connection = DriverManager.getConnection(url, user, password);
  • 드라이버 로딩 → DB 연결
  • URL에 DB 정보 포함

2. DBConnection 클래스

DB 작업을 공통으로 처리하는 클래스를 만들었다.

  • selectRows → 여러 행 조회
  • selectRow → 단건 조회
  • insert → 데이터 생성
  • update → 데이터 수정
  • delete → 데이터 삭제

👉 SQL 실행을 한 곳에서 관리


3. 결과 처리 구조 (핵심)

List<Map<String, Object>>
  • 한 행 → Map
  • 여러 행 → List

👉 컬럼명을 key로 사용


4. INSERT / UPDATE / DELETE

stmt.executeUpdate(sql);
  • 데이터 변경 작업
  • 영향받은 row 수 반환

5. INSERT 후 ID 가져오기

stmt.execute(sql, Statement.RETURN_GENERATED_KEYS);
  • AUTO_INCREMENT 값 반환

6. DB 기반 CRUD 완성

  • 저장 (insert)
  • 목록 (selectRows)
  • 단건 조회 (selectRow)
  • 수정 (update)
  • 삭제 (delete)

👉 CLI → 파일 → DB로 발전


7. 회원 DB 연동

회원가입 시 DB에 저장되도록 변경

INSERT INTO member ...
  • username
  • password
  • name

8. 비밀번호 암호화

SHA2('user1', 256)
  • 평문 저장 X
  • 보안 강화

9. 게시글 + 작성자 구조

article.member_id → member.id

👉 관계형 DB 구조


10. JOIN으로 작성자 출력

SELECT *
FROM article A
JOIN member M
ON A.member_id = M.id;
  • 게시글 + 작성자 함께 조회

11. 로그인 사용자 기반 작성

  • 로그인된 회원 id 사용
  • 게시글 작성 시 자동 저장

12. 전체 흐름

  1. DB 연결
  2. SQL 실행
  3. 결과 Map 변환
  4. Controller → Service → Repository 연결

✅ 정리

  • JDBC를 통해 자바에서 DB와 직접 연결할 수 있다.
  • Map 기반 구조로 SQL 결과를 유연하게 처리할 수 있다.
  • DB를 사용하면 파일보다 확장성과 관리성이 훨씬 좋아진다.
  • 회원과 게시글을 연결하면서 관계형 데이터 구조를 이해할 수 있었다.

0개의 댓글