본문 바로가기

트랜잭션2

Repeatable read 의 Phantom read와 Consistent read의 문제점 상황 더보기 타 셀 동기로부터 @Async 사용하는 메소드의 비동기 처리가 끝나길 기다렸다가 응답 받는 방법이 있냐는 질문을 받았다. 그래서 CompletableFuture로 return받으라고 전달했는데, 해당 내용으로 해결되진 않는다고 했다. 상황을 파악해보니, 동기가 처한 상황은 부모 스레드에서 트랜잭션을 연 후, @Async를 통해 돌게 된 자식 스레드의 메서드 내에서 @Transactional(propagation = Propagation.REQUIRES_NEW) 을 통해 트랜잭션을 열어서 데이터를 저장 후 커밋하였고, 부모 스레드에서 db 조회 시에 조회가 되지 않는단 이슈였다..! 즉, 트랜잭션을 열고 다른 트랜잭션에서 데이터를 인서트한 커밋내용이 기존에 열어둔 트랜잭션에서 조회 시 보여야하.. 2023. 8. 8.
백엔드 신입 면접질문 공부 (디비 DB) join에 대해 설명해주세요 더보기 두개 이상의 테이블을 서로 묶어서 하나의 결과 집합을 만들어내는 것입니다. LEFT OUTER JOIN, RIGHT OUTER JOIN 은 어떤 것을 기준으로 정하나요? 더보기 결과가 왼쪽 테이블 전체 데이터 대상이면 left, 오른쪽이면 right를 사용합니다. SQL Injection에 대해 설명해주세요 더보기 조작된 SQL 쿼리문을 날려 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법입니다. input값을 받을 때, 특수문자 여부를 검사. SQL 서버 오류 발생 시, 해당 에러 메세지 감추기. preparestatement를 사용하여 서버측의 필터링 과정을 통해서 특수문자를 제외하여 공격을 방어할 수 있습니다. 교글 참조 SQL과 NoSQL의 .. 2022. 3. 21.