본문 바로가기

Framework12

[Spring] Reactive Programming 개요 Spring Webflux를 학습하기 이전에 Reactive Programming에 대해서 명령형 프로그래맹, 선언적 프로그래밍 그리고 Data Stream 과 주요 특징들, Reactive Stream 과 주요 요소들에 대해서 자세하게 알아보도록 하겠습니다. 서론 사실 Reactive Programming을 spring에 작성해야 할까 고민을 좀 했다. Rxjava도 있고 Rxjs도 있는 만큼 Reactive X를 활용하는 곳에 사용해도 되기 때문이다. WebFlux에 대한 포스팅을 하기전 Programming 패러다임부터 하나하나 전부 작성할 것 이기 때문에 Spring 카테고리에 작성하도록 하겠습니다. Reactive Programing ? In computing, reactive programm.. 2023. 3. 19.
[Spring] @Transactional 어노테이션 이해하기(2) 롤백(rollback) 규칙, 시간 제한(Timeout), readOnly Flag Spring Boot @Transactional 어노테이션을 이해하기 위해 @Transactional 어노테이션이 무엇이며 제공하는 설정은 무엇인지 알아보겠습니다. 1편에 이어서 2편에서는 @Transactional 어노테이션이 제공해 주는 트랜잭션 롤백(Transaction Rollback) 규칙과 , 시간제한(Transaction Timeout), readOnly Flag와 JPA에서의 ReadOnly Flag에 특징들에 대해서 이어서 살펴보도록 하겠습니다. 1편을 아직 못 보신 분들은 아래 링크를 참조해주시면 감사합니다. https://colevelup.tistory.com/34 [Spring boot] @Transactional 어노테이션 이해하기(1) 전파유형(Propagation) 과 격리수준.. 2023. 3. 12.
[Spring] @Transactional 어노테이션 이해하기(1) 전파유형(Propagation) 과 격리수준(Isolation) Spring Boot @Transactional 어노테이션을 이해하기 위해 @Transactional 어노테이션이 무엇이며 제공하는 설정은 무엇인지 알아보겠습니다. 1편에서는 @Transactional 어노테이션이 제공하는 트랜잭션 전파(Transaction Propagation) 및 격리(Transaction Isolation)에 대해서 어떻게 적용되며 어떻게 선언하는지 등 우선적으로 자세하게 알아보도록 하겠습니다. 트랜잭션(Transacntion)과 ACID 들어가기 앞서 데이터베이스 트랜잭션은 단일 작업 단위로 실행되는 하나 이상의 데이터베이스 작업 시퀀스입니다. 트랜잭션은 ACID 원칙을 적용하여 데이터 일관성과 무결성을 보장합니다. ACID는 원자성, 일관성, 격리성, 내구성을 의미합니다. 원자.. 2023. 3. 11.
[JPA] 엔티티(Entity)매핑(객체-테이블, 필드-컬럼) 엔티티(Entity) 객체와 데이터 베이스 테이블 간 매핑, 엔티티(Entity) 필드와 컬럼간 매핑에서 사용하는 속성값들과 활용법들에 대해서 알아보도록 하겠습니다. 해당 글은 김영한님 ORM 책과 강의를 참고하여 정리하고 몇몇 내용을 추가하여 만들었습니다. 객체와 테이블 매핑 @Entity @Entity 가 붙은 클래스는 JPA 가 관리, 엔티티라고 하며 EntityClass를 DataBase Table과 Mapping 해줍니다. 주의할 점 기본 생성자 필수(파라미터 없는 public or protected) final 클래스, enum, interface, inner 클래스 사용 금지 저장할 필드에 final 필드 사용 x 🤔왜? 기본 생성자가 필요할까? hibernatesStartGuid 를 보면.. 2023. 2. 11.
[JPA] 엔티티(Entity) 생명주기, 1차캐시, 변경 감지(Dirty-Checking) JPA에서 엔티티(Entity)의 생명주기와 , 1차 캐시(First-Level-Cache)와 1차 캐시가 갖는 장점들, 변경감지(Dirty-Checking)와 플러시(Flush())가 내부적으로 어떻게 동작하는지에 대해서 알아보도록 하겠습니다. 엔티티의 생명 주기 비영속(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태입니다. Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); //객체만 생성한 상태 jpa와 아에 관계가 없음 영속(managed) 영속성 컨텍스트에 관리되는 상태 //상단 세줄은 비영속 상태. Member member = new Member(); member.setId.. 2023. 1. 30.
[JPA] Persistence context(영속성 컨텍스트)와 EntityManager JPA와 ORM에 대한 간략한 정의와 JPA에서 중요한 영속성 컨텍스트(Persistence Context)와 엔티티 매니저(Entity Manager), 영속성 컨텍스트 타입(Persistence Context type), 영속성 컨텍스트(Persistence Context)의 장점등에 대해서 알아보도록 하겠습니다. JPA, ORM JPA는 ORM(Object–relational mapping)이며 객체 지향과 Database간 발생하는 차이를 매핑해줍니다. 즉 객체는 객체대로 설계하고 DB와의 차이점에 대해서는 ORM통해서 매핑하게됩니다. SQL중심적 개발에서 객체 중심으로 개발할 수 있게 되며 데이터베이스에 종속적이지 않게 됩니다. JPA는 JDBC API를 통해서 DB에 접근하며 java appl.. 2023. 1. 29.