스프링 프레임워크 첫걸음_week 4

tth-k·2023년 11월 10일
post-thumbnail

4장 데이터베이스 작업

4-1 데이터베이스 생성

데이터베이스란?

  • 데이터베이스(DataBase)란 데이터를 보관하기 위한 '상자'라고 볼 수 있다.

  • 데이터베이스에서 데이터를 모을 때는 특정한 규칙을 적용 후 데이터를 정리해서 보관한다.

  • 데이터베이스 = DB

관계형 데이터베이스란?

  • 관계형 데이터베이스(Relational DataBase)는 데이터를 표 형식으로 표현하고, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터베이스를 말한다.

  • 표 = 테이블(Table)

  • 테이블과 테이블 사이의 관계 = Relationship

  • 관계형 데이터베이스는 가장 일반적으로 사용되는 데이터베이스라 줄여서
    RDB로 불린다.

PostgreSQL로 데이터베이스 확인 -> 생략

4-2 테이블 생성

테이블이란?

  • 위에서 테이블은 데이터를 보관하기 위한 상자라고 설명했지만,
    데이터베이스 안에서 실제로 규칙을 가진 데이터가 저장 되는 상자라고 한다.

  • 테이블은 데이터를 항목으로 해서 이차원 표 형식으로 정리해서 저장한다.

레코드와 칼럼

  • 테이블의 가로 행(row) = 레코드(record)
  • 하나의 레코드 = 한 건의 데이터
  • 테이블의 세로(column) = 칼럼(column)
  • 하나의 칼럼 = 데이터의 각 요소

pdAdmin 4로 테이블 생성 -> 생략

4-3 데이터 입력

SQL이란?

  • SQL은 데이터베이스를 조작하기 위한 언어이다.

  • 정식 명칭 : Structured Query Language

  • CRUD란?
    - 영속적으로 데이터를 취급하는 4개의 기본적인 기능의 앞글자를 따서 만든 단어이다.

    • Create : 생성
    • Read : 읽기
    • Update : 갱신
    • Delete : 삭제
  • CRUD 명령어, 구문
    - Create : INSERT INTO 테이블명(칼럼명, 칼럼명...) VALUES(값, 값...)
    - Read : SELECT 칼럼명 FROM 테이블명;
    - Update : UPDATAE 테이블명 SET 칼럼명 = 값 WHERE 갱신할레코드를특정하는조건;
    ※ WHERE로 조건을 지정하지 않는 경우 모든 레코드가 대상이 된다.
    - Delete : DELETE FROM 테이블명 WHERE 삭제할
    레코드를특정하는조건;
    ※ WHERE로 조건을 지정하지 않는 경우 모든 레코드가 대상이 된다.

테이블에 데이터 입력 -> 생략

4-4 엔티티와 리포지토리 알아보기

엔티티란?

  • 엔티티를 한마디로 표현하면 '데이터를 담아두는 객체'이다.

  • 데이터베이스 테이블의 한 행(레코드)에 대응하는 객체이다.

  • 엔티티의 필드는 테이블의 한 열(칼럼)에 대응한다.

  • 엔티티는 실제 데이터를 담아 두는 개체이다. 사용할 때 다음 세 가지를 기억하자
    - 클래스명 : 클래스명은 대응하는 데이터베이스의 테이블명으로 하는 경우가 많다.
    - 데이터 베이스에 값 넘겨주기 : 데이터베이스에 값을 등록/갱신하는 경우에는 엔티티에 값을 넣어서 넘겨준다.
    - 데이터베이스에서 값 가져오기 : 데이터베이스에서 값을 가져오는 경우에는 값을 엔티티에 넣어서 가져온다.

리포지토리(Repository)란?

  • Repository = 데이터베이스를 조작하는 class

  • 리포지토리를 생성하려면 반드시 인터페이스를 정의하고 구현해야한다.
    - 이유) 리포지토리 인터페이스의 필드에 리포지토리 구현 클래스를 DI하여 특정 구현에 의존하는 것을 피할 수 있기 때문이다.

  • 참고) 자바에서는 인터페이스를 구현한 클래스의 점미사에 'Impl'을 붙이는 경우가 많다.(Impl = implements의 약자)

4-5 스프링 데이터 JDBC 사용해보기

O/R 매퍼란?

  • 간단하게 설명하면 애플리케이션에서 사용하는 O(Object) : '객체'와 R(Relational): '관계형 데이터베이스'의 데이터를 매핑하는 것이다.

  • O/R 매퍼는 미리 설정된 객체와 관계형 데이터베이스 간의 대응 관계 정보를 가지고 인터페이스의 데이터에 대응하는 테이블에 내보내거나
    데이터 베이스에서 값을 읽어 들여 인터페이스에 대입하는 작업을 자동으로 실행한다.

스프링 데이터 JDBC란?

  • 스프링 데이터 JDBC = O/R 매퍼

  • 스프링 데이터가 제공하는 CrudRepository를 상속해서 자동으로 CRUD를 지원하는 메서드를 사용할 수 있다.

스프링 데이터 JDBC 프로그램 생성 -> 생략

profile
백엔드 취준생 / 코린이 ヾ(≧▽≦*)o

0개의 댓글