본문 바로가기

프로그래밍/Spring Boot13

[SpringBoot] AOP를 활용하는 다양한 방법 https://kafcamus.tistory.com/39 [SpringBoot] 관점 지향 프로그래밍(AOP)이란? 이 글은 다음의 목적을 바탕으로 작성되었다. AOP가 무엇인지 알아본다. AOP를 활용하는 방법을 알아본다. AOP란? AOP는 관점 지향 프로그래밍(Aspect-Oriented Programming)의 약자이다. AOP는 횡단 관심사(cr kafcamus.tistory.com 저번 글에서는 다음과 같은 내용을 다루었다. AOP가 무엇인지 알아본다. Spring에서 AOP를 활용하는 방법을 알아본다. 이번 글에서는, 이에 더해 실제 AOP를 활용한 간단한 예시를 작성해보려고 한다. 커스텀 어노테이션을 구현한다. 어노테이션이 있는 메소드 실행 시, AOP를 실행한다. 결과적으로 로깅 로직을 .. 2021. 8. 30.
[SpringBoot] 관점 지향 프로그래밍(AOP)이란? 이 글은 다음의 목적을 바탕으로 작성되었다. AOP가 무엇인지 알아본다. Spring에서 AOP를 활용하는 방법을 알아본다. AOP란? AOP는 관점 지향 프로그래밍(Aspect-Oriented Programming)의 약자이다. AOP는 횡단 관심사(cross-cutting concern)의 분리를 허용해 모듈성을 증가시킨다. 이때 횡단 관심사가 무엇일까? 아래의 그림을 먼저 보자. 우리가 서버를 하나 만들고, 그 안에 여러 가지 로직들을 추가했다고 가정하자. 이때, 각각의 모듈마다 중복되는 로직이 존재한다. 예를 들자면, 로깅 로직 트랜잭션 시작/종료 로직 보안 인증 로직 설령 보안 인증을 해주는 클래스를 모듈로 분리하더라도, 각각의 서비스마다 해당 클래스를 호출하고 사용해줘야 한다. 그렇기 때문에,.. 2021. 8. 30.
@Transactional 어노테이션의 다양한 옵션 활용 본 글은 아래의 글에서 이어지는 글이다. https://kafcamus.tistory.com/30 @Transactional 어노테이션의 이해 나는 보통 서비스 코드에 @Transactional 어노테이션을 활용해준다. 그런데 사실 뜻도 잘 모르고 좋다고 그래서 쓴거라...지나고 보니 정확히 설명하기가 어려웠다. 그런고로, 해당 어노테이션의 작 kafcamus.tistory.com 앞서 @Transactional 어노테이션을 사용할 경우 어떻게 트랜잭션이 구현되는지를 간단히 다뤘다. 그런데, 막상 @Transactional 어노테이션을 써보려고 하니 Isolation이나 propagation과 같은 parameter에 대해 잘 몰라서 난감한 마음이다. 그런 이유로, 이번 글은 @Transactional .. 2021. 6. 17.
@Transactional과 Lazy Loading 본 글은 아래의 글에서 이어지는 글이다. https://kafcamus.tistory.com/30 @Transactional 어노테이션의 이해 나는 보통 서비스 코드에 @Transactional 어노테이션을 활용해준다. 그런데 사실 뜻도 잘 모르고 좋다고 그래서 쓴거라...지나고 보니 정확히 설명하기가 어려웠다. 그런고로, 해당 어노테이션의 작 kafcamus.tistory.com 앞서 @Transactional 어노테이션을 사용할 경우 어떻게 트랜잭션이 구현되는지를 간단히 다뤘다. 그런데, 이렇게 트랜잭션을 구현할 경우, 예상치 않게 문제가 생길 수 있다. 이제 어떤 문제가 발생할 수 있는지 다뤄보고, 이를 어떻게 해결할지 고민해보자. @Transactional 사용과 영속성 컨텍스트 앞선 게시물에서,.. 2021. 6. 15.
@Transactional 어노테이션의 이해 나는 보통 서비스 코드에 @Transactional 어노테이션을 활용해준다. 그런데 사실 뜻도 잘 모르고 좋다고 그래서 쓴거라...지나고 보니 정확히 설명하기가 어려웠다. 그런고로, 해당 어노테이션의 작동 원리부터 사용 예까지 조금 정리해보려고 한다. 내가 이해하려고 쓴 글인지라 많이 엉성하다. 이해가 가지 않거나 빠진 내용이 보이거나 한다면, 꼭 댓글 부탁드립니다. 트랜잭션이란? 데이터베이스 트랜잭션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 단위라는 말을 사용했는데, 쉽게 말하면 더 이상 쪼개질 수 없는 최소의 연산이라는 의미가 된다. 예를 들어보자. 만약 내가 쇼핑 앱을 켜서 상품을 구매하려고 한다. 그런데 내가 결제를 하는 짧은 시간 사이에 아래와 같은 일이 벌.. 2021. 6. 15.
Controller에서 Service에 값을 어떻게 전달할까? 바로 직전에, 스프링 부트에서 MVC 패턴을 구현하는 방법에 대해 간단한 글을 올렸다. 고민: SpringBoot에서의 MVC 패턴 이 글은 다음의 고민에서 시작한 글이다. 내가 스프링 부트로 지금까지 만든 프로젝트들은 MVC 패턴을 잘 따르고 있나? 각각의 계층은 어떤 역할을 수행하고, 어떻게 영향을 주고 받아야 하나? 스 kafcamus.tistory.com 그런데, 스프링 부트를 통해 MVC 패턴으로 기능을 구현하면서 늘 궁금했던 부분이 있다. "컨트롤러(Web Layer)에서 서비스(Service Layer)로 값을 전달할 때, 무엇으로 전달해야 하나?" 1. 지금까지의 개발 지금까지의 진행 이전에는 우아한테크코스에서 학습한 내용 및 책에 있는 내용을 따라하다 보니, 컨트롤러가 뷰의 요청을 DTO.. 2021. 2. 15.
반응형