정신과 시간의 방

CS/디자인패턴 4

카테고리 설명
  • '게임 프로그래밍 패턴' 교재를 학습하며 핵심 내용과 함께 개인적으로 보충한 내용을 정리해보았다. 관찰자 패턴이란? - 객체 사이에 일대 다의 의존 관계를 정의하여 특정 객체의 상태가 변화할 때, 그 객체에 의존성을 가진 다른 객체들이 변화를 통지 받아 자동으로 업데이트 할 수 있게 만드는 패턴을 뜻한다. - MVC(모델-뷰-컨트롤러) 구조에 기반이 되는 패턴이다. - 흔히 사용되는 패턴으로 Java에서는 핵심 라이브러리인 java.utill.observer에 들어가 있고, C#에서는 event 키워드로 지원한다. 관찰자 패턴을 사용 했을 때 장점은? - 여러 플레이 요소에서 발생시킬 수 있는 기능(ex. 업적)을 구현할 때 코드끼리 디커플링 된 상태에서 동작시킬 수 있다. - 디커플링 상태이므로 어떤 ..

  • '게임 프로그래밍 패턴' 교재를 학습하며 핵심 내용과 함께 개인적으로 보충한 내용을 정리해보았다. 경량 패턴(Flyweight Pattern; 플라이급 패턴)이란? - 한 개의 고유 상태를 다른 객체들에게 공유하여 메모리 사용을 줄이는 패턴이다. - 생성 객체를 공유한다는 점에서 C++ 포인터와 같은 개념이다. 언제, 왜 사용하는가? - 공통적으로 어떤 객체의 개수가 너무 많아서 좀 더 가볍게 만들고 싶을 때 활용할 수 있다. - 경량 패턴을 사용하면 객체를 마구 늘리지 않고도 객체지향방식의 장점을 취할 수 있으므로 열거형으로 수많은 다중 선택문(switch문)을 만들 때 대안으로 사용할 수 있다. 경량 패턴에서의 객체 데이터 두 종류 1. 고유 상태(=자유 문맥) : 모든 객체의 데이터 값이 같아서 공..

  • '게임 프로그래밍 패턴' 교재를 학습하며 핵심 내용과 함께 개인적으로 보충한 내용을 정리해보았다. 명령 패턴의 정의 - 명령 패턴이란 메서드 호출을 객체로 감싸 객체로 다룰 수 있게 하는, 콜백을 객체 지향적으로 표현한 것이다. - 콜백, 일급 함수, 함수 포인터, 클로저, 부분 적용 함수와 비슷하다. 명령 패턴 활용 예제 - 입력 키 변경에서 명령 패턴을 사용하는 이유? : 대부분의 게임이 입력키를 변경할 수 있도록 구현됨. - 왜? 1. 크로스 플랫폼을 지원하는 게임의 경우 입력키가 기기에 따라 달라질 수 있음 2. 개발 도중 입력에 대한 기획이 변경될 수도 있음 - 명령 패턴을 활용한 입력키 변경 구현의 핵심은? : 함수를 직접 교체하는 것이 아니라 교체 가능한 객체로 만드는 것 - 구체적인 구현 ..

  • '게임 프로그래밍 패턴' 교재를 학습하며 핵심 내용을 정리해보았다. CH1. 구조, 성능, 게임 1.1 소프트웨어의 구조 소프트웨어 구조의 핵심 목표 - 작업에 들어가기 전에 알아야 할 지식을 줄이는 것 - 생산성(코드를 더 유연하고 변경하기 쉽게 만듦)을 높이기 위한 좋은 구조를 갖추는 것 - 추상화, 모듈화, 디자인 패턴, 소프트웨어 구조를 사용하는 이유 역시 생산성을 높이기 위해서이다. 좋은 구조란 무엇인가? - 구조는 변경과 관련이 있기 때문에, 얼마나 쉽게 변경할 수 있느냐가 코드 설계 평가의 척도가 된다. - 코드를 거의 건드리지 않고도 적당한 함수 몇 개를 호출하여 원하는 작업을 할 수 있어야 한다. 좋은 구조 만들기 1. 코드를 변경하는 방법 - 코드를 고치기 전에 먼저 기존 코드를 이해해..