Spring (4) 썸네일형 리스트형 Spring @Transactional : 원리부터 실전 주의사항까지 Spring에서 @Transactional은 가장 많이 쓰이면서도 가장 자주 오용되는 기능 중 하나다.겉으로는 단순해 보이지만, 내부 동작을 잘 모르고 쓰면 트랜잭션이 아예 시작되지 않거나, 롤백되지 않거나, 데이터 불일치 문제가 생길 수 있다.이 글에서는 단순 개념이 아니라 실제로 개발하다가 부딪히는 문제들을 기준으로 @Transactional을 깊이 있게 정리해본다.1. @Transactional이 작동하는 원리핵심은 프록시와 AOPSpring에서 @Transactional은 프록시 기반 AOP를 사용해 트랜잭션을 관리한다.즉, 트랜잭션을 시작하거나 커밋/롤백하는 실제 코드는 프록시 객체에 의해 실행된다.기본 흐름은 다음과 같다:Bean 등록 시 Spring이 트랜잭션 어노테이션이 붙은 클래스를 프록.. Spring Bean 생명주기와 스코프 정리 Spring에서 Bean은 객체를 자동으로 생성하고 관리하는 단위다. 이 Bean이 생성되고 사용되며 종료되는 전 과정이 생명주기이고, Bean이 어떤 범위로 관리되는지가 스코프다.1. Bean 생명주기Bean은 아래와 같은 순서를 따라 생성되고 제거된다.생명주기 단계객체 생성Spring 컨테이너가 Bean 정의를 기반으로 객체를 생성한다.의존성 주입생성된 객체에 필요한 의존성이 주입된다.초기화 콜백@PostConstruct 또는 InitializingBean.afterPropertiesSet()을 통해 초기화 작업 수행.사용컨테이너가 Bean을 필요에 따라 사용한다.소멸 콜백@PreDestroy 또는 DisposableBean.destroy() 호출로 정리 작업 수행. 예제@Componentpubli.. 스프링으로 웹페이지 만들기 - 2. Spring MVC Project 생성 1. 폴더 및 패키지 정리 이전 시간에는 스프링 프로젝트 생성까지 하였고, 톰캣서버 연결을 통해 연결이 잘 된걸 확인하였다. 이번엔 패키지, 폴더, JSP 구성까지 하겠다. - 폴더 생성 lotto 패키지 하위 폴더로 controller, service, dao, model 폴더를 만들어 준다. - Controller 생성 controller 폴더에 BoardController.java 를 생성해준다. 차후 프로젝트 화면별로 많이 분기가 되었을 때 클래스명 변경을 고려해봐야겠다. 일단 무난한 Board 의 이름으로 생성! "board" 의 url 로 호출 했을 시 처리하기 위하여 기본 코딩을 구성한다. - View 생성 view 하위폴더에 마찬가지로 lotto 폴더를 생성 후 board.jsp 를 생성한.. 스프링으로 웹페이지 만들기 - 1. Spring MVC Project 생성 1.Spring MVC Project 생성 업무분석 및 요구사항 분석 재미삼아 기본 게시판 형식의 사이트를 만들고자 했으나.. 구글링만해도 무수히 나오는 게시판 사이트.. 그러므로 다른 형식의 사이트를 만들어 보려고 한다. 여자친구가 매주 로또 분석을 엄청나게 하는 이유로 사이트를 하나 만들어 줘야겠단 생각을 가끔 했었다. 뭐 내가 프론트엔드 개발자도 아니고 보기좋은 UI는 힘들겠지만 반 강제 클라이언트(여자친구)의 니즈를 충족하기 위해서 초심으로 돌아가 한번 만들어 보려한다. 그냥 로또 쿼리는 검색만 해도 나올테니 특정 조건 및 EVENT를 통해 이루어지는 복잡한 쿼리도 추후 짜볼 생각이다. 서론이 길었다. 바로 설치부터 해보자 이클립스의 Help > Eclipse Marketplace... 로 이동 .. 이전 1 다음