본문 바로가기

Spring14

스프링 AOP를 이용한 권한체크 작업해보기 스프링 AOP(Aspect Oriented Programming)AOP 는 관점 지향 프로그래밍을 말합니다.간단하게 설명해보면 핵심적인 비즈니스 로직 외에 부가적인 공통 기능(흩어진 관심사)을 모듈화하는 것을 말합니다.스프링 AOP는 프록시를 통해 구현되며, CGLIB 프록시(클래스 기반) 또는 JDK 동적 프록시(인터페이스 기반, 리플렉션)를 활용합니다.주요 개념Aspect공통 관심 사항(흩어진 관심사)을 정의하는 모듈입니다.Advice 와 PointCut을 모듈화 한 것을 말합니다.Advice실질적인 부가 기능 로직을 당은 구현체를 말합니다.스프링에서는 다섯 가지 종류의 Advice를 제공합니다.@Before : 메소드 실행 전에 동작을 수행합니다.@After : 메서드 실행 후에 동작을 수행합니다... 2025. 3. 19.
QueryDsl의 Projections 활용 QueryDsl의 Projections 활용Projections는 QueryDsl에서 제공하는 쿼리 결과의 dto 매핑을 위한 기능입니다.불필요한 컬럼의 조회를 방지해 쿼리 조회시 발생하는 통신 비용을 줄일 수 있습니다.Projections에는 다음과 같은 네 가지 방법이 있습니다. 저희 조는 그 중에서도 @QueryProjection 을 활용해보았습니다.@QueryProjectionProjections.bean(..)Projections.field(..)Projections.construct(..)@QueryProjectionDto 생성자에 @QueryProjection 어노테이션을 붙여, Q-Type 클래스를 만들어 사용하는 방법입니다.컴파일 시점에 에러를 잡아낼 수 있어 안전하다는 장점이 있습니다... 2025. 2. 26.
스프링 로깅 Spring Logging 로깅은 프로그램 동작 시 발생하는 모든 일(서비스 동작 상태 및 장애)을 기록하는 행위를 말하며, 이를 통해 애플리케이션의 동작을 이해하고 모니터링하는 데 도움이 됩니다.System.out.println() 사용 지양System.out.println() 등의 코드 내부 구현을 살펴보면, 메소드 내 부분적으로 synchronized 키워드가 붙어 있어 임계 영역이 존재합니다. 이로 인해 멀티 스레드 환경에서 동작할 때, 성능 측면에서 좋지 못한 영향을 끼칠 수 있습니다.로깅 프레임워크(Logging Framework)SLF4J, Logback 과 같은 로깅 프레임워크를 통해 로깅을 수행합니다. 해당 프레임 워크에서는 6가지 레벨로 로그를 나누어 관리할 수 있도록 돕습니다.로그 레벨Fatal : 매우 심각한.. 2025. 2. 24.
[Jpa/QueryDsl] QueryDsl 설정 및 조회 기능 구현 (+동적 정렬) querydsl을 활용한 기본적인 조회 기능 구현에 대해서 기록해보고자 한다.이전에 한 번 업무에서 querydsl을 간단히 다루는 경험을 한 적이 있는데, 그게 벌써 약 2년 전 일이 되었다.그런 만큼, querydsl 활용이 조금 걱정되었는데, 다행히 전에 구현했던 기억이 조금은 남아 있어서 + 간단한 조회 기능이라 수월하게 작업을 해보았다. Springboot 버전 3이 되면서 querydsl 연동도 간결해져서 작업하는데 수월했다.QueryDsl정적 타입을 이용해 sql 과 같은 쿼리를 생성할 수 있도록 도와주는 오픈소스 프레임워크쿼리를 문자열로 작성하는 것이 아닌 프레임워크에서 제공하는 API를 활용해 코드 형태로 작성해 쿼리를 생성해주므로, 타입 안정성이 보장되고 런타임 에러를 방지할 수 있다... 2025. 2. 16.