카테고리 없음

[백엔드]5주차 과제 - DB&JPA

dwbh23 2026. 2. 11. 01:00

DB 

과거 메모장에 적고 저장하듯이 정리되지 않은 상태로 데이터를 저장했었음

->여러 사람이 사용해야하는 경우 문제가 생길수 있어 누락없이 일관되게,묶는 방법을 통해 저장해야됨

 

방법 : 파일 시스템

-데이터의 중복성

-데이터 종속성

 

=>데이터 베이스

 

특징 1.실시간 접근성

-사용자가 데이터를 요청하면 수초 내에 결과를 서비스

 

특징 2. 계속적인 변화

-삽입, 삭제, 수정 등의 작업을 통해여 바뀐 데이터 값을 저장

 

특징 3. 동시 공유

-여러 사용자에게 동시 공유, 데이터베이스에 접근하는 프로그램이 여러개

 

특징 4. 내용에 따른 참조

데이터베이스에 저장된 데이터는 값에 따라 참조.사용자가 조건 제시 -> 데이터 검색

 

특징 5. 데이터 독립성

-독립데이터의 논리적 구조를 변경시켜도 응용 프로그램은 변경되지 X

 

 

데이터베이스 등장 이후 망형 데이터베이스가 주로 사용

-데이터 간 연결 구조가 복잡

-새로운 요구사항이 생기면 시스템 전체 수정

-개발 생산성 낮음

 

=>관계형 모델

 

 

 

 

SQL

-DDL / 데이터베이스 구조 정의

-DML / 데이터 조작

-DCL  / 권한제어

-TCL / 트랜잭션 관리

 

테이블 정의

-데이터는 테이블 형태로 저장

-테이블로부터 언하는 자료를 꺼내옴

-새로운 데이터 입력시 테이블 생성 없이 데이터만 추가

 

WHERE 절 뒤에 오는 조건식

1.비교 연산자

 

2. 논리 연산자

 

3. 특수 연산자

 

4.LIKE 연산자

 

 

JPA

자바의 ORM 기술을 쉽게 구현하도록 도와주는 API

-자바에서는 데이터의 영속성을 위한 JDBC를 지원

=>매핑 작업을 개발자가 일일히 수행(번거로움)

 

JDBC

Interface이고 구현한것은 각 데이터베이스에 맞는 드라이버

도입이후 데이터베이스 종류에 상관없이 똑같은 코드로 해결이 가능해짐

 

장점

1.표준 인터페이스 제공

-어떤 DB를 사용해도 코딩 스타일 동일

-드라이버만 바꾸면 다른 DB로 전환 가능

 

2. 직접적인 제어

-SQL문을 자바 코드에서 자유롭게 작성하고 실행 -> 세밀한 DB작업 가능

 

3.뛰어난 성능

-중간 계층이 없어 순수 SQL 처리 속도가 빠름

 

단점

1.코드가 길고 복잡

2.반복되는 코드 많음

3.SQL과 자바코드가 섞임

4.DB변경이 힘듦

 

JPA(Java Persistance API)

-SQL문 직접 쓰지 X (DB 테이블을 자바 객체처럼 다룸)

-객체 저장하면 알아서 INSERT, 수정하면 알아서 UPDATE

=>자바객체만 다루면 백그라운드에서 알아서 DB와 동기화

 

Hibernate

-JPA의 구현체

-자바 언어에서 사용하는 ORM 프레임워크

-객체지향적인 방식으로 관계형 데이터베이스를 다룰수 있게 도움

=>기보넉인 CRUD 코드 반복적으로 작성해야함

=>인터페이스로 묶기

 

Sprinf Data JPA

-JPA를 더 간단하고생산성 있게 쓰게 만들어주는 Sprinf 프로젝트

1.의존성 추가

2.User Class 정의(엔티티 정의)

3. 레포지토리 정의(인터페이스 정의)