TIL

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

Hwone 2023. 11. 5. 01:19

2주차 : 주요 메카닉 구현 

구현한 내용 

- 주문하기 버튼 완성 

- 리팩토링 

 

아직 데이터들이 만들어지지 않아서 일단 테스트 코드를 넣어 데이터만 넣으면 실행될 수 있게 로직 완성했음

 

기술면접 대비 12일차 

 

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

 

A : delegate와 event의 가장 큰 차이점은 event는 인터페이스 내부에 선언할 수 있지만, 델리게이트는 선언할 수 없습니다

그리고 event는 클래스 내부 상태를 캡슐화하고, 외부에서 무분별한 조작을 방지하여 안정성을 높이기 위해 public으로 선언되어도 다른 클래스에서는 직접 호출할 수 없습니다 

Action과 Func은 사용자 지정 델리게이트로 일반 델리게이트와는 다르게 명시적으로 델리게이트를 선언할 필요가 없습니다 Action은 반환값이없는 메서드를 참조하고 Func은 반환값을 가지는 메서드를 참조합니다 

 

a.(꼬리질문) 프로젝트에서 사용한 경험이 있나요 ? 

: UI들을 관리할 때 자주 사용했습니다 주로 Action event를 이용하여 특정 버튼이 눌렸을 때, 데이터가 업데이트 되었을 때 등 상태 변화나 특정 상황이 발생 했을 때 사용하여 객체 간의 의존성을 줄일 수 있었습니다 

 

* delegate : 메서드를 참조한다, 다른 메서드를 호출하거나 메서드의 참조를 전달하는 데 사용 

* Event : 이벤트는 클래스 내에서 발생한 특정한 동작을 다른 클래스에 통지하기 위한 메커니즘으로 델리게이트를 기반으로 하며, 이벤트가 발생하면 연결된 메서드(이벤트 핸들러)가 호출된다 

* Action : 특정한 시그니처(매개변수) 를 가진 메서드를 참조하는 데 사용되고, 반환 값이 없는 메서드를 참조할 때 주로 사용된다 

*Func : 반환 값을 가지는 메서드를 참조하는 데 사용되고 입력 및 출력 매개변수의 유형을 정의 할 수 있다

 

특성 Delegate Event Action Func
용도 메서드 호출 및 참조 전달  클래스 간 이벤트 통지 및 핸들링  간단한 메서드 참조 및 람다 식 사용  반환 값을 가지는 메서드 참조 

반환 값 없거나 다양한 반환 유형 가능  없음   없음  반환 값을 가짐
매개변수 다양한 매개변수 유형 가능  주로 이벤트 핸들러 이벤트 데이터를 전달  다양한 매개변수 유형 가능  다양한 입력 매개변수 및 반환 매개변수 지정 가능 
활용예시  이벤트 처리, 콜백 함수 등  UI 이벤트 핸들링, 옵저버 패턴 간단한 비동기 처리, 람다 사용  LINQ 및 함수형 프로그래밍에서 반환 값을 필요로 할 때