2025/05 4

aop 를 활용한 로깅 시스템 구축/ 보안 적용/ transaction 이해하기

aop 가 아래와 같은 상황에서 현실적으로 크게 와닿았기 때문에 이번 기회를 바탕으로 정리해보았습니다. @Transactional 어노테이션을 붙이더라도, 같은 클래스 내부의 다른 함수에서 호출된다면 transactional 이 제대로 일어나지 않는다는 걸 이해햐는 상황logger.log 를 매 메소드에 작성해서 로그를 쓰려니 로깅이 일관적이지 않고 번거로운 문제를 겪을 때. Spring AOP(Aspect-Oriented Programming) 에 대해 알아보자! AOP(Aspect-Oriented Programming)는 관점 지향 프로그래밍으로, 핵심 비즈니스 로직과 부가 기능을 분리하여 모듈화하는 프로그래밍 패러다임입니다. Spring Framework에서는 AOP를 통해 트랜잭션 관리, 로깅 등..

개발/TIL 2025.05.14

[sql 튜닝] Chapter 5. 소트 튜닝

소트하거나 추가 저장공간이 필요할 때 Oracle 은 PGA(인메모리), temp 테이블 스페이스(디스크.)를 활용한다. 소트 머지 조인(양쪽 집합을 미리 소트하고 저장.) 해시 조인 (해시 테이블 저장). 추가로 필요하다면 temp 테이블 스페이스 활용.소트, 데이터 그루핑을 할 때도 마찬가지. 5.1.1. 소트 과정소트를 하는 과정에서 Sort Area 만 사용해서 완료할 수 있는지 여부에 따라 2가지 종류로 나뉜다. 메모리 소트, Internal Sort : PGA 의 Sort Area 만 사용해서 소트하는 경우.디스크 소트, External Sort : 용량이 부족해서 디스크까지 사용해서 소트하는 경우. 디스크 소트는 디스크 I/O 가 발생해서 성능저하가 발생하기도 하지만, 부분범위 처리가 불가능..

개발/TIL 2025.05.14

[sql 튜닝] Chapter 4.3 해시 조인 4.4 서브쿼리 조인

NL 조인은 인덱스를 활용하기 때문에 논리적 IO 부하를 피할 수 없고, 버퍼 캐시 히트율에 따라 들쭉날쭉한 성능을 보인다. 반면 소트머지조인, 해시 조인은 대용량 데이터 처리가 NL 조인보다 빠르며 인덱스를 활용하지 않기 때문에 성능이 일정하다. 그 중에서도 소트머지 조인은 항상 양쪽 테이블을 정렬해야하는데, 해시 조인은 그런 부담도 없다. 해시 조인이 필요한 상황과 기본 메커니즘, 전체 조인 옵션의 사용하기 좋은 상황에 대해 알아본다. 4.3.1. 기본 메커니즘Build 단계 : 작은 테이블을 읽어서 해시 테이블(해시 맵)을 생성한다. 조인 칼럼을 해시 테이블의 키로 해서 생성한다. 해시 테이블은 PGA 영역의 Hash Area 에 저장한다. (테이블을 읽는 과정은 DB 버퍼 캐시를 경유할 수 밖에..

개발/TIL 2025.05.08

[sql 튜닝 ]chapter 4.1 NL 조인, 4.2 소트 머지 조인

4.1. NL 조인4.1.1. 기본 메커니즘 4.1. NL 조인NL 조인은 인덱스를 활용하는 방식이고 어떤 자료형을 쓰느냐의 차이로 NL조인, 소트머지조인, 해시 조인이 나뉘게 되므로 한번 이해하게 되면 나머지 조인 방식도 이해하기 쉬워진다. 4.1.1. 기본 메커니즘outer loop, inner loop 에서 모두 인덱스를 활용한다. outer 는 아무리 많아도 table full scan 한번만 하는 효과가 되기 때문에 인덱스를 활용하지 않아도 될 때도 있지만, inner 는 인덱스를 활용해야 한다. 4.1.2.NL 조인 실행 계획 제어힌트 사용ordered use_nl(table)ordered : from 절에 기술한 순서대로 조인할 것. leading(A,B,C,D) : from 절에 기술한 ..

개발/TIL 2025.05.07
728x90
728x90