전체 글4 [Spring Boot] Transaction rollback 처리와 @Transactional 이번 실습에서는 Spring Boot + MyBatis 환경에서 Transaction을 적용해보았다.단순히 데이터를 insert 하는 것이 아니라, 여러 작업을 하나의 논리적인 작업으로 처리해야 하는 상황에서 왜 Transaction이 필요한지 직접 확인할 수 있었다.Transaction(Transaction)이란?트랜잭션(Transaction)은 여러 SQL 작업을 하나의 작업 단위로 묶는 것이다.예를 들어:1. 카드 결제 처리2. 티켓 수량 저장3. 결제 내역 저장위 작업들은 서로 연결되어 있기 때문에 일부만 성공하면 안 된다.만약:카드 결제는 완료티켓 저장은 실패상황이 발생하면 데이터 정합성이 깨진다.이러한 문제를 방지하기 위해 사용하는 것이 Transaction이다.Spring에서의 Transac.. 2026. 5. 13. [Spring Boot] MyBatis 게시판 구현 중 오류 해결 Spring Boot + MyBatis + JSP 기반 게시판 프로젝트를 만들면서 겪었던 오류들을 하나씩 해결했다.단순히 오류만 수정한 게 아니라:Spring Boot와 Spring Framework 관계MyBatis가 동작하는 구조버전 충돌 원인application.properties 역할SqlSession 동작 원리까지 전체 흐름을 이해할 수 있었다.특히 오늘 내용은 단순 CRUD보다:"Spring Boot 내부가 어떻게 돌아가는지"를 이해하는 데 의미가 컸다.현재 프로젝트 구조Controller ↓Service ↓DAO Interface ↓Mapper XML(SQL) ↓Database사용 기술:Spring Boot 2.7.13MyBatisJSPMySQLGradle1. Spring Boot와 Spri.. 2026. 5. 12. [Spring Boot] @RequestBody와 @ModelAttribute 차이 Spring Boot에서 메일 전송 기능을 구현하면서415 Unsupported Media Type 오류가 발생했다.에러 메시지:Content-Type 'application/x-www-form-urlencoded;charset=UTF-8' is not supported원인을 분석해보니 HTML form 방식과 JSON 방식의 차이 때문이었다.문제 상황Controller 코드:@PostMapping("/send_email")public String send_email(@RequestBody EmailDTO dto) { return "send_ok";}HTML:위와 같이 작성했는데 415 에러가 발생했다.원인 분석HTML form은 기본적으로 아래 형식으로 데이터를 전송한다.application/x-.. 2026. 5. 11. [Spring Boot] Maven ClassNotFoundException 오류 해결 ClassNotFoundException: org.codehaus.plexus.archiver.FileSetSpring Boot 프로젝트 생성 후 실행하는 과정에서 아래와 같은 오류가 발생했다.발생한 오류오류 메시지ClassNotFoundException: org.codehaus.plexus.archiver.FileSetjava.lang.reflect.InvocationTargetException또는:Non-resolvable parent POM오류가 함께 발생할 수도 있다. 오류 화면1. Maven Parent POM 오류예시 오류:Non-resolvable parent POM2. ClassNotFoundException 오류예시 오류:ClassNotFoundException: org.codehaus... 2026. 5. 11. 이전 1 다음