목표AOP 이해하기JDK Dynamic Proxy 패턴과 CGLIB 패턴의 차이 파악하기 Spring AOP Spring AOP(Aspect-Oriented Programming)이란 관점 지향 프로그래밍으로, 핵심 비즈니스 로직과 공통 관심사를 분리하여 코드의 재사용성을 높이는 것을 의미합니다. 여기서 말하는 공통 관심사는 로깅, 트랜잭션 등이 있습니다. 원본 객체를 감싸서 (Proxy 객체) 공통 로직을 반영하여, 비즈니스 로직과 공통 로직을 동시에 처리합니다.이처럼 호출 시점에 동적으로 위빙 한다 하여 Runtime Weaving이라고도 한다. 2가지 Proxy는 어떠한 상황에 생성되는가Spring은 AOP Proxy를 생성하는 과정에서 자체 검증 로직을 통해 타깃의 인터페이스 유무를 확인합니다.타..
Gradle이란Gradle은 자바, 코틀린, 안드로이드 프로젝트에서 사용되는 빌드 자동화 툴입니다.의존성 관리, 빌드, 테스트, 배포를 빠르게 처리할 수 있어, 개발자의 생산성을 높여주는 툴입니다. Gradle Build Tool accelerates developer productivity.Gradle is the open source build system of choice for Java, Android, and Kotlin developers.From mobile apps to microservices, from small startups to big enterprises, it helps teams deliver better software, faster. Gradle 프로젝트를 빌드하고 실행하..
기존 서버 환경Spring 서버의 Filter 단계에서 HttpServletRequest를 캐싱하여, 이후 다른 레이어에서 로깅이나 기타 작업을 처리할 수 있도록 구성해 둔 상태였습니다.이는 HttpServletRequest의 내용을 한 번 읽으면 다시 읽을 수 없기 때문에, 반복 조회가 가능하도록 캐싱을 해두었습니다. 문제 상황 : IOException yml 파일에 설정한 파일 크기를 초과하는 경우, 의도한 에러가 아닌, 500 에러가 발생했습니다.spring: servlet: multipart: max-file-size: 2MB max-request-size: 20MB Error LogResponse Error Message{ "timestamp": "2025-02-1..
위 글은 유튜브 우아한테크 채널에 도이님 발표 영상을 바탕으로 작성한 글입니다.https://www.youtube.com/watch?v=RWFtuQUx3fo JDBC JAVA에서 범용 데이터 액세스를 위한 표준 인터페이스이다. 순수 JDBC 불편한 점개발자가 모든 코드를 직접 작성해야 한다. 이로 인해 중복 코드가 많아지는 문제가 발생한다. 이를 해결하기 위해 영속성 프레임워크가 생겨나고, 중복된 작업을 처리해줍니다.반복적인 작업들을 추상화하고 편리함 제공ex) DB 연결, 해제, CRUD 등 SQL MapperSQL 문과 객체의 필드를 매핑하여, 관계형 DB의 데이터를 객체화하는 프레임워크이다.직접 작성한 SQL 문과 필드를 매핑하고, 조회 결과의 ROW를 객체화합니다.JDBC Template, MyB..