1-5 Springboo DB에 값 저장하기(글쓰기 기능 만들기)

Spirngboot
홍윤's avatar
Aug 16, 2024
1-5  Springboo DB에 값 저장하기(글쓰기 기능 만들기)

1.BoardRepositry 만들기

💡
@Repository 어노테이션:
  • @Repository 어노테이션이 붙은 클래스는 스프링의 IoC 컨테이너에서 관리하는 빈(Bean)으로 등록됩니다. 즉, 스프링이 이 클래스의 인스턴스를 생성(new)하여 IoC 컨테이너에 저장합니다.
  • 이 어노테이션은 주로 데이터베이스 접근을 위한 예외 처리(예: SQLException을 DataAccessException으로 변환)를 쉽게 할 수 있도록 도와줍니다.
notion image
 
notion image
  • 빈 생성자 만들기
notion image
실행하면
notion image
notion image

 
💡
@Autowired 어노테이션:
  • @Autowired 어노테이션은 IoC 컨테이너에 있는 빈을 주입받을 때 사용됩니다. 즉, EntityManager 같은 데이터베이스 관련 객체를 IoC 컨테이너에서 찾아와 BoardRepository 클래스에 주입합니다.
  • Spring은 @Autowired가 붙은 필드에 해당 타입의 빈을 자동으로 주입해줍니다. 이로 인해 개발자는 객체 생성과 관련된 코드(예: new 키워드 사용)를 작성할 필요가 없습니다
notion image
notion image

2.Transactional

💡
@Transactional은 주로 Java의 스프링 프레임워크(Spring Framework)에서 사용되는 어노테이션(annotation)으로, 메소드나 클래스에 트랜잭션(Transaction)을 적용할 때 사용됩니다. 이 어노테이션을 통해 데이터베이스 연산이 트랜잭션 안에서 수행되도록 보장할 수 있습니다. 이를 통해 데이터의 일관성과 무결성을 유지하고, 특정 작업이 모두 성공하거나 모두 실패하도록 할 수 있습니다.

주요 개념:

  1. 일의 최소 단위: 트랜잭션은 작업의 최소 단위로 간주됩니다. 트랜잭션 내의 모든 작업은 하나의 작업으로 처리되며, 이 작업이 완전히 성공하거나 완전히 실패해야 합니다.
  1. 고립성(Isolation)이 시작됨: 트랜잭션 내의 데이터는 다른 트랜잭션이 접근할 수 없도록 고립됩니다. 이는 데이터의 일관성을 유지하고, 동시성 문제를 방지하기 위함입니다. 예를 들어, 한 사용자가 특정 데이터에 접근하여 수정 중이라면, 해당 트랜잭션이 완료될 때까지 다른 사용자는 동일한 데이터에 접근할 수 없습니다.
  1. 유효성 검사: 트랜잭션이 시작되기 전에 데이터의 유효성을 검증하는 것이 중요합니다. 이를 통해 불필요한 트랜잭션 발생을 줄일 수 있으며, 이는 시스템의 성능 최적화에 도움이 됩니다.
 
notion image

  • Transactional 두 가지 목적

※OLAP(Online Analytical Processing),OLTP(Online Transaction Processing)

💡
OLAP(Online Analytical Processing)와 OLTP(Online Transaction Processing)는 데이터베이스 시스템의 두 가지 주요 개념으로, 각각 다른 목적과 용도를 가지고 있습니다. 이 두 시스템은 데이터 처리 방식, 구조, 그리고 사용 사례에 따라 크게 구분됩니다.

OLTP (Online Transaction Processing):

  • 목적: OLTP 시스템은 실시간으로 다수의 사용자 요청을 처리하는 데 중점을 둡니다. 주로 일상적인 비즈니스 운영을 지원하며, 빠른 응답 시간과 높은 처리 속도가 중요합니다.
  • 특징:
    • 거래 처리: OLTP 시스템은 간단하고 빈번한 트랜잭션(예: 주문 처리, 입출금, 예약 등)을 처리합니다.
    • 데이터 구조: 데이터베이스는 정규화된 구조를 사용하여 데이터 중복을 최소화하고, 데이터 무결성을 유지합니다.
    • 작업 유형: INSERT, UPDATE, DELETE와 같은 CRUD(Create, Read, Update, Delete) 작업이 주로 이루어집니다.
    • 사용자: 다수의 사용자(예: 고객, 직원)가 동시에 시스템을 사용하며, 실시간으로 데이터를 입력하고 조회합니다.
    • 성능: 높은 처리 성능과 빠른 응답 시간이 중요합니다. 주로 회계, 재고 관리, 주문 처리와 같은 업무에 사용됩니다.
  • 예시: 은행의 ATM 시스템, 온라인 쇼핑몰의 주문 시스템, 항공사의 예약 시스템.

OLAP (Online Analytical Processing):

  • 목적: OLAP 시스템은 대규모의 데이터 분석을 위해 설계되었습니다. 주로 의사 결정 지원을 위한 데이터 분석, 보고서 작성, 데이터 마이닝 등에 사용됩니다.
  • 특징:
    • 데이터 분석: OLAP 시스템은 복잡한 쿼리와 다차원적인 데이터 분석(예: 매출 분석, 시장 동향 분석 등)을 수행합니다.
    • 데이터 구조: 데이터는 다차원적인 구조로 저장되며, 일반적으로 비정규화된 형태로 유지됩니다. 데이터 웨어하우스와 큐브 형식으로 관리됩니다.
    • 작업 유형: SELECT 쿼리와 같은 복잡한 읽기 작업이 주로 이루어집니다.
    • 사용자: 주로 데이터 분석가, 관리자, 경영진이 의사 결정을 위해 사용합니다.
    • 성능: 분석 작업의 성능이 중요하며, 대량의 데이터를 처리하는 능력이 요구됩니다. 데이터가 시간이 지나도 자주 변하지 않으며, 주기적인 배치 처리로 데이터를 갱신합니다.
  • 예시: 경영 보고 시스템, 비즈니스 인텔리전스(BI) 도구, 매출 분석 시스템.

요약:

  • OLTP는 실시간 트랜잭션을 처리하고, OLAP는 대규모 데이터를 분석합니다.
  • OLTP는 데이터 입력과 빠른 처리 속도가 중요하며, OLAP는 복잡한 쿼리와 분석 성능이 중요합니다.
  • OLTP 시스템의 데이터베이스는 정규화되어 있으며, OLAP 시스템은 비정규화된 다차원 데이터를 사용합니다.
 

3.Insert 하기

notion image
  • insert 테스트하기
notion image
notion image
※ insert 가 되었다.(테이블 안에 query가 들어감)
notion image
 
 

4.Client → 순차적으로 확인하기

 
notion image
이름이 같아야함
notion image
notion image
 
notion image
notion image
 
 
강사님 쪽지시험
  1. 테이블 명 post_tb 바꾸기
notion image
※ 대문자는 언더바+소문자로 만들어진다.
notion image
 
2..title -> subtitle, content -> postContent (엔티티 변수명)
board
notion image
notion image
 
BoardRepository
notion image
 
boardRepository
notion image
 
3.글쓰기가 잘 동작하게
notion image
notion image
notion image
끝!!

 
Share article

Uni