‘메멘토’는 라틴어로 ‘되돌리다’라는 의미를 가진다. 메멘토 패턴은 객체의 상태를 저장하고 필요할 때 복원할 수 있도록 하는 패턴이다.
Unity에서 메멘토 패턴을 사용하는 곳은 게임 상태를 세이브/로드하거나, 되돌리기, 체크포인트 등에서 사용한다. 요점은 데이터를 저장하고 필요 시, 그 데이터를 복원한다는 점이다.
Undo
와 Redo
기능을 구현하기 쉽다.
메멘토 패턴은 객체의 특정 시점 상태를 저장하고 복원할 수 있어, Undo
및 Redo
같은 기능을 쉽게 구현할 수 있다.
데이터 무결성을 보장한다.
잘못된 상태 변경이 발생한다고 하더라도 이전 상태로 복구할 수 있다. 이는 데이터 무결성 유지에 도움이 된다.
복원 코드가 분리된다.
메멘토 객체가 상태 저장 및 복원 기능을 담당하기 때문에, 원본 객체는 별도의 복원 로직을 구현할 필요가 전혀 없다.
메모리의 사용량이 증가할 가능성이 있다.
저장할 상태가 많거나, 상태의 크기가 크다면 많은 메모리를 소비할 수 있다. 특히, 자주 상태를 저장하는 경우 성능 저하가 발생할 수도 있다.