멋사 Backend 37일차 🦁

신재원·2023년 6월 12일

💬 DB (데이터 베이스)

  • DATA 란?

DATA란 자료나 정보를 지칭하는 말이며, 그중 특히 컴퓨터에 저장되어 처리에 효율적인 형태로 변환 된 것을 말합니다.
📣 코로나가 한창인 시절에 배X의 민족의 월간 주문건이 1억건이라고 함.

MyBatis vs Hibernate/JPA

📍 MyBatis

개발자가 직접 SQL문을 작성하여 DB에 접근합니다.
(SQL Mapper 라고 합니다)

  • 구현 코드와 SQL 코드를 분리할수 있습니다.

📍 Hibernate/JPA

SQL문 작성없이 DB의 데이터를 객체로 매핑시켜 데이터를 접근하여 조작할수 있습니다.
(ORM 이라고 합니다)
(추후에 배우는 Spring Data JPA는 JPA를 쓰기 좋게 만들어놓은 모듈입니다.)

  • 반복되는 CRUD 쿼리를 자동으로 생성

🙋‍♂️ 관계형데이터베이스 (RDB) 란?

  • 데이터를 관계 (Relation)으로 표현한 데이터베이스 (파일형식)
  • 역사적으로 많이, 지금도 많이 활용되는 데이터 베이스

RDBMS? ➡ 관계형데이터베이스를 다루기 위한 프로그램의 일종

✔ MySql은 대표적인 RDBMS이며 서버 포트 번호는 3306번이 대표적입니다.

RDB의 특징

SQL을 이용해 데이터를 조회하고 조작
"데이터무결성 유지에 장점"
데이터를 테이블, 필드, 레코드 등으로 나눠 체계적으로 관리한다.

데이터베이스의 구성

  1. 스키마

RDB가 가지고 있는 데이터의 구조를 표현한것입니다.
(스키마와 ERD 다이어그램이랑 다릅니다.)

  1. 테이블
  • 빨간색 동그라미 부분이 필드/속성/칼럼/열 입니다.
  • 파랑색 네모 부분이 레코드/튜플/행 입니다.
  1. Primary Key (PK)
  • PK 타입은 VARCHAR 타입이 아닌 int 타입으로 지정하는것이 좋습니다.
    이유 : 고유성, 성능 등

기본키라고 부르며, 각 레코드의 고유한 값 이여서 PK 값으로 조회가 가능합니다.
다른 항목과 중복이 불가능 하여 관계 설정시 중요하게 활용 됩니다.
(신중하게 지정)

  1. Foreign Key (FK)

외래키라고 부르며, 한 테이블의 데이터를 표현할 때 다른 테이블의 데이터가 필요한 경우?
해당 테이블의 PK를 테이블에 저장하여 사용 합니다.

  • 예시

    Join
    ( 다른 테이블의 PK 값)

SQL

  • 관계형데이터베이스에서 데이터를 조작 관리하기위해 사용하는 언어 입니다.
  • 데이터내부에서 CRUD를 하기 위한 언어
    ( SQL의 표준은 물론 존재하지만, DBMS마다 "방언" 이라고해서 조금씩 차이가 존재합니다.)
  • 테이블, 컬럼 네이밍 방법은 회사마다 규칙이 있을수 있지만,
    없다면 표준 가이드를 찾아 작성합니다.

DDL

  • 테이블을 생성, 수정 삭제를 담당합니다.

📣 CREATE (생성)

// id (pk), username, email (NOT NULL) 테이블을 생성합니다.
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    username VARCHAR(25),
    email VARCHAR(100) NOT NULL
);

📣 ALTER (수정)

// uesrs 테이블을 users_backup 테이블로 이름을 수정합니다.
ALTER TABLE users RENAME TO users_backup;

📣 DROP (삭제)

  • DROP은 돌이킬수 없는 명령어 이기때문에, 백업을 해놓지 않은경우에는 복구가 불가능 합니다.
    (현업에서 테이블을 DROP 하는 일은 많이 있지는 않다고 합니다.)
// users 테이블을 삭제 합니다.
DROP TABLE users;

👀 데이터무결성

DML

  • 흔히 아는 SELECT, INSERT, UPDATE, DELETE 입니다.
  • SELECT + ORDER BY,
    SELECT + WHERE 등 많은 연습이 필요합니다.
// 기본적인 SELECT 문
SELECT * FROM users;
// 기본적인 INSERT 문
INSERT INTO (...)
VALUES(...)

DCL

  • 데이터에 접근 권한을 제어하기 위한 명령어 이며 이번 챕터에서는 다루지않으며 뒤에서 다룰 예정입니다.

🍀 Spring

Lombok 이란 ?

  • Lombok 설정 방법은 이전에 학습하면서 정리한 블로그를 참고하면 좋을것 같습니다.

📣 많이 쓰는 Lombok 어노테이션 들

@Getter/@Setter

접근자 설정, get메소드, set메소드

@AllArgsConstructor

생성자를 자동으로 생성,
All = 모든 필드값의 파라미터로 받는 생성자
NO = 파라미터가 없는 기본생성자
Required = final이 붙은 필드값만 받는 파라미터 생성

@Builder

뒤에 Builder 패턴할때 많이 사용

@ToString

필드값 출력을 가독성있게 해주는 어노테이션

References

0개의 댓글