전체 글
[Spring Boot] ShedLock이란?
[Spring Boot] ShedLock이란?
2024.12.23들어가기 전이번 포스팅에서는 ShedLock에 대해서 다뤄볼 예정입니다. ShedLock은 스케줄러와 연관 있는 Lock입니다.스프링에서 제공하는 스케줄러가 무엇이며 속성에 대해서 자세히 모르시는 분은 아래 포스팅을 참고하고 이번 포스팅을 읽으시는 것을 추천드리겠습니다. https://hoestory.tistory.com/91 [Spring Boot] @Scheduled에 대하여들어가기 전이번 포스팅에서는 Spring에서 제공해 주는 @Scheduled에 대해서 알아보겠습니다. @Scheduled@Scheduled는 스프링 프레임워크에서 제공해 주는 기능입니다.특정 시간에 어떤 작업을 수행을hoestory.tistory.com ShedLock이란?만약 여러 개의 서버에서 동일한 스케줄링을 실행시키면 원..
[Spring Boot] @Scheduled에 대하여
[Spring Boot] @Scheduled에 대하여
2024.12.20들어가기 전이번 포스팅에서는 Spring에서 제공해 주는 @Scheduled에 대해서 알아보겠습니다. @Scheduled@Scheduled는 스프링 프레임워크에서 제공해 주는 기능입니다.특정 시간에 어떤 작업을 수행을 할 때 사용합니다.Scheduled에는 아래와 같은 옵션들이 존재합니다.cron : 작업 수행 할 시간설정zone : 수행할 시간의 타임존 설정fixedRate : 작업 시작 시간 기준으로 일정 간격마다 작업 설정fixedDelay : 이전 작업 종료 시간 기준으로 일정 간격 후에 작업을 실행하도록 설정 지금까지 @Scheduled의 속성에 대해 알아보았습니다. 이제 스케줄러를 실행시키기 위한 설정과 각각의 속성에 대해서 예제를 통해서 알아보겠습니다. 스케줄러 사용을 위한 설정 im..
[MySQL] 비관적락과 낙관적락에 대하여
[MySQL] 비관적락과 낙관적락에 대하여
2024.12.01들어가기 전 이번 포스팅에서는 비관적락과 낙관적락에 대해서 알아보겠습니다.알아보기 전 공유 락, 배타적 락, 격리 수준에 대해서 모르시는 분은 아래 포스팅을 읽고 이어서 진행하시는 것을 추천드리겠습니다. https://hoestory.tistory.com/87 [MySQL] 데드락 및 데이터베이스 Lock(Shared Lock, Exclusive Lock, Record Lock)에 대하여 -1들어가기 전 이번 포스팅에서는 데드락과 데이터베이스 Lock에 대해서 알아보겠습니다.트랜잭션 격리 수준에 대한 내용은 아래 포스팅을 참고하시면 됩니다. https://hoestory.tistory.com/86 [MySQL] 트hoestory.tistory.com https://hoestory.tistory.com/8..
[MySQL] Explain으로 성능 개선 포인트 찾기
[MySQL] Explain으로 성능 개선 포인트 찾기
2024.11.17들어가기 전 이번 포스팅에서는 성능 개선 포인트를 찾기 전에 Explain의 컬럼인 Type에 따른 스캔방식에 대해서 알아보고 성능 개선하는 방법에 대해서 알아보겠습니다.아래에서 설명할 내용들은 대부분 인덱스를 활용하는 내용입니다. 인덱스가 적용 안 되는 케이스에 대해서 궁금하신 분들은 아래 포스팅을 참고하시는 것을 추천드립니다.https://hoestory.tistory.com/80 [MySQL] 인덱스 적용안되고 풀스캔이 적용되는 패턴들어가기 전이번 포스팅에서는 인덱스를 설정을 하고 인덱스 스캔방식을 원했지만 풀스캔이 쿼리 패턴에 대해서 알아보겠습니다.Mysql에서 지원해 주는 Explain이라는 키워드를 사용하여 스캔방hoestory.tistory.com Explain에 대해서 알아보기 전 포스..
[Spring Boot] 트랜잭션 전파과정에 대하여
[Spring Boot] 트랜잭션 전파과정에 대하여
2024.11.10들어가기 전이번 포스팅에서는 트랜잭션 전파과정에 대해서 알아보겠습니다.트랜잭션 격리 수준에 대해서 궁금하신 분은 아래 포스팅을 참고하시는 것을 추천드리겠습니다. https://hoestory.tistory.com/86 [MySQL] 트랜잭션 격리 수준들어가기 전 이번 포스팅에서는 데이터베이스 트랜잭션의 격리 수준에 대해서 알아보겠습니다. 트랜잭션 격리 수준트랜잭션 격리 수준은 여러 트랜잭션이 동시에 실행되는 상황에서 특정 트hoestory.tistory.com 트랜잭션 전파과정이란?트랜잭션 전파과정은 하나의 트랜잭션이 다른 트랜잭션과 상호작용 하는 것을 의미합니다. 설정에 따라 하나의 트랜잭션이 다른 트랜잭션에 합류하거나, 새로운 트랜잭션을 생성하는 등 다른 트랜잭션과 상호작용을 합니다. 트랜잭션 전..
[MySQL] 데드락 및 데이터베이스 Lock(Shared Lock, Exclusive Lock, Record Lock)에 대하여 -1
[MySQL] 데드락 및 데이터베이스 Lock(Shared Lock, Exclusive Lock, Record Lock)에 대하여 -1
2024.10.20들어가기 전 이번 포스팅에서는 데드락과 데이터베이스 Lock에 대해서 알아보겠습니다.트랜잭션 격리 수준에 대한 내용은 아래 포스팅을 참고하시면 됩니다. https://hoestory.tistory.com/86 [MySQL] 트랜잭션 격리 수준들어가기 전 이번 포스팅에서는 데이터베이스 트랜잭션의 격리 수준에 대해서 알아보겠습니다. 트랜잭션 격리 수준트랜잭션 격리 수준은 여러 트랜잭션이 동시에 실행되는 상황에서 특정 트hoestory.tistory.com 데드락이란?데드락은 교착상태를 의미하고 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 무한정 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 의미합니다. 위의 이미지를 보면 R1(자원 1)은 P1(프로세스 1)을 점유하고 있는 상태..
[MySQL] 트랜잭션 격리 수준
[MySQL] 트랜잭션 격리 수준
2024.10.06들어가기 전 이번 포스팅에서는 데이터베이스 트랜잭션의 격리 수준에 대해서 알아보겠습니다. 트랜잭션 격리 수준트랜잭션 격리 수준은 여러 트랜잭션이 동시에 실행되는 상황에서 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지 정하는 것입니다. 트랜잭션 격리 수준의 종류는 아래와 같습니다.READ_COMMITTED : 다른 트랜잭션에서 커밋된 내용을 참조 가능READ_UNCOMMITTED : 다른 트랜잭션에서 커밋되지 않은 내용 참조 가능REPEATABLE_READ : 트랜잭션 진입 이전에 커밋된 내용만 참조 가능SERIALIZABLE : 트랜잭션에 진입하게 되면 락을 걸어 다른 트랜잭션에서 참조 불가능Oracle의 기본 격리 수준은 READ_COMMITTED, MySQ..
[RabbitMQ] RabbitMQ 개념 및 Spring 연동
[RabbitMQ] RabbitMQ 개념 및 Spring 연동
2024.09.18들어가기 전이번 포스팅에서는 RabbitMQ에 대해서 알아보고 RabbitMQ와 Spring을 연동하는 방법에 대해서 알아보겠습니다. RabbitMQRabbitMQ는 클라우드 환경, 온프레미스에 쉽게 배포할 수 있는 안정적인 메시징 및 스토리밍 브로커입니다.메시지 큐*(Message Queue)를 통해 여러 애플리케이션에 데이터를 주고받을 수 있도록 해주기 위한 AMQP*의 구현체입니다. AMQP란?Advanced Message Queuing Protocol의 약자로 생산자(Producer)와 수신자(Consumer) 사이에서 메시지를 안전하게 교환하는 메시지 지향 미들웨어 개방형 프로토콜입니다.메시지 큐(Message Queue)란?프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신방법으로..
[Java] 동기화 기법에 대하여(뮤텍스, 세마포어) - 1
[Java] 동기화 기법에 대하여(뮤텍스, 세마포어) - 1
2024.08.20들어가기 전동기화를 하지 않으면 동시성 이슈로 인해 예상치 못한 문제를 겪을 수 있어 동기화를 하여 이와 같은 문제를 방지해야 합니다. 그래서 이번 포스팅에서는 동시성 이슈를 방지하기 위한 동기화 기법에 대해 알아보겠습니다. 동시성 이슈로 인한 문제는 아래 포스팅을 참고하시는 것을 추천드립니다.https://hoestory.tistory.com/83 [Java] 동시성 이슈 개념과 발생하는 동작 과정들어가기 전이번 포스팅에서는 동시성 이슈에 대해 알아보겠습니다. 동시성 이슈를 알아보기 전에 싱글 스레드와 멀티 스레드 환경에 대해서 알아보겠습니다. 싱글스레드와 멀티스레드 싱글hoestory.tistory.com 동기화란?동기화는 여러 스레드가 동시에 임계 영역*에 접근을 하려고 할 때 하나의 스레드만 접..
[Java] 동시성 이슈 개념과 발생하는 동작 과정
[Java] 동시성 이슈 개념과 발생하는 동작 과정
2024.07.26들어가기 전이번 포스팅에서는 동시성 이슈에 대해 알아보겠습니다. 동시성 이슈를 알아보기 전에 싱글 스레드와 멀티 스레드 환경에 대해서 알아보겠습니다. 싱글스레드와 멀티스레드 싱글 스레드(Single Thread) 싱글 스레드는 애플리케이션이 스레드 하나로만 실행되는 것을 의미합니다.아래와 같이 자바 애플리케이션을 실행하면 싱글 스레드로 동작을 합니다. public class SingleThread { public static void main(String[] args) { System.out.println("싱글 스레드 실행");} 싱글 스레드는 작업을 순차적으로 실행시킵니다.멀티 스레드(Multi Thread)멀티 스레드는 싱글 스레드와 달리 애플리케이션이 여러 개의 스레드로 실행되는..
[Java] 스레드의 상태와 생명주기
[Java] 스레드의 상태와 생명주기
2024.07.23들어가기 전이번 포스팅에서는 스레드의 상태와 생명주기에 대해서 알아보겠습니다.해당 내용을 알아보면서 "사용자 수준 스레드"와 "커널 수준 스레드"라는 단어가 나오는데 해당 단어들이 무엇을 의미하는지 아래 포스팅을 통해 알게 되고 난 뒤에 이번 내용을 읽으시는 것을 추천드립니다. https://hoestory.tistory.com/81 [Java] 멀티 스레드 모델에 대해서들어가기 전 이번 포스팅에서는 멀티스레드 모델에 대해 알아보겠습니다. 스레드 모델에는 일대일, 일대다, 다대다가 있습니다. 프로세스와 스레드의 차이점에 대해 궁금하신 분은 아래 포스hoestory.tistory.com 먼저 스레드의 상태에 무엇이 있는지 알아보고 스레드의 생명주기에 대해서 알아보겠습니다. 스레드의 상태에서는 간략하게 무..
[Java] 멀티 스레드 모델에 대해서
[Java] 멀티 스레드 모델에 대해서
2024.07.14들어가기 전 이번 포스팅에서는 멀티스레드 모델에 대해 알아보겠습니다. 스레드 모델에는 일대일, 일대다, 다대다가 있습니다. 프로세스와 스레드의 차이점에 대해 궁금하신 분은 아래 포스팅을 보시는 것을 추천드립니다. https://hoestory.tistory.com/73 [운영체제] 프로세스 & 스레드에 대하여프로세스 운영체제에 의해 파일 시스템에 설치되어 있는 파일을 프로그램이라고 부릅니다. 프로세스는 프로그램의 실제 실행의 의미하며 프로그램 파일을 실행함으로써 프로그램 데이터들이hoestory.tistory.com 멀티스레드 모델에 대해서 설명하기 전에 사용자 수준 스레드와 커널 수준 스레드에 대해 먼저 알아보겠습니다. 사용자 수준 스레드 사용자 수준 스레드는 JVM에서 생성하고 관리하는 스레드입니다...