Josh 성장일기
article thumbnail
트랜잭션 전파 REQUIRES_NEW
Spring 2024. 8. 13. 13:28

안녕하세요 오늘은 개발공부를 같이하는 친구와 공부도중 새로운 트랜잭션 전파속성중 REQUIRES_NEW에 대해서새롭게 알게된 사실을 기록하려고 합니다!!  환경언어: kotlinJDK 버전: JDK 21DB: Maria DB프레임워크: Spring Boot 3.3.2 이 글을 작성하기전에 저는 전파속성에서 REQUIRES_NEW 에 대하여 새로운 트랜잭션을 할당하게되면서 새로운 트랜잭션안에서의 Exception 은 부모 트랜잭션 즉 선행트랜잭션에 대해 영향을 끼치치 않아 선행트랜잭션의 Save메서드는 Commit이 되고 REQUIRES_NEW로 할당된 새로운 트랜잭션만 Rollback 이 된다. 라는 개념으로 이해하고 있었습니다. 하지만 제가 알고있던 개념은 잘못된 이해였다는것을 알게되었습니다.  @Se..

article thumbnail
Lock 과 Index
DB/MySQL 2024. 8. 12. 15:05

이번 MySQL 개인공부를 진행하다가 기록하고 싶은 부분이 있어서 블로그 글에 남깁니다!! 바로 Lock 과 Index 에 대하여 기록을 남길 생각인데요 개인 공부를 진행하다가 MySQL 에서 잠금은 ROW가 아닌 Index를 잠근다 라는 사실을 알게되었습니다. 한마디로, Index 에 따라서 잠금의 범위가 달라지게된다는 말이였습니다.Query 의 WHERE절에서 Index가 적용되지 않는 컬럼으로 Lock을 잡으려고 할 때 제가 생각했던것과 다르게 불필요한 Row 들에 잠금이 발생할수 있는것입니다. 그러면 Index의 설정이 굉장히 중요하겠죠..(잘못쓰면 큰일..)  현재 MEMBER 테이블은 기본키인 SEQ 컬럼과 TEAM_SEQ 컬럼에 INDEX 가 걸려있습니다.SELECT * FROM MEMBER..

article thumbnail
[트러블슈팅 기억 기록용] Querydsl(영속성 컨텍스트)
Spring 2024. 2. 16. 16:25

기억용으로 작성하니 음슴체 쓰겠습돠 이번 토이프로젝트를 진행하면서 Querydsl 라이브러리를 사용하게 되었음.. 위 ERD처럼 JPA ManytoMany 연관관계를 피하기 위해 중간테이블을 사용하여 연관관계를 맺어 구성하였음 List meetingEntityList = queryFactory .select(meetingEntity) .from(meetingEntity) .join(meetingEntity.meetingTechEntityList, meetingTechEntity).fetchJoin() .join(meetingTechEntity.techEntity, techEntity).fetchJoin() // .where( // searchMeetingType(meetingSearchCondition...

article thumbnail
JOIN 에서 WHERE절과 ON절의 차이
DB/MySQL 2024. 1. 30. 13:54

초보개발자의 공부정리, 생각정리 블로그로써 잘못된점이 있다면 알려주시면 감사하겠습니다!! 업무를 진행하면서 SQL 이 많이 부족했던 저로써 현업으로 일을 시작한지 별로 되지 않았을 때 알게된 OUTER JOIN시 WHERE절 조건과 ON절 조건문의 차이점을 정리해보려고 합니다. 먼저 쿼리를 직접보면서 이해하기 위해 TEAM 테이블과 MEMBER 테이블을 생성하겠습니다. TEAM에 5개 row 를 insert 하고 MEMBER 테이블에는 각 팀에 2 row 씩 member 데이터를 insert 하겠습니다. 위 2개의 테이블을 먼저 on조건절을 활용하여 team_id 가 2인 멤버들만 outer join 해보겠습니다. 위의 데이터의 결과 처럼 on 조건절을 사용한 경우 left join의 영향으로 모든 me..

IN, EXISTS 의 차이
DB/MySQL 2023. 7. 25. 14:14

- 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! - 이번 업무중에 join을 활용하여 데이터를 가져오는 SQL을 작성하던 중 사수님께서 공부로 JOIN을 사용하지 않고 IN, EXISTS 을 사용하여 SQL 을 작성해보라는 말씀을 하여 기록을 남기기 위해 글을 작성합니다. IN 과 EXISTS IN - 실행순서 : EXISTS 쿼리 -> 메인쿼리 순서 - 집합 내부에 값이 존재하는지 여부 확인 - 존재하는 데이터값을 비교하기 때문에 EXISTS 절보다 속도가 느림 WHERE 메인쿼리테이블의 컬럼명 IN(SELECT 컬럼명 FROM 테이블 WHERE 조건절) 위와 같은 형태로 작성하고 설명하자면 서브쿼리 데이터들중에 메인쿼리 테이블의 데이터에서 존..

Spring Security + jwt 사용기(우당탕탕 주의) - 3
Spring 2023. 5. 2. 18:18

Spring Security + jwt 를 활용기에 대한 기록용 및 복습 포스트입니다. - 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! - 저번 포스트에 이어 이번에는 HTTP Request 가 이루어졌을때 jwt 에 대한 Filter 기능을 구현해놓은 JwtAuthenticationFilter 클래스에 대하여 알아보겠습니다. JwtAuthenticationFilter @Component @EnableWebSecurity @RequiredArgsConstructor public class JwtAuthenticationFilter extends OncePerRequestFilter 먼저 JwtAuthenticationFilter 는 Spring의..

article thumbnail
Spring Security + jwt 사용기(우당탕탕 주의) - 2
Spring 2023. 4. 4. 15:22

Spring Security + jwt 를 활용기에 대한 기록용 및 복습 포스트입니다. - 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! - SecurityFilterChain 먼저 Security 즉 보안에 관련하여 설정을 정의 해주는 SecurityConfiguarion Class 를 생성합니다. 위와 같이 저는 config 패키지에 생성을 했습니다. 개인의 편의로 사용하면 될거같아요 @Configuration @EnableWebSecurity // Spring Security를 사용하도록 활성화 @RequiredArgsConstructor public class SecurityConfiguration { private final JwtAuth..

article thumbnail
Spring Security + jwt 사용기(우당탕탕 주의) - 1
Spring 2023. 3. 31. 13:15

안녕하세요 이번에 제가 Spring Security + jwt 를 활용한 로그인 기능을 만들어봤습니다. 복습겸 기록남기기로 블로그에 작성할 생각입니다. - 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! - Spring boot 3.0.1 java 17 MySQL JsonWebToken 위의 버전과 라이브러리를 사용하여 만들었습니다. Spring Securiy + jwt 의 흐름 1. Http 통신이 온다. 2. JwtAuthFilter 를 통하여 Jwt Token 이 HTTP Header 에 있는지 확인한다. 2번에서 2가지의 분기로 나누어집니다. if ( jwt Token 이 존재한다면 ) { - 각각의 서비스와 도메인에 맞게 Custom한 Jw..

검색 태그