일을 하다가 State 어쩌고 하는 클래스가 있길래 봤는데 잘 이해가 안 갔다. 혹시나 디자인 패턴일까 찾아봤는데, 아니나 다를까 상태 패턴을 사용해서 설계한 방식이었다. 상태패턴이란? 상태 변경에 따라 객체의 행위가 달라져야 하는 상황에서 객체가 직접 상태를 체크하여 상태에 따른 행위를 호출하지 않고 상태를 객체화해서 상태가 필요한 행동할 수 있게 위임하는 디자인 패턴이다. 객체가 직접 상태를 체크해서 행위를 호출하면 뭐가 안 좋아? 코드로 보자. class Document is field state: string // … method publish() is switch (state) "draft": state = "moderation" break "moderation": if (currentUser...