일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- I'm Sorry
- 인공지능
- 네트워크
- Yes
- 프로그래밍언어
- 알고리즘
- 데이터분석
- 빅데이터
- 컴퓨터비전
- 소프트웨어공학
- 웹개발
- 컴퓨터공학
- 데이터과학
- 자료구조
- 프로그래밍
- 네트워크보안
- 컴퓨터과학
- 사이버보안
- 데이터베이스
- 버전관리
- 클라우드컴퓨팅
- springboot
- 자바스크립트
- 소프트웨어
- 보안
- 데이터구조
- 딥러닝
- 디자인패턴
- 머신러닝
- Today
- Total
목록Kotlin예제 (3)
스택큐힙리스트
“되돌리기(Undo)”나 “기록/재실행(Redo·Macro)”가 필요할 때, 팀이 가장 많이 헷갈리는 두 패턴이 커맨드(Command)와 메멘토(Memento)죠. 결론부터 말할게요.작업 자체를 기록·재생하고 싶다면 → 커맨드객체 상태를 ‘그 순간’으로 즉시 되돌리고 싶다면 → 메멘토두 패턴은 겹치는 영역이 있지만 목표가 다릅니다. 커맨드는 “행위(요청)”를 객체로 만들고 큐잉·지연·원격 실행·로그·매크로까지 다룹니다. 메멘토는 “상태 스냅샷”을 캡슐화해 내부 구현을 노출하지 않고 저장·복원합니다.언제 커맨드가 맞나?이럴 때 커맨드가 덜 아픕니다.행위 중심으로 생각해야 할 때: “이 버튼이 누르면 어떤 작업을 수행한다”를 깔끔히 객체화.큐·지연·원격 실행이 필요할 때(잡 큐, 워커, 재시도).Audit/..
복잡한 편집기나 결제 플로우에서 “방금 전으로 돌아가줘”는 거의 필수 기능이죠. 이걸 매번 if/else로 땜빵하다 보면 상태 관리가 산으로 갑니다. 메멘토 패턴은 객체의 내부 구현을 까지 않고(캡슐화 유지) 이전 상태 스냅샷을 저장·복원하게 해 주는 정석 해법이에요.왜 메멘토인가? (문제 → 해법)문제: 객체가 복잡해질수록 “원래대로” 돌리는 로직이 여기저기 흩어짐 → 사이드이펙트·버그 증가해법: 현재 상태를 Memento(스냅샷) 로 외부에 맡겨 두고, 필요할 때 Originator 가 그 스냅샷으로 복원. 스냅샷 묶음은 Caretaker 가 관리. 구조가 단순하고 테스트가 쉬워집니다.구성 요소 한 번에 이해하기Originator: “상태 주인공”. 스냅샷을 만들고(save()), 나중에 되돌리는(r..
UI 컴포넌트·모듈·마이크로서비스가 서로 직접 호출을 시작하면, 어느 순간 “누가 누구를 부르는지” 알 수 없는 스파게티 의존 그래프가 됩니다.Mediator 패턴은 “중재자”-객체를 사이에 두어 모든 통신을 중앙 집중화합니다. 콜리그(Colleague)들은 중재자에게만 말하고, 중재자가 대신 다른 콜리그에게 메시지를 전달합니다. 결과적으로 각 객체는 서로를 전혀 모른 채 협력할 수 있고, 관계 변경도 중재자만 수정하면 됩니다.언제 쓰면 좋은가?이벤트 버스: 게시자와 구독자가 직접 연결되지 않고 중앙 EventBus(Mediator)를 통해 소통.알림 시스템: 다양한 채널(SMS, 이메일, 앱 푸시)을 하나의 NotificationHub(Mediator)가 조정.상태 머신: 여러 상태 객체가 Transi..