TIL

[TIL] 내일배움캠프_Unity 최종 프로젝트 2주차: 주요 메카닉 구현 5, 기술 면접 대비 11일차

Hwone 2023. 11. 3. 23:19

2주차 : 주요 메카닉 구현

팀 회의 내용

- 진행상황 공유

- 2주차 회고노트 작성 

구현한 내용 

- 리팩토링 완료 

- 해상도 변경으로 UI 디자인

 

데이터도 Controller로 보내면서 진짜 MVC 패턴이 된 것 같다 

사실 MVC와 MVP는 명확하지 않고 애매한 것 같다 찾아보다가 게임쪽에서는 MVC 패턴을 사용하지 않는다는 글을 보게 되었다 MVC는 모델과 뷰의 연결을 느슨하게 해서 로직 코드와 뷰의 리소스를 관리하기가 용이하지만 게임은 특성상 뷰가 바뀌면 컨트롤러나 모델이 바뀔 가능성이 높아서 쓸데없는 코드가 많아지고 코드 파악도 쉽지 않다 라는 글이었다 

그래서 추가로 UniRX라는 플러그인을 사용해서 MV(R)P를 쉽게 구현하여 UI에서 사용하면 코드가 깔끔해지고 관리하기 좋다는 말도 있었다 MVP 패턴을 기반으로  Model -> <- Presenter-> <- View 의 관계로 뷰와 모델은 이벤트를 통해 Presenter에게 접근을 할 수 있기 때문에 Presenter를 알지 못한다 이렇게 되면 더 완벽하게 분리되게 하여 더 관리하기 쉬워지고 코드가 복잡해지지 않는다고 한다 이 부분에 대해서는 더 공부하여 관리하기 쉬운 UI를 만들어보고싶다 

 

기술면접 11일차 

Q : 델리게이트(Delegate)의 개념에 대해 설명해주세요 

 

A: 메서드를 참조하고 호출하는 객체이고 메서드를 변수에 할당하거나 매개변수로 전달할 수 있습니다 

주로 콜백 메서드를 구현할 때 많이 사용합니다 즉, 델리게이트는 객체로 실행시간에 어떤 함수가 호출되어야 할지를 결정하는 동적 바인딩을 위해 지원합니다 

 

* 델리게이트와 함수 포인터의 차이

  델리게이트 함수 포인터
타입 안정성  가리키는 함수의 시그니처를 검사하여 잘못된 형식의 함수를 가리키는 델리이트를 방지하여 타입에 안전합니다  함수의 시그니처를 명시적으로 검사하지 않으므로 잘못된 함수 포인터를 사용할 경우 예기치 않은 동작이 발생할 수 있다 
다양성과 다중성  여러 메서드를 동일한 델리게이트 인스턴스에 연결할 수 있어서 이벤트 어리 및 콜백 시나리오에서 유용합니다  하나의 함수만 가리킬 수 있습니다 다중 함수를 처리하려면 여러 함수 포인터를 사용해야 합니다 
객체지향 프로그래밍  특정 객체의 메서드를 가리킬 수 있습니다  객체의 메서드를 참조하려면 멤버 함수 포인터를 사용해야 합니다