Accept Orentied Programing 으로 프로그래밍 기법을 말하는데공통된 관심사를 추상화하여 집약화 시키는 기법을 말한다. 일반적으로, 로깅, 에러 관리, 보안,컨트롤러 패턴화 등에 이용해서 사용하고,특히나 에러 관리를 하는데 있어서 여러개발자가 참여하는 프로젝트에서도일관된 방식으로 에러를 내려줄수 있어 프로젝트관리에도 유리하다. 큰 프로젝트를 하게되면 계속해서 반복되는 패턴들이 나오게되는데이를 큰틀로 만들어서 세부 내용만 조정해서 쓰면 관리측면에서 매우 유리하게 된다. 결국 관심사 에 대한 이야기를 할 수 밖에 없는데개발에서 관심사를 분리하는 방법은 다양하지만 가장 일반적으로MVC패턴을 활용하여 조정된 실제 구축용패턴을 활용해접근 파트 , 비지니스 로직 패턴 , 쿼리 패턴, 데이터 패턴으로..
AOP는 정말 다양한 횡단 관심사(Cross-Cutting Concerns) 처리에 활용될 수 있어요. 우리가 흔히 떠올리는 로깅 외에도, 성능 측정, 트랜잭션, 보안, 감사(Audit), 캐싱, 리트라이, 데이터 암호화/복호화까지도 다뤄요. 💥✅ Spring AOP를 활용할 수 있는 대표적인 시나리오들1. 메서드 실행 시간 측정 (Performance Monitoring)특정 메서드들의 성능 병목 측정슬로우 쿼리 잡기@LogExecutionTime 커스텀 어노테이션과 함께 자주 씀2. 트랜잭션 관리 (@Transactional은 AOP 기반)선언적 트랜잭션 처리메서드 진입 시 트랜잭션 시작 → 정상 반환 시 커밋, 예외 발생 시 롤백java복사편집@Transactional public void sav..
들어가며개발을 하고 나서 납품일정이 되면 자연스럽게 활용하던 DB가 아닌 새롭게 세팅된DB로 깔끔하게 밀어서 준다.이때 여러가지 정보들을 미리 등록해야하는 경우가 있는데 필자는 SQL로 간단하게만들어서 넣어주고 있었는데 문득 더 쉽게하는 방법은 없을까?(절때 DDL 쿼리 작성해서 귀찮은건 아님 .ㅋ.)해서 찾아본걸 정리해본다..SQL 파일로 하기그냥 일반적으로 파일 저장해두는 resources 아래나 루트 경로 쪽에sql파일에 쿼리 짜서 넣어준다쉽긴한데 문제가 만약 기존 데이터가 있는 경우 아주 가끔 (사실 한번) 모든 데이터를지워버리는 경우가 생겨서 만약 기존 데이터는 유지시키면서 설정한 데이터를 넣어줄 때는신경써서 관계도를 보며 해야한다.@PostConstruct 사용 방법 @PostConstruct..
Custom Exception을 만드는건 까다롭고 귀찮지만 도움이 됩니다.전체 범위에서 처리할 BAD Request 사항을 처리하기 위해서는 상당히 많은 코드가 필요한데요 예로 들어온 값을 검증하여 (Validation) 처리하는 부분에서나내부 비지니스로직을 타다 발생되는 예외를 처리하기 위해컨트롤러에서 많게는 10개이상씩 예외처리문을 처리하고 이를 중복해서 사용하는 경우가 많다보니코드의 가독성과 코드 수 자체도 많아져 방법을 찾게 되었습니다. 이번에는 Enum을 대상으로 처리해볼건데저는 일반적으로 Enum을 DB에 들어갈 데이터중 값이 포맷에 맞아야하는경우를대상으로 주로 활용하고 있습니다.Enum을 선언public enum EventLevelEnum { danger , attention, ..
출처 https://taes-k.github.io/2020/02/16/servlet-container-spring-container/스프링 컨테이너가 동작하는 컨텍스트컨텍스트? 애플리케이션 실행 환경이나 특정 동작과 관련된 상태 정보 톰캣과 스프링 컨테이너가 동작하는 방법 Apache Tomcat (톰캣)1. 개념Apache Tomcat(톰캣)은 Java 기반의 **웹 애플리케이션 서버(Web Application Server, WAS)**로, Java 애플리케이션을 실행하고 HTTP 프로토콜을 통해 클라이언트 요청을 처리합니다. 스프링 프레임워크(Spring Framework)를 사용하여 개발된 애플리케이션은 톰캣과 같은 WAS 위에서 실행되므로, 톰캣은 스프링 애플리케이션을 이해하기 위한 중요한..
1. PrePersist의 약어와 한글 번역약어:PrePersist를 풀어보면 다음과 같이 해석할 수 있습니다:Pre: "이전에" (Before)Persist: "영속화" 또는 "저장" (Persist)따라서 PrePersist는 저장되기 이전에 실행이라는 의미를 가지고 있습니다.한글 번역:@PrePersist를 한글로 번역하면 **"저장되기 직전에"**라는 의미입니다.이 어노테이션은 엔티티 객체가 데이터베이스에 **영속적으로 저장(persist)**되기 직전에 특정 로직을 실행한다는 것을 의미합니다.예를 들어 설명하자면@PrePersist는 저장 직전에 실행되는 메서드를 지정하기 위해 사용되므로, 엔티티가 처음 데이터베이스에 저장되기 전에 수행해야 하는 작업을 설정할 때 활용됩니다.2.@PrePersi..