Backend/학습내용 정리
-
JDBC 살펴보기Backend/학습내용 정리 2024. 9. 12. 15:30
매번 단순하게 Spring properties 들을 이용해 데이터베이스 연결 설정을 하다 실제 어떻게 작동하는지 확인해보고자 간단하게 DriverManager 와 DataSource 에 대해 학습했습니다. 이번 글에서는 간단하게 DriverManager, PrepareStatement, DataSource 데 관해 정리하겠습니다. 글 목차 1. DriverManager 2. Statement vs PreparedStatement 3. DataSource DriverManagerStatic Method 만 제공한다. 단순하게 Connection 을 얻을 수 있는데 DriverManager.getConnection() 메서드를 이용해 Connection 인터페이스 객체를 얻을 수 있습니다.각 DB 밴..
-
Spring @EventListener 사용하기 (2)Backend/학습내용 정리 2024. 7. 19. 16:33
https://jinmook.tistory.com/29 Spring @EventListener 사용하기글 목차1. ApplicationEventPublisher vs ApplicationEventPublisherAware2. 비동기로 진행하기3. 트랜잭션 확인4. 정리 프로젝트를 진행하며 Spring 의 Event 기반으로 개발을 진행했습니다. 사용자가 검색을 진행jinmook.tistory.com 앞선 글에서는 이벤트 리스너와 비동기 설정, 트랜잭션 설정 등에 관해 알아봤습니다.이번 글에서는 이어서 트랜잭션과 관련된 내용 그리고 Tomcat과 Executor 관계에 대해 알아보겠습니다. 글 목차 1. @TransactionalEventListener 2. TaskExecutor 3. @Async..
-
트랜잭션과 JPA 낙관적 락Backend/학습내용 정리 2024. 6. 17. 21:06
트랜잭션과 락 개념 트랜잭션은 작업의 완전성을 보장해 주는 것입니다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능입니다. 잠금은 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할을 합니다.트랜잭션의 격리 수준이라는 것은 하나의 트랜잭션 내에서 또 다른 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지를 결정하는 레벨을 의미합니다. 락과 트랜잭션은 서로 비슷한 개념 같지만,락은 동시성을 제어하기 위한 기능이고,트랜잭션은 데이터의 정합성을 보장하기 위한 기능입니다 JPA 낙관적 락 낙관적 락은 DB의 락 기능을 이용한 동시성 ..
-
Spring @EventListener 사용하기Backend/학습내용 정리 2024. 5. 29. 01:03
글 목차1. ApplicationEventPublisher vs ApplicationEventPublisherAware2. 비동기로 진행하기3. 트랜잭션 확인4. 정리 프로젝트를 진행하며 Spring 의 Event 기반으로 개발을 진행했습니다. 사용자가 검색을 진행하면 해당 키워드로 이벤트를 생성하고 EventListener 부분에서는 관련된 로직을 처리하도록 개발했습니다. 이렇게 이벤트 기반으로 로직을 분리하면서 메인 로직인 기사 검색에 집중할 수 있었고, 이벤트 처리 로직에서는 키워드 순위와 관련된 로직을 처리할 수 있었습니다. 이번 글에서는 Event 처리 기반으로 구현하면서 공부했던 내용을 정리했습니다. ApplicationEventPublisher vs ApplicationEventPub..
-
Server Sent Event 정리Backend/학습내용 정리 2024. 5. 16. 13:46
글 목차1. Server Sent Event 개념2. Spring 에서 SseEmitter 클래스 확인하기3. SseEmitter 클래스 동작 방식4. Spring 코드 흐름 확인5. 마무리6. 참고 블로그 Server Sent Event 개념 전통적으로 웹 페이지는 새로운 데이터를 얻기 위해 서버로 요청을 보내야 하는 구조입니다. 즉, 서버로 데이터를 요청해야 합니다. 하지만 Server-Sent Events 방식으로 웹페이지의 요청 없이도 언제든지 서버가 새로운 데이터를 보내는 것이 가능합니다. 이렇게 보내진 메시지는 웹페이지 안에서 이벤트와 데이터로 다룰 수 있습니다. Server-Sent Events 방식을 사용할 때 주의할 점이 Http/2 프로토콜을 사용하지 않는다면 최대 커넥션 개수가 부..