메멘토 패턴의 이해

‘메멘토’는 라틴어로 ‘되돌리다’라는 의미를 가진다. 메멘토 패턴은 객체의 상태를 저장하고 필요할 때 복원할 수 있도록 하는 패턴이다.

Unity에서 메멘토 패턴을 사용하는 곳은 게임 상태를 세이브/로드하거나, 되돌리기, 체크포인트 등에서 사용한다. 요점은 데이터를 저장하고 필요 시, 그 데이터를 복원한다는 점이다.

메멘토 패턴의 장점

  1. UndoRedo 기능을 구현하기 쉽다.

    메멘토 패턴은 객체의 특정 시점 상태를 저장하고 복원할 수 있어, UndoRedo 같은 기능을 쉽게 구현할 수 있다.

  2. 데이터 무결성을 보장한다.

    잘못된 상태 변경이 발생한다고 하더라도 이전 상태로 복구할 수 있다. 이는 데이터 무결성 유지에 도움이 된다.

  3. 복원 코드가 분리된다.

    메멘토 객체가 상태 저장 및 복원 기능을 담당하기 때문에, 원본 객체는 별도의 복원 로직을 구현할 필요가 전혀 없다.

메멘토 패턴의 단점

  1. 메모리의 사용량이 증가할 가능성이 있다.

    저장할 상태가 많거나, 상태의 크기가 크다면 많은 메모리를 소비할 수 있다. 특히, 자주 상태를 저장하는 경우 성능 저하가 발생할 수도 있다.