📌 @Transactional이란?Spring에서 제공하는 트랜잭션 관리 어노테이션으로, 데이터 작업의 ACID 특성을 보장하며 트랜잭션 시작, 커밋, 롤백을 자동으로 처리합니다.💡 @Transactional의 동작 원리@Transactional은 AOP(Aspect-Oriented Programming) 기반으로 동작하며, 프록시 객체가 트랜잭션의 시작과 종료를 제어합니다.프록시 동작 구조클라이언트가 호출 → 프록시 객체가 메서드를 가로챔.프록시 객체가 트랜잭션을 시작(Commit/Rollback 결정).실제 객체의 메서드 실행.메서드 종료 후 트랜잭션 종료.📌 트랜잭션은 원래 하나인가? 독립적으로 동작한다는 의미는?트랜잭션은 하나의 작업 단위트랜잭션은 데이터를 다루는 논리적 작업 단위입니다. 이..
Java
Spring Boot 프로젝트를 진행하다 보면, 여러 프로젝트에서 재사용할 수 있는 공통 모듈을 패키지화해서 관리하고 싶을 때가 많습니다. 이번 포스팅에서는 공통 모듈을 Maven 패키지로 만들어 GitHub Packages에 등록하고, 이를 다른 프로젝트에서 사용하는 방법을 처음부터 끝까지 자세히 설명합니다.1. 🌱 공통 모듈 프로젝트 생성1️⃣ 프로젝트 구조 만들기Spring Boot 공통 모듈 프로젝트를 생성합니다. Maven 프로젝트로 설정하는 것이 중요합니다.Maven 프로젝트 생성 명령어:mvn archetype:generate -DgroupId=com.example -DartifactId=springboot-common-modules -DarchetypeArtifactId=maven-arc..
이번 글에서는 Apache POI 라이브러리를 사용해 Java로 Excel 파일을 생성하는 방법을 처음부터 끝까지 설명합니다. 스타일 적용, 데이터 작성, 컬럼 스타일링 등, 실용적인 예제를 통해 구현 방법을 단계별로 알아보겠습니다.1. Apache POI란?Apache POI는 Java 기반으로 MS Office 문서를 다룰 수 있는 강력한 라이브러리입니다. 특히, Excel 파일을 처리하는 데 가장 널리 쓰입니다.2. Excel 파일 생성 프로세스🛠️ 준비 단계의존성 추가Maven 프로젝트라면 pom.xml에 아래 의존성 추가 org.apache.poi poi-ooxml 5.2.3 Apache POI 주요 클래스Workbook: Excel 파일을 나타냄. (HSSFWorkbook: .xl..
이전 포스팅에서 다뤘던 [ [JAVA] Java에서 예외 처리방법 ] 내용을 참고하시면, 이번 주제에 대한 배경 지식이나 기초 정보를 확인하실 수 있습니다! [JAVA] Java에서 예외 처리방법💨 1. Java에서 예외 처리방법자바에서 예외 처리는 프로그램의 오류를 안전하게 처리하고 앱의 안정성을 유지하는 중요한 개념입니다. 예외는 예상치 못한 상황에서 발생할 수 있는 오류들을tae-hui.tistory.com1. 🌌 Java의 예외 계층 구조와 개념Java에서는 프로그램 실행 중 발생할 수 있는 문제를 체계적으로 관리하고 프로그램의 안정성을 높이기 위해 예외 처리를 제공합니다. 모든 예외 상황은 Throwable이라는 최상위 클래스를 중심으로 Error와 Exception으로 구분되며, 각 예외..
💨 1. Java에서 예외 처리방법자바에서 예외 처리는 프로그램의 오류를 안전하게 처리하고 앱의 안정성을 유지하는 중요한 개념입니다. 예외는 예상치 못한 상황에서 발생할 수 있는 오류들을 지칭하는데, 자바에서는 try-catch-finally 구문, throws 키워드, 그리고 커스텀 예외를 통해 다양한 예외 상황을 처리할 수 있습니다. 이 포스트에서는 자바에서 예외를 처리하는 방법을 세부적으로 설명하고, 예외 처리와 트랜잭션 처리의 관계를 알아본 뒤, 커스텀 예외를 만드는 방법까지 상세히 설명하겠습니다.🙆♂️ 2. 자바에서 예외 처리하는 주요 방법2.1 try-catch 구문 사용하기try-catch 구문은 자바에서 예외를 잡아내고 처리하는 가장 기본적인 방법입니다.try: 예외가 발생할 가능성이..
🖥️ 프로젝트에서 PMD를 이용한 소스 품질 검사PMD는 Java와 같은 언어로 작성된 코드를 분석하여 코드 스타일, 복잡성, 중복, 오류 가능성 등의 문제를 잡아주는 정적 코드 분석 도구입니다. 품질 좋은 코드를 유지하려면 특히 중요한데, PMD는 프로젝트 코드의 품질을 한층 더 높이는 데 큰 도움을 줍니다. 오늘은 PMD에 대해 알아보고, 설정 방법과 사용 예시를 자세히 설명하겠습니다.1. 🔍 PMD란 무엇인가?PMD(Programming Mistake Detector)는 오픈소스 정적 코드 분석 도구로, Java, JavaScript, XML 등을 포함한 여러 언어를 지원합니다. PMD는 코드에 대한 다양한 규칙(Rule)을 제공하여 코드의 오류나 중복 코드 등을 탐지합니다. 이를 통해 복잡성이..
💻 Spring Data Access (JDBC, Transaction)Spring 프레임워크를 사용하여 애플리케이션을 개발할 때, 데이터베이스와의 연동은 필수적인 부분입니다. 이번 글에서는 Spring의 JDBC를 사용한 데이터 접근과 함께 MyBatis 통합, 트랜잭션 관리 방법, 그리고 데이터베이스 연동 설정을 해보겠습니다.1. 🌟 Spring JDBC Template✔️ Spring JDBC Template란?Spring JDBC Template은 JDBC(Java Database Connectivity) 사용 시 발생하는 보일러플레이트 코드를 대폭 줄여주기 위해 설계된 유틸리티 클래스입니다. JDBC를 사용할 때 반복적으로 사용되는 코드, 예를 들면 데이터베이스 커넥션을 열고 닫는 것, Pr..
1. 🖥️ Redis란 무엇인가?Redis는 Remote Dictionary Server의 약자로, 데이터를 메모리에 저장하여 빠르게 처리하는 오픈 소스 인메모리 데이터베이스입니다. Key-Value 구조로 데이터를 저장하고, 다양한 데이터 구조를 지원하는 것이 특징입니다. 일반적인 데이터베이스와 달리 데이터를 디스크가 아닌 메모리에 저장하기 때문에 읽기/쓰기 속도가 매우 빠릅니다.Redis의 특징인메모리 데이터베이스: Redis는 모든 데이터를 메모리에 저장하고, 필요에 따라 데이터를 디스크에 백업할 수 있습니다. 이로 인해 데이터 처리 속도가 매우 빠르며, 특히 실시간 데이터 처리에 유리합니다.다양한 데이터 구조 지원: Redis는 단순한 Key-Value 저장소일 뿐만 아니라, 다양한 데이터 타입..