전체 글

나와 더불어 성장할 개발새발 블로그
Database/RDB

[Database] 트랜잭션 격리 수준이란?

개요DB에 관심을 갖고 테코톡과 Real MySQL을 읽으며, 트랜잭션과 동시성 처리 등에 관심을 갖게 되었다. 그 중 가장 어렵다고 느낀 트랜잭션 격리 수준에 대한 개념을 정리하려 한다. 트랜잭션 격리 수준은 4단계로 나누어지며, 각 단계 별 부정합 문제점들을 갖고 있어 뒤로 갈 수록 갖고 있던 문제점들을 해결해 나간다. 1. READ UNCOMMITTED각 트랜잭션의 변경내용이 COMMIT 혹은 ROLLBACK 여부에 상관없이 다른 트랜잭션에 노출된다. 예시사용자 A가 트랜잭션을 시작함과 동시에 emp_no = 50000 인 사원을 INSERT 후 COMMIT은 하지 않는다.하지만 사용자 B가 테이블 SELECT 시, emp_no = 50000 인 사원이 조회된다. 트랜잭션이 COMMIT 되기도 ..

Spring/Security

[Spring Security] Security OAuth2.0 디버깅 & 커스텀 여행기

개요현재 프로젝트에 인증 & 인가 부분을 맡게 되면서, 요구사항으로 OAuth2.0을 이용한 로그인 기능을 구현하고 JWT 토큰 방식을 접목하게 되었다. Security OAuth2.0 기능이 추가되면 그 기능이 FilterChain 안에서 어떻게 동작하게 되고, 커스텀을 위해 어떤 부분을 어떻게 건드려야 되는지 간단히 알아보았다. OAuth2.0 인증 방법 OAuth2.0은 여러 인증 방법이 있지만, 대게 Authorization Code Grant 방식을 사용한다고 한다.코드 안에서는 여러 일이 일어나지만, Flow는 다음과 같다. Flow 1. 사용자가 어플리케이션에 소셜 로그인 요청 -> 소셜 로그인 페이지로 리다이렉트 Flow 2. 소셜 인증 완료 -> 인증 서버에서 Authorization ..

JPA

[Query DSL] Expressions를 사용하여 여러 값에 대한 존재 여부 확인하기

개요Query DSL에 대한 개념과 기능들을 공부하고 프로젝트에 필터링 검색 기능으로 적용해보던 중, 여러 값에 대한 존재 여부를 조건절로 걸어야 했다. 간단할 줄 알았지만 추가적인 공부가 필요했고, 다행히 Query DSL에서는 해당 이슈 해결을 위한 API를 제공해주고 있었다. 실제로 다른 사이트에서도 많이 봐온 기능이라 이렇게 글로 정리해본다. 요구사항필터링 검색 기능 중 '어떤 모임에 가고 싶으세요' 요구사항을 다음과 같은 경우로 나누어 비교하려 한다단일 태그를 만족하는 모임을 필터링 검색할 수 있다 - 단일 값 존재 여부 확인여러 태그 중 일부 만족하는 모임을 필터링 검색할 수 있다 - 여러 값 존재 여부 확인 2번 요구사항에 대해 추가적으로 설명하자면, 검색 조건이 '외향적인', '친구끼리'..

kkang._.h00n
깡훈인뎁쇼