일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 컴퓨터비전
- 파이썬
- 자바스크립트
- 데이터베이스
- 인공지능
- 딥러닝
- 알고리즘
- 네트워크보안
- 컴퓨터공학
- 소프트웨어
- 버전관리
- 프로그래밍언어
- 디자인패턴
- 데이터과학
- 데이터분석
- 컴퓨터과학
- springboot
- 머신러닝
- 프로그래밍
- 웹개발
- 자료구조
- 데이터구조
- 소프트웨어공학
- 빅데이터
- 보안
- 클라우드컴퓨팅
- Yes
- I'm Sorry
- 사이버보안
- 네트워크
- Today
- Total
목록Memento패턴 (2)
스택큐힙리스트
동영상/오디오 앱에서 “지난번 보던 자리부터 이어보기” 는 필수 UX입니다.이 기능은 사실 두 가지 디자인 패턴이 만나면 깔끔하게 풀립니다.Memento – 플레이어의 ‘스냅샷’을 저장·복원해 재생 위치를 되살린다.Iterator – 저장된 스냅샷 목록을 순회해 최근 기록을 탐색‧표시한다.아래 예시는 조회수 높은 한국 안드로이드 블로그들의 패턴 사용법을 베이스로, 실제 서비스 코드 형태로 재구성했습니다.1. 핵심 클래스 설계PlayerState (Memento)@JvmInline value class PlayerState(val positionMs: Long)불변(immutable)이라 복원 시 사이드이펙트 없음. VideoPlayer (Originator)class VideoPlayer(private ..
복잡한 앱을 만들다 보면 “방금 전 상태로 돌려줘!” 라는 요구가 꼭 생깁니다. 편집기에서의 Undo/Redo, 게임의 저장·로드, 그리고 상태 머신에서 특정 단계로 롤백 하기까지—모두 객체의 이전 상태를 안전하게 보관-복원하는 Memento 패턴으로 해결할 수 있습니다.Memento는 캡슐화를 깨지 않고 객체의 스냅샷을 외부에 보관했다가 원할 때 정확히 그 상태로 되돌리는 행위(Behavioral) 패턴입니다.언제, 왜 써야 할까?상태 머신 롤백: 복잡한 워크플로에서 오류가 나면 직전 단계로 안전하게 복귀.알림 시스템 취소: 푸시 예약을 “1분 안에 취소” 하도록 임시 스냅샷 보관.에디터 Undo/Redo: 사용자가 편집할 때마다 스냅샷을 스택에 쌓았다가 단계별 복원.핵심은 “상태 이력” 을 Care..