배고파서 잠이 안온다...

디씨에 글 처음 싸보는데 심지어 모바일로 쓰고 있어서 읽기 힘들어도 이해 바란다

주제는 "매개변수를 받지 않고 값을 반환하지 않는 메소드"의 사용이다.

게임프로그래밍의 중요한 특징으로 사전설계의 어려움을 꼽고싶다.
어떤 기획이 추가/변경/제거될 것인지 예측하기 힘들다는 것은 여러분이 모두 잘 아실듯.
따라서 게임코드는 기획의 변경에 따라 진화(보통은 퇴화..)한다.
(이 부분은 지속적인 리팩토링을 통해 어느정도 방어가 가능하나 너무 많은 시간을 투자할 경우 새로운 기능을 추가할 시간을 잃게 된다.)

코드의 변경을 방해하는 대표적인 것은 복잡한 의존관계이다.
어떤 클래스를 통째로 변경해야한다고 하자.
이 때 해당 클래스에 대한 의존성이 코드베이스 전체에 산재한다면, 보통 말하는 "차라리 처음부터 다시 짜자"와 같은 상황이 발생한다.
따라서 코드베이스의 변경에 대한 유연성을 확보하려면 타입 간의 상호 의존을 줄일 필요가 있다.

일반적으로 타입 의존성 관계를 복잡하게 만드는 주범은 매개변수와 반환이다.
매개변수는 의존성의 입력을 의미하며 반환은 의존성의 출력을 의미한다.
이러한 관점에서 볼 때, 매개변수와 반환의 사용을 의도적으로 줄일 경우 매우 간결한 의존관계를 디자인할 수 있다.

하지만 매개변수와 반환없이 어떻게 서로 다른 클래스의 상호작용을 설계할 수 있냐는 의문이 남는다.
이에 대한 해답은 자신이 작성 중인 코드가 매개변수와 반환을 최대한 적게 사용하도록 바꿔보며 찾아보길 바란다.

다음 배고픈 새벽에 만나요~



사족.
타입 의존성을 줄이기 위해 '일반적'으로 사용하는 방법은 구체클래스 대신에 인터페이스에 의존하도록 설계하는 것이다.





- dc official App