반응형
1. 횡단 관심사 (Cross-cutting-concerns) 란?
횡단 관심사의 의미
- 횡단 관심사란 여러 서비스에 걸쳐서 동작해야 하는 코드
- 관심사란 코드가 하고자 하는 목적, 동작을 의미한다고 하면 확장해서 횡단 관심사란 애플리케이션 내 여러 핵심 비지니스 로직들에 걸쳐서 실행되어야 하는 동작들
횡단 관심사의 대표적인 예시
- 인증 & 인가
- 로깅
- 트랜잭션 처리
- 에러처리
횡단 관심사는 여러 비지니스 로직들에 걸쳐서 실행되어야 하기 때문에 횡단 관심사를 잘 처리하는 것은 애플리케이션의 유지보수에서 중요하다. 만약, 핵심 비지니스 로직과 횡단 관심사가 혼재되어 버리면, 추후 비지니스 로직, 횡단 관심사 모두를 수정하기 힘들어지는 상황이 발생한다.
예를 들어 인증 로직이 핵심 비지니스 로직 안에 혼재된다면 일단 해당 코드의 관심사가 여러개가 된다는 문제가 발생하고, 추후 인증 로직이 변경되었을때 이를 수정하기 위해서 여러 모듈들을 건드리거나, 수정해야 한다는 문제 또한 발생한다.
2. HTTP 통신에서 횡단 관심사 처리하기
프론트엔드에서 가장 흔하게 생각할 수 있는 횡단 관심사는 인증 & 인가이다.
- 인증 & 인가
- 내가 누구인지 증명하고, 그에 걸맞는 권한을 획득하는 행위를 의미 - HTTP
- 흔히 백엔드 서버와 통신하고 통신에서 가장 기본적으로 사용하는 프로토콜
HTTP는 stateless라는 특징으로 인해 매 요청을 별개의 요청으로 처리한다. 따라서 HTTP 통신을 주고받을 때 내가 누구인지 증명하기 위해서는 프론트엔드단에서 인증 정보를 매 통신마다 함께 전송해줘야 한다.
인증은 특정한 비지니스 로직에 포함된 것이 아니라, 대부분의 HTTP 통신을 이용하는 비지니스 로직에 걸쳐서 이루어져야 하는 동작이다. 여러 핵심 비지니스 로직에 걸쳐서 수행되어야 하기에 이를 곧 횡단 관심사로 생각할 수 있다.
횡단 관심사를 어떻게 처리할 지 알아 볼 수 있는 예제
반응형
'Computer Sceience > etc.' 카테고리의 다른 글
TDD (Test Driven Development) - 테스트 주도 개발 (0) | 2022.11.03 |
---|---|
소프트웨어 테스트와 종류 (0) | 2022.10.31 |
Design Pattern (MVC & Flux) (0) | 2022.10.28 |
의존성 / DIP / 의존성 주입 (0) | 2022.10.27 |