개발 공부/Spring7 Transaction(트랜잭션) Spring에서 톺아보기 - 트랜잭션 지원모델과 관리 방식 들어가기 전..Spring은 다양한 환경에서 일관된 트랜잭션 관리를 제공하여 비즈니스 로직과 트랜잭션 처리를 분리합니다.이때, 일관된 트랜잭션 관리 란 데이터 접근 기술(JDBC, JPA 등)이나 여러 리소스를 사용하는 경우에도 동일한 방식으로 트랜잭션을 관리할 수 있도록 해준다는 것을 의미합니다.즉, 비즈니스 로직 코드에는 트랜잭션 시작, 커밋, 롤백과 같은 세부 처리가 전혀 포함되지 않고, 오로지 핵심 비즈니스 로직에 집중할 수 있습니다.Spring이 내부에서 해당 메서드 실행 전후로 트랜잭션을 자동으로 관리하여, 예외 발생 시 자동으로 롤백하는 등의 처리를 해줍니다.예시아래는 주문 처리 서비스를 예로 든 코드입니다:@Servicepublic class OrderService { @Autowired .. 2025. 2. 10. Spring | 🔥 Spring 프레임워크의 주요 어노테이션 들어가기 전Spring을 공부하다보면 여러 어노테이션을 사용하게 되는데, 어떤 종류가 있는지를 알아보고 각각의 어노테이션이 어떤 역할을 하는지 간단하게 알아보겠습니다!🔥 Annotation이 무엇인가✨ Annotation이란?사전적인 의미로는 주석이라는 뜻이다.자바에서는 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다.프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다.meta data : 데이터를 위한 데이터✨ Annotation 사용 이유Annotation을 통하여 코드량이 감소하고 유지보수하기 쉬우며, 생산성이 증가된다.기존의 자바 웹 어플리케이션은 구성과 설정값들을 외부 XML설정 파일에 명시하여 프로그래밍 되었다.외부에서 변경될 수.. 2024. 9. 24. Spring | Spring MVC 패턴 - HTTP 요청을 받고 응답하기까지의 전 과정(2) HTTP 요청 전체 흐름흐름을 이해하기 좋은 자료들클라이언트 요청을 Dispatcher Servlet에 전달WAS에서 HttpServletRequest, HttpServletResponse 객체로 변환하고, 이를 DispathcherServlet에게 넘겨준다.DispathcherServlet.doDispatch()가 호출된다.HandlerMapping에서 해당 Handler(controller)에 처리 요청한다.DispathcherServlet은 찾아낸 Handler를 실행할 수 있는 HandlerAdapter를 찾고, 실행한다. HandlerAdapter가 실제 Handler를 실행한다.DispathcherServlet에서 전달받은 ModelAndView 객체를 이용하여 매핑되는 View를 검색한다.V.. 2024. 9. 5. Spring | Spring MVC 패턴 - MVC와 서블릿 (1) MVC 패턴의 등장서블릿과 JSP의 한계서블릿으로 개발할 때는 뷰(View)화면을 위한 HTML을 만드는 작업이 자바 코드에 섞여서 지저분하고 복잡했다.JSP를 사용한 덕분에 뷰를 생성하는 HTML 작업을 깔끔하게 가져가고, 중간중간 동적으로 변경이 필요한 부분에만 자바 코드를 적용했다.그러나 JSP를 사용할 때에도 프로젝트의 규모가 커지면서 불편함을 겪게 된다.JAVA 코드, 데이터를 조회하는 리포지토리 등등 다양한 코드가 모두 JSP에 노출되어 있다.JSP가 너무 많은 역할을 한다. 수백 수천줄이 넘어가는 JSP를 떠올려보면 정말 지옥과 같을 것이다.MVC 패턴 개요MVC 전의 문제 유지보수가 어려움너무 많은 역할 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무.. 2024. 9. 5. Spring | Spring AOP의 동작원리와 JDK Dynamic Proxy vs CGLIB Proxy 비교 및 Spring AOP와 AspectJ 비교 Spring AOP란Spring AOP는 스프링 프레임워크에서 제공하는 관점 지향 프로그래밍 기술이다.Spring AOP는 로깅, 보안, 트랜잭션 관리 등과 같은 공통적인 관심사를 모듈화하여 코드 중복을 줄이고 유지 보수성을 향상하는데 도움을 준다.관심 지향 프로그래밍(Aspect-Oriented Programming, AOP)란객체 지향 프로그래밍 패러다임을 보완하는 기술메서드나 객체의 기능을 핵심 관심사(Core Concern) 와 공통 관심사(Cross-cutting Concern) 로 나누어 프로그래밍을 하는 것을 뜻 함핵심 관심사 : 각 객체가 가져야 할 본래의 기능공통 관심사: 여러 객체에서 공통적으로 사용되는 코드여러 개의 클래스에서 반복해서 사용하는 코드가 있다면 해당 코드를 모듈화해서 공.. 2024. 9. 5. Spring Security | 로그인 방식 로그인 방식 용어 정리 인증과 인가 시스템의 자원을 적절하고 유효한 사용자에게 전달하고 공개하는 방법 인증 (Authentication) 인증은 쉽게 말하자면, 로그인이다. 클라이언트가 자기자신이라고 주장하고 있는 사용자가 맞는지를 검증하는 과정이다. 예: 클라이언트에서 보낸 유저 아이디와 서버에 등록돼있는 유저 아이디를 확인한다. 인가 (Authorization) 인가는 인증 작업 이후에 행해지는 작업으로, 인증된 사용자에 대한 자원에 대한 접근 확인 절차를 의미한다. 여기에 일반 유저인 USER1과 USER2가 있다. 일반 유저인 USER1 은 글 작성, 조회, 수정, 삭제 등 일반적인 작업에 대한 권한이 부여되어 있다. 하지만 USER1 은 USER2가 작성한 글을 수정하거나 제거할 수는 없다. 타.. 2023. 9. 28. 이전 1 2 다음