횡단 관심사는 여러 서비스에 걸쳐서 동작해야 하는 코드를 의미합니다. 이는 애플리케이션 내 여러 핵심 비즈니스 로직들에 영향을 주는 동작들을 말합니다.
횡단 관심사의 대표적인 예시는 다음과 같습니다:
횡단 관심사는 애플리케이션의 유지보수에 중요한 역할을 합니다. 이는 여러 비즈니스 로직에 영향을 주는 동작이기 때문입니다. 핵심 비즈니스 로직과 횡단 관심사가 혼재되면, 추후 비즈니스 로직과 횡단 관심사 모두를 수정하기 어려워집니다.
예를 들어, 인증 로직이 핵심 비즈니스 로직에 혼재된다면, 코드의 관심사가 혼란스러워집니다. 인증 로직이 변경되어야 할 경우, 여러 모듈을 수정해야 하기 때문에 유지보수가 어려워집니다.
따라서, 횡단 관심사는 각각의 관심사를 분리하여 모듈화하고, 필요한 곳에서 재사용할 수 있도록 설계해야 합니다. 이를 통해 애플리케이션의 유지보수성을 향상시킬 수 있습니다.
프론트엔드에서 흔하게 생각할 수 있는 횡단 관심사 중 하나는 인증 & 인가
입니다. 인증 & 인가
는 사용자의 신원을 확인하고 권한을 부여하는 작업을 의미합니다. 주로 백엔드 서버와의 통신을 통해 이루어지며, HTTP 프로토콜을 사용하는 경우 매 요청마다 인증 정보를 전송해야 합니다.
인증은 특정 비즈니스 로직에 포함된 것이 아니라 대부분의 HTTP 통신을 이용하는 비즈니스 로직에 걸쳐 이루어져야 하는 동작입니다. 따라서, 여러 핵심 비즈니스 로직에 영향을 주는 횡단 관심사로 간주할 수 있습니다.
아래는 간단한 예제를 통해 횡단 관심사를 처리하는 방법을 설명합니다:
세션
, 쿠키
, 토큰
등을 사용할 수 있습니다.HTTP 요청 헤더에 인증 토큰을 포함
시킬 수 있습니다.로그인
, 로그아웃
, 세션 유지
등을 처리하고, 상태 변화에 따른 UI 업데이트가 필요할 수 있습니다.횡단 관심사를 처리하는 방법은 프레임워크나 라이브러리에 따라 다를 수 있습니다. 주로 인증 관련 미들웨어, 컴포넌트, 커스텀 훅 등을 사용하여 구현하며, 필요에 따라 상태 관리 라이브러리와의 통합도 고려할 수 있습니다.