[c#] 데코레이터를 이용한 압축 및 암호화
이 포스트에서는 C#에서 파일을 압축하고 암호화하는 방법을 배우겠습니다. 이를 위해 데코레이터 패턴을 사용하여 압축 및 암호화 로직을 쉽게 확장할 수 있도록 만들어 보겠습니다.
데코레이터 패턴 소개
데코레이터 패턴은 객체를 동적으로 확장하는 디자인 패턴으로, 기본 객체에 추가적인 기능을 런타임 시에 쉽게 적용할 수 있도록 해줍니다. 이 패턴은 기본 객체를 감싸는 데코레이터 클래스를 정의하고, 이를 사용하여 필요에 따라 여러 기능을 추가할 수 있습니다.
압축 및 암호화 데코레이터 구현
첫 번째로, 파일을 압축하는 데코레이터 클래스를 구현합니다.
public class CompressionDecorator : FileDecorator
{
public override void Operate()
{
base.Operate();
// 압축 로직을 여기에 구현합니다.
}
}
다음으로, 암호화를 수행하는 데코레이터 클래스를 구현합니다.
public class EncryptionDecorator : FileDecorator
{
public override void Operate()
{
base.Operate();
// 암호화 로직을 여기에 구현합니다.
}
}
사용 예제
이제 위에서 구현한 데코레이터를 사용하여 파일을 압축하고 암호화하는 예제를 살펴보겠습니다.
// 기본 파일 처리 클래스
public class FileProcessor
{
public void Process()
{
// 파일 처리 로직을 구현합니다.
}
}
// 압축 및 암호화 적용
FileProcessor processor = new FileProcessor();
processor = new CompressionDecorator(processor);
processor = new EncryptionDecorator(processor);
processor.Process();
위 예제에서는 먼저 FileProcessor
인스턴스를 만들고, 이를 CompressionDecorator
와 EncryptionDecorator
로 각각 감쌌습니다. 이후 Process
메서드를 호출하면, 데코레이터들의 추가 기능이 순차적으로 수행됩니다.
이제 데코레이터 패턴을 활용하여 파일을 압축하고 암호화하는 방법에 대해 알아보았습니다. 데코레이터 패턴을 사용하면 새로운 기능을 쉽게 추가할 수 있으며, 기존 코드의 수정 없이도 다양한 기능을 확장할 수 있습니다.