Main Loop Architecture
메인 루프란? 여러가지 병행적으로 처리되지 않고 하나의 Main Logic에서 동작을 해야하는 것들을 따로 관리하는 패턴을 말한다. 심플하지만 필요에 따라 사용하면 굉장히 유용한 결과를 만들수있다.
하지만 장점과 단점이 있다는 것을 생각 해야 한다.
장점 | 단점 |
병렬로 진행됨으로 순차적인 처리 및 시간의 지연을 방지할수 있다. | 순차적인 실행이 필요하다. |
하나의 큰 흐름을 제어함으로 디버깅 및 플로우 명확하게 파악할수 있다. | 코드의 규모가 커진다. |
SRP (Single Resoponsibility Principle)과 반대된다. |
반응형
지연에 대한 문제를 최소화하거나 보간등 여러가지 관리의 차원에서는 도입하는것에 대한 고민을 해보는것을 추천한다.
본인은 단순히 모바일 게임을 만드는 과정에서 종종 사용하는 패턴이다.
예를들어 Unit 이라는 클래스들이 각자 Update (Loop)를 진행하는 로직이 있는 경우에
A,B,C 유닛에서 B의 어떤 Update(Loop) 동작에서 지연이 발생하게되면 다른 C나, A에 영향을 줄수 있는 상황이 생긴다. 이 상황에서 지연에 대한 이동 보간을 할때도 UnitManager가 관리를 하게되면
지연이 되는 시점에서 시간만큼을 지연이 안된 다른 Unit에게 보간을 해줄 수 있다.
Game Loop : [링크]
Unity 에서의 Main Loop 설명 : [링크]
★★☆☆☆
반응형
'개발 > 기본) 디자인패턴' 카테고리의 다른 글
디자인패턴)더블 디스패치(Double Dispatch) (1) | 2023.07.31 |
---|---|
디자인패턴) 노출 모듈 패턴 (Revealing Module Pattern- JavaScript) (0) | 2023.06.16 |
디자인패턴)KISS Command Pattern (KEEP IT SIMPLE STUPID) (0) | 2022.04.05 |
디자인패턴) 방문자 패턴(Visitor Pattern) (0) | 2020.07.07 |
디자인패턴) 데코레이터 패턴(Decorator Pattern) (2) | 2020.07.07 |
댓글