권한 계층 구조 RoleHierarchyImpl(SpringBoot3)권한 계층 구조 RoleHierarchyImpl(SpringBoot3)SpringBoot 3 기준으로 공식 문서를 보고 작성한다.SecurityConfig 내용은 여타 프로젝트와 다를 거 없다.다만 특이한 점은 요 아래 코드가 하나 더 붙는 단 점이다이 두 메서드를 통해 hasRole("TEACHER")가 hasAnyRole('TEACHER','DIRECTOR') 와 같은 의미가 된다.전체 코드는 아래 링크에 올려뒀다.github.comhttps://github.com/FISOLUTION/fingerprint-backend/blob/64ff2e2bd40a51528895b13d055a4d0b89d55c07/src/main/java/app/iluvit/fingerprint/global/config/WebSecurityConfig.java#L90 분산 트랜잭션, db 잠금 (알아보기만 했다,,,,, 정리는 x)분산락MySQL을 이용한 분산락으로 여러 서버에 걸친 동시성 관리 | 우아한형제들 기술블로그https://techblog.woowahan.com/2631/분산 트랜잭션, db 잠금다중 Datasource 에 연결하는 Spring Batch 를 개발할 때 이슈토이 프로젝트로 다중의 데이터 저장소에 연결하는 스프링 배치를 개발하다가, TransactionManager 관련해 트러블 슈팅 후 블로그에 기록으로 남긴다. 다중 DataSoruce에 연결하기 위해서, 코드에 @EnableJpaRepositories를 포함하는 Config 파일을 각각 작성했을 것이다. 각각의 DataSource 를 정의하는 Config 파일이다. @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "db1EntityManagerFactory", transactionManagerRef = "db1TransactionManager", basePackages = {"com.s..https://gem1n1.tistory.com/200MySQL InnoDB Lock & Deadlock 이해하기 — SteemitMySQL InnoDB lock & deadlock 대규모의 많은 요청이 동시에 들어오는 데이터베이스(Database, DB) 어플리케이션의 경우 데이터의 정합성을 유지하면서 최대한 동시성을 높이는 것이 매우… by yjiq150https://steemit.com/kr/@yjiq150/mysql-innodb-lock-and-deadlock다중 Datasource 에 연결하는 Spring Batch 를 개발할 때 이슈토이 프로젝트로 다중의 데이터 저장소에 연결하는 스프링 배치를 개발하다가, TransactionManager 관련해 트러블 슈팅 후 블로그에 기록으로 남긴다. 다중 DataSoruce에 연결하기 위해서, 코드에 @EnableJpaRepositories를 포함하는 Config 파일을 각각 작성했을 것이다. 각각의 DataSource 를 정의하는 Config 파일이다. @Configuration @EnableTransactionManagement @EnableJpaRepositories( entityManagerFactoryRef = "db1EntityManagerFactory", transactionManagerRef = "db1TransactionManager", basePackages = {"com.s..https://gem1n1.tistory.com/200Spring - Multi DataSource 환경에서 Transaction, QueryDSL 사용하는 방법다중 데이터 소스 다중 데이터 소스 환경에서 Transaction과 Querydsl을 사용하는 방법에 대해 알아보자. 먼저 데이터소스부터 보자. (코드가 가로로 길어서 간격을 수정했다.) @Configuration @EnableJpaRepositories( basePackageClasses = { OfficeRepository.class }, entityManagerFactoryRef = "masterEntityManagerFactory", transactionManagerRef = "masterTransactionManager" ) @EnableTransactionManagement public class MasterDatasourceConfiguration { @Autowired private Env..https://jaehoney.tistory.com/201마이크로서비스 분산 트랜잭션 관리 (2Phase Commit)개요 앞선 포스팅에서 마이크로서비스 분산DB 환경에서 고려되어야 할 사항에 대해 살펴보았다. 자세한 내용은 아래 포스팅을 참고하기 바란다. 마이크로서비스 Schema 분리 설계 (테이블 분리, 외래키 참조관계, 조인, 데이터 정합성 보장) : https://waspro.tistory.com/730 마이크로서비스 데이터베이스 분리 설계 : https://waspro.tistory.com/729 마이크로서비스 분산DB 설계 (분산DB 데이터 분할, 동기화 설계) : https://waspro.tistory.com/726 마이크로서비스 분산DB 설계 (분산DB 조회 설계) : https://waspro.tistory.com/724 마이크로서비스 아키텍처의 기준과 DB 분리 : https://waspro.tis..https://waspro.tistory.com/734[db] 트랜잭션 격리 수준(isolation level)트랜잭션 격리수준(isolation level)이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것이다. 즉, 간단하게 말해 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다. 격리수준은 크게 아래의 4개로 나뉜다. READ UNCOMMITTED READ COMMITThttps://joont92.github.io/db/트랜잭션-격리-수준-isolation-level/[MySQL] 트랜잭션과 잠금MySQL의 트랜잭션과 잠금에 대해 공부해보자https://velog.io/@juijeong8324/MySQL-transactionandlock#글로벌-락global-lock스프링 예외처리서버에서 로직상 문제가 생기면 추후에 더 문제가 생기기전에 로직을 더이상 진행하지않고 예외처리를 해줘야한다.스프링을 통한 REST API로 예외처리를 해보자 일반적으로 서블릿에 들어온다음에 로직상 문제가 생겼을때에 예외처리 방법이다@RestConrollerAdvice를https://velog.io/@viva99/스프링-예외처리