반응형
학교 마친 후 기숙사 화재대피훈련으로 인하여 자습 시간이 많이 없어 어제 수업을 들으며 언급되었던 커플링에 대한 깨달음을 적어보려 한다.
2022년 하계 게임잼때 프로젝트를 진행하면서 GameManager등의 instance를 왜 생성해주고 코드를 실행시킬 때 생성이 되었는지 안 되었는지 확인을 하고 안 되었다면 instance를 생성해주는 작업을 굳이 왜 해주는 것인지 이해가 되지 않았었다. ( 싱글톤 패턴을 만들 때 왜 굳이 만들어지지 않았다면 만들어주는 것인지 이해가 안 되었다. 라고 설명하면 편할까? 싱글톤에 대한 이해가 충분하지 않아 다음 자습시간때 알아볼 예정이다. )
커플링의 개념에 대하여 들으며 이 이유를 깨닫게 되었는데, 커플링이란 두 오브젝트가 잘 알고 지내고 하드하게 연결되어 있는 정도를 뜻한다.
이것이 무슨 말이냐면 gameManager.instance.함수( ); 라는 코드를 실행시켰을 때 gameManager에서 문제가 생겼다면 함수가 실행되지 않는다. 즉, 유기적으로 연결된 코드들은 커플링이 깊을? 수록 하나에 문제가 생기면 전체적으로 모두 문제가 생긴다는 것이다.
이때문에 instance가 생성되지 않음으로써 일어나는 오류를 막아주기 위하여
if ( instance == null )
{
instance = new GameManager();
}
이런 식으로 비어있다면 새로 할당해주는 것이라고 이해하였다.
혹시라도 이 부족한 글을 읽게 되는 사람이 있다면 ... 잘못된 것은 잘못되었다고 지적해주고 무엇이 맞는 개념인지 설명해주신다면 굉장히 감사할 것 같다 😥
반응형
'Unity, C#' 카테고리의 다른 글
[Unity C#] Addressables Asset System (어드레서블 에셋 시스템) (0) | 2022.11.29 |
---|---|
[C#] 암호화, 복호화 (0) | 2022.11.07 |
[Unity C#] 변수와 자료형, 대입 연산자, 조건문, 반복문 (0) | 2022.10.11 |
[22.09.21] Unity 스크립트에서 Scene Popup하기 (0) | 2022.09.21 |
[22.09.13] Unity EventManager (2) | 2022.09.13 |