"깊이"가 다른 게임개발자 허민영

유저에서 게임까지, 철학에서 코딩까지, 본질을 보는 게임개발

2025/06/08 3

마틴 파울러와 도메인 주도 개발(DDD)의 함정

프로그래밍 설계 원칙에 대한 균형잡힌 관점프로그래밍의 근본적 어려움은 복잡한 현실을 코드로 옮기는 과정에서 발생한다. 현재 널리 받아들여지는 설계 원칙들과 아키텍처 패턴들이 많은 도움을 주고 있지만, 때로는 맥락을 고려하지 않은 채 획일적으로 적용될 때 예상치 못한 복잡성을 만들어낼 수 있다.SOLID 원칙의 맥락적 한계SOLID 원칙은 분명히 좋은 지침이지만, 모든 상황에 동일하게 적용하기에는 한계가 있다. 특히 의존성 역전 원칙(DIP)의 경우, 시스템 규모에 따른 적절한 결합 메커니즘을 고려해야 한다. 클래스 내부에서는 직접 호출이 효율적이고, 작은 규모에서는 구체 클래스 주입이 더 적합할 수 있다. 무조건적인 추상화는 때로는 불필요한 복잡성을 초래할 수 있다.리스코프 치환 원칙(LSP) 역시 이론..

[Akasha] 프레임워크의 핵심 목표

메인 목표: 복잡한 게임 시스템을 안정적이고 확장 가능하게 관리할 수 있는 아키텍처 구축5가지 세부 목표1. 시스템 간 명확한 책임 분리WorldSystem과 UISystem으로 관심사를 분리하여 각각의 복잡도를 독립적으로 관리계층별 SoC(Separation of Concerns)를 통해 추상화 수준을 체계적으로 구분2. 반응형 데이터 흐름을 통한 느슨한 결합Rx 프로퍼티 시스템(RxVar, RxMod, FSM, RxStateFlagSet)으로 데이터 변화에 자동 반응하는 구조구독 패턴을 통해 컴포넌트 간 직접 의존성을 제거3. 모듈식 기능 분할로 코드 재사용성 극대화Entity-Part 시스템으로 기능을 작은 단위로 분할하여 조합 가능Effect 시스템으로 게임 로직을 재사용 가능한 효과 단위로 모듈..

프로그래밍 패러다임의 재고찰

프로그래밍의 근본적 어려움프로그래밍에서 지속적으로 고전하고 있는 문제들을 살펴보면, 복잡성 관리, 변화에 대한 대응, 코드의 가독성과 유지보수성, 그리고 성능과 추상화의 트레이드오프 등이 있다. 이러한 문제들은 단순히 기술적 한계가 아니라, 프로그래밍의 본질적 특성에서 기인한다.프로그래밍은 세상에 대한 객관적 인식을 코드로 작성하는 행위이다. 세상 자체가 복잡하기 때문에 코드도 복잡해지는 것이고, 세상이 실체적이기 때문에 추상화에도 비용이 따른다. 따라서 추상화나 간단한 코드는 프로그래머를 위해 필요한 것이지 실질적인 구동을 위해 필요한 것은 아니다. 이는 작성하는 코드와 동작하는 코드의 차이가 커도 된다는 것을 의미하며, 결국 프로그래밍 언어의 고도화를 통해 해결되어야 할 문제이다.패러다임 선택의 새로..