개발 251

Oracle Lock·Deadlock·격리 수준과 Spring 트랜잭션 완벽 정리

Oracle Lock·Deadlock·격리 수준과 Spring 트랜잭션 완벽 정리개인 학습용 Spring·Oracle 기술 노트 3회차학습 방식: 핵심 개념 → 세션별 동작 → Spring 연계 → 실전 문제 → 정답 해설 → 운영 점검들어가며앞선 학습에서는 Spring의 @Transactional이 AOP 프록시를 통해 동작한다는 점과 REQUIRED, REQUIRES_NEW, rollback-only, UnexpectedRollbackException을 공부했다.이번에는 Spring 트랜잭션이 실제 Oracle 데이터베이스에서 어떤 동시성 현상을 만드는지 연결한다.실무에서는 다음과 같은 문제가 자주 발생한다.UPDATE 문이 끝나지 않고 계속 대기한다.특정 업무만 느려지고 WAS의 사용 가능 커넥션이..

개발/java,spring 2026.09.12

Spring 트랜잭션 전파 완벽 정리: `REQUIRED`, `REQUIRES_NEW`, rollback-only와 `UnexpectedRollbackException`

Spring 트랜잭션 전파 완벽 정리: REQUIRED, REQUIRES_NEW, rollback-only와 UnexpectedRollbackException개인 학습용 Spring 트랜잭션 기술 노트 2회차학습 방식: 개념 이해 → 실행 흐름 분석 → 실전 문제 → 직접 작성한 답안 → 해설 → 실무 설계들어가며지난 학습에서는 Spring의 @Transactional이 일반적으로 AOP 프록시를 통해 동작한다는 점을 공부했다.핵심은 다음 두 문장이었다.@Transactional 메서드 호출이 Spring 프록시를 통과해야 트랜잭션 기능이 적용된다.롤백 규칙에 해당하는 예외가 트랜잭션 프록시까지 전달되어야 Spring이 롤백을 판단할 수 있다.이번에는 한 단계 더 들어가 본다. 실제 업무 시스템에서는 하..

개발/java,spring 2026.09.11

Spring `@Transactional` 동작 원리와 롤백되지 않는 이유

Spring @Transactional 동작 원리와 롤백되지 않는 이유개인 학습용 기술 노트 1회차주제: Spring 트랜잭션, AOP 프록시, 내부 호출, 예외와 롤백들어가며Spring 기반 업무 시스템을 개발하다 보면 다음과 같은 문제를 한 번쯤 만나게 된다.메서드에 @Transactional을 붙였는데 트랜잭션이 적용되지 않는다.데이터 등록 중 오류가 발생했는데 앞에서 처리한 데이터가 그대로 남는다.분명히 예외를 발생시켰는데 롤백되지 않는다.try-catch로 예외 로그를 남겼더니 데이터가 커밋된다.같은 서비스 클래스 안에서 메서드를 분리했는데 기대한 트랜잭션이 시작되지 않는다.이 문제를 제대로 이해하려면 @Transactional을 단순히 "오류가 나면 DB 작업을 취소해 주는 애너테이션"으로 기..

개발/java,spring 2026.09.10

ORA-01460 오류 해결|Spring JDBC에서 BLOB 저장할 때 발생하는 원인

Oracle DB에 데이터를 저장하는 과정에서 다음 오류가 발생할 때가 있습니다.ORA-01460: 요구된 변환은 실행될 수 없습니다.영문 메시지는 다음과 같습니다.ORA-01460: unimplemented or unreasonable conversion requested저의 경우에는 Java Spring 환경에서 JDBC를 이용해 Oracle BLOB 컬럼에 데이터를 INSERT하는 과정에서 이 오류가 발생했습니다.처음에는 SQL 문법 문제나 JDBC 자체의 문제라고 생각하기 쉽지만, BLOB을 저장하는 상황이라면 우선 Oracle 컬럼 타입과 Java에서 전달하는 데이터 타입이 정확히 일치하는지 확인해야 합니다.이번 글에서는 ORA-01460이 발생했을 때 확인해야 할 내용을 Spring JDBC와..

개발/DB 2026.09.03

[Cryptography] 현대 백엔드 보안의 기둥, AES 암호화 알고리즘 동작 원리와 실무 가이드

이번에 AES-126, AES-256 이 안맞아서 에러가 나는 경우가 발생해서 정리해 봅니다.[Cryptography] 현대 백엔드 보안의 기둥, AES 암호화 알고리즘 동작 원리와 실무 가이드안녕하세요, 백엔드 개발자 여러분! 서비스를 개발하다 보면 사용자 비밀번호 외에도 주민등록번호, 계좌번호, API 키 등 수많은 민감 데이터를 다루게 됩니다. 이때 데이터베이스나 메모리에 평문(Plaintext)으로 값을 저장하는 것은 보안상 매우 위험하죠.대부분의 실무 환경에서는 이를 방지하기 위해 AES(Advanced Encryption Standard) 알고리즘을 사용합니다. 아마 코드 상에서 AES/CBC/PKCS5Padding 같은 문자열을 기계적으로 복사해 사용해 보신 적이 많으실 텐텐데요. 오늘은 이..

개발/네트워크 2026.06.09

PKIX Path Building Failed 오류란 무엇인가? Java 개발자가 가장 많이 만나는 SSL 오류 완전정복

PKIX Path Building Failed 오류란 무엇인가? Java 개발자가 가장 많이 만나는 SSL 오류 완전정복Java 개발을 하다 보면 언젠가는 반드시 만나게 되는 오류가 있습니다.PKIX path building failed처음 보는 개발자는 당황합니다.PKIX?Path?Building?도대체 무슨 뜻인지 알기 어렵습니다.하지만 SSL/TLS의 원리를 이해하면 생각보다 어렵지 않습니다.오늘은 Java 개발자가 가장 많이 만나는 SSL 오류인 PKIX Path Building Failed에 대해 쉽게 설명해보겠습니다.실제 오류 메시지보통 아래와 같은 형태로 나타납니다.javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorExc..

개발/네트워크 2026.06.07

SSL 인증서란 무엇인가? 개발자와 일반인 모두 이해하는 쉬운 설명

SSL 인증서란 무엇인가? 개발자와 일반인 모두 이해하는 쉬운 설명인터넷을 사용하다 보면 주소창에서 자물쇠 모양을 본 적이 있을 것입니다.https://🔒대부분은 그냥 지나치지만 사실 이 자물쇠 하나가 여러분의 개인정보와 금융정보를 보호하고 있습니다.오늘은 SSL 인증서가 무엇인지, 왜 필요한지, 그리고 개발자는 왜 SSL 인증서를 이해해야 하는지 쉽게 설명해 보겠습니다.SSL 인증서란?한 줄로 설명하면인터넷에서 "이 서버는 진짜 서버입니다"라고 증명해주는 전자 신분증입니다.사람에게 주민등록증이 있듯이웹사이트에게는 SSL 인증서가 있습니다.예를 들어 여러분이 은행 사이트에 접속했다고 가정해 봅시다.https://bank.example.com그런데 여러분은 정말 은행 서버에 접속한 걸까요?아니면 해커가 ..

개발/네트워크 2026.06.06

SSL/TLS란 무엇인가? 개발자가 꼭 알아야 할 HTTPS 통신 원리

TLS Handshake란 무엇인가? 개발자도 쉽게 이해하는 HTTPS 연결 과정HTTPS 통신을 공부하다 보면 다음과 같은 용어를 자주 만나게 됩니다.SSL HandshakeTLS HandshakeHandshake FailureSSLHandshakeException그런데 정작 Handshake가 무엇인지 정확히 설명할 수 있는 사람은 많지 않습니다.이번 글에서는 TLS Handshake의 개념을 초보자도 이해할 수 있도록 쉽게 설명해보겠습니다.Handshake란?Handshake를 우리말로 번역하면 "악수"입니다.사람과 사람이 처음 만났을 때를 생각해 보겠습니다.A : 안녕하세요.B : 안녕하세요.A : 저는 누구입니다.B : 저도 누구입니다.A : 서로 믿을 수 있겠네요.B : 네, 이제 이야기합시다..

개발/네트워크 2026.06.04

SSL/TLS란 무엇인가? HTTPS 통신 원리와 개발자가 알아야 할 오류 해결 방법

SSL/TLS란 무엇인가? 개발자가 꼭 알아야 할 HTTPS 통신 원리웹 개발을 하다 보면 다음과 같은 용어를 자주 접하게 됩니다.SSL 인증서HTTPSTLS HandshakeSSL 오류인증서 검증 실패하지만 실제로 SSL/TLS가 무엇인지, 왜 필요한지 정확히 이해하지 못한 채 사용하는 경우가 많습니다.이번 글에서는 SSL/TLS의 개념부터 동작 원리, 그리고 개발 시 자주 발생하는 오류까지 쉽게 정리해 보겠습니다.SSL/TLS란?SSL/TLS는 인터넷에서 데이터를 안전하게 주고받기 위한 암호화 기술입니다.예를 들어 사용자가 로그인할 때 아이디와 비밀번호를 입력한다고 가정해 보겠습니다.사용자 ↓인터넷 ↓웹 서버암호화가 없다면 중간에서 네트워크 패킷을 가로채는 사람이 로그인 정보를 그대로 볼 수 있습니다..

개발/네트워크 2026.06.01

Docker 용량이 계속 늘어나는 이유? `docker_data.vhdx` 개념부터 정리합니다 (Windows Docker Desktop 필수 이해)

Docker 용량이 계속 늘어나는 이유? docker_data.vhdx 개념부터 정리합니다 (Windows Docker Desktop 필수 이해)Docker Desktop을 Windows에서 사용하다 보면 어느 날 갑자기 이런 상황을 만나게 됩니다.C드라이브 또는 D드라이브 용량이 부족하다Docker 관련 파일 하나가 수십 GB까지 커져 있다docker_data.vhdx 파일이 30GB, 50GB, 100GB까지 늘어나 있다컨테이너는 몇 개 없는데 왜 이렇게 용량이 큰지 모르겠다저 역시 실제로 확인해보니 docker_data.vhdx 파일 하나가 57GB 이상 커져 있었습니다.오늘은 많은 개발자가 한 번쯤 겪는 Docker Desktop 용량 증가 문제, 그리고 핵심 파일인 docker_data.vhdx..