24.03.14 기술 면접

Amberjack·2024년 3월 14일
0

기술면접

목록 보기
2/7

24.03.14 기술 면접

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

델리게이트란 메서드를 변수처럼 사용할 수 있게 해주는 기능입니다. 여러 메서드에서 동일한 메서드 처리를 필요로 할 때, 델리게이트를 통해 메서드를 매개 변수처럼 넘겨주는 것이 가능합니다. 이를 통해 여러 메서드마다 같은 동작 처리를 구현할 필요 없이 델리게이트를 활용하여 코드의 확장성을 높여줄 수 있습니다.

12. 'delegate', 'event', 'action', 'func' 간의 차이를 설명해주세요.

delegate는 메서드를 변수처럼 활용할 수 있도록 해주는 기능입니다. delegate를 활용하기 위해서는 반환 타입과 매개 변수를 맞춰줘야 합니다. delegate는 인터페이스의 내부에 선언을 하고, public을 통해 외부에서도 불릴 수 있습니다.
반면 event는 인터페이스에서 선언을 할 수 없고, public으로 선언되어 있어도 외부에서 불릴 수 없습니다.

action과 func 모두 델리게이트 변수로, 델리게이트를 선언할 때 따로 델리게이트 변수를 선언하지 않고 Action, Func을 통해 선언할 수 있습니다. Action은 반환 타입이 없을 때, Fucn은 반환 타입이 있을 때 사용합니다.

1. (꼬리질문) 프로젝트에 적용해 본 경험이 있다면 설명해주세요.

event와 action은 옵저버 패턴을 구현하기 위해 사용해본 경험이 있습니다. 예를 들어, 플레이어와 몬스터가 싸우는 게임에서 스테이지 승리 또는 패배 시 처리를 하기 위해 스테이지 종료 이벤트를 만든 적이 있었는데, 그 때 event와 action을 활용한 적이 있습니다.

0개의 댓글