커맨트 패턴의 사용 예 2: 요청 로깅
Prof. Jong Min Lee이(가) 9일 전에 추가함
일부 애플리케이션은 모든 동작을 기록하고, 시스템이 충돌한 후에도 해당 동작을 다시 수행할 수 있어야 합니다. 이러한 경우 커맨드 패턴(Command Pattern)이 유용하게 사용됩니다.
Java에서는 store()와 load() 같은 메서드를 사용하여 커맨드를 직렬화(Serialization)하고 디스크에 저장할 수 있습니다.
이렇게 하면 커맨드의 이력(history)을 디스크에 저장하고, 나중에 다시 불러와 실행할 수 있습니다.
예를 들어, 스프레드시트 애플리케이션에서는 사용자의 모든 작업을 커맨드로 기록해두면, 시스템이 중단되었을 때 복구하거나 변경 사항을 추적하는 데 도움이 됩니다.
하지만 모든 상황에서 로깅이 적합한 것은 아닙니다. 예를 들어:
- 리모컨 애플리케이션에서는 커맨드를 저장할 필요가 없을 수 있습니다.
- 대규모 데이터 구조를 사용하는 애플리케이션에서는 커맨드 저장이 비효율적일 수 있습니다.
이러한 기술은 트랜잭션 단위로 여러 작업을 묶어 처리하는 방식으로 확장할 수도 있습니다.