transaction 2

이벤트리스너와 비동기

이벤트리스너 ApplicationEventPublisher를 이용하여 이벤트를 발생시킨뒤 @EventListener와 @TransactionalEventListener 에너테이션을 사용하여 정해진 대상과 관련된 메서드를 특정한 시점에 호출시킬수 있다. 이벤트리스너를 사용하면 정해진 조건에 맞는 이벤트만을 추적하여 관련된 메서드만을 자동으로 실행시킬수 있게 되어 따로 특정한 로직을 실행 시키기위해 다른 객체들과 의존관계를 맺지 않아도 되어 코드간의 의존성을 낮추고 더 독립적인 프로그래밍이 가능하다. 예제 코드 @Getter @Component @Slf4j public class EventHandler { // 1. @EventListener public void process(Member member){ ..

SQL vs NoSQL

SQL(구조화 쿼리 언어) vs. NoSQL(비구조화 쿼리 언어) 데이터베이스는 크게 관계형 데이터베이스(Relational Database, RDB)와 비관계형 데이터베이스로 구분한다. 관계형 데이터베이스는 SQL을 기반으로 하고, 비관계형 데이터베이스는 NoSQL로 데이터를 다룬다. SQL과 NoSQL은 만들어진 방식, 저장하는 정보의 종류, 그리고 저장하는 방법 등에 차이가 있다. 관계형 데이터베이스에서는 테이블의 구조와 데이터 타입 등을 사전에 정의(schema)하고, 테이블에 정의된 내용에 알맞은 형태의 데이터만 삽입할 수 있다. 관계형 데이터베이스는 행(row)과 열(column)로 구성된 테이블에 데이터를 저장한다. 각 열은 하나의 속성에 대한 정보를 저장하고, 행에는 각 열의 데이터 형식에..

DB 2023.03.28