[트러블슈팅] Spring Tx 이중 Ajax 업로드 트랜잭션 처리 로직 해결
·
🗄️ Backend/Spring
한 줄 요약컨트롤러 내 컨트롤러 호출 → 트랜잭션 분리 → 파일 누락 발생, 서비스 계층에서 통합 Tx로 해결현대 웹 애플리케이션에서 파일 업로드는 게시판, 이미지 첨부, 견적서·계약서 등 다양한 기능에서 필수 요소입니다. 특히, 비즈니스 로직상 첨부 파일이 반드시 등록되어야 하는 경우, 파일 시스템 저장과 데이터베이스 메타 정보의 원자성(atomicity) 보장이 생명입니다.이번 포스트에서는:Ajax 요청을 2회로 분리하던 기존 로직에서 발생한 부분 커밋(orphan record) 문제선언적 @Transactional 적용만으로는 해결 불가능했던 이유서비스 계층에서의 명시적 트랜잭션 관리(programmatic transaction management) 도입으로 완벽히 문제를 해결한 과정을 순서대로 상..
JAVA 예외 처리(Exception Handling)와 가비지 컬렉션 (Garbage Collection)
·
🗄️ Backend/Java
자바 예외 처리 (Exception Handling)예외(Exception)란 프로그램 실행 중 예상치 못한 오류가 발생하는 상황을 의미합니다. 자바는 이러한 오류를 관리하고 처리하기 위한 예외 처리 메커니즘을 제공합니다. 예외 처리는 프로그램에서 문제가 발생할 가능성이 있는 부분을 미리 예측하여, "문제가 발생하면 이렇게 처리하라"라고 명시하는 프로그래밍 방식입니다.예외의 종류자바에서 예외는 크게 두 가지로 나뉩니다:컴파일러 체크 예외(Checked Exception):컴파일 과정에서 발생할 수 있는 예외로, 예외 처리 코드를 반드시 포함해야 합니다.예외 처리 코드가 없다면 컴파일 오류가 발생합니다.예: IOException, SQLException 등.실행 예외(Unchecked Exception):..