-
Unity | 람다식(Lambda Expression)다시한번 개발자도전! 2026. 3. 3. 14:31
1. 람다식이란?
람다식은 이름이 없는 **익명 함수(Anonymous Function)**를 만들기 위한 간결한 문법임. 코드를 변수처럼 다루거나, 다른 메서드의 인수로 직접 전달할 때 매우 유용함.
2. 기본 문법과 구조
람다 연산자 =>를 기준으로 왼쪽에는 입력 매개변수, 오른쪽에는 식 또는 문장 블록이 위치함.
(매개변수) => 식/문장_블록- 매개변수: 데이터 타입을 명시하지 않아도 컴파일러가 유추함(형식 유추).
- 식/문장: 결과값을 반환하거나 특정 로직을 수행함.
3. 활용 방법
① Unity Event 시스템 (버튼, UI)
public class UIController : MonoBehaviour { public Button startButton; void Start() { // 간단한 로그 출력이나 함수 호출 시 편리함 startButton.onClick.AddListener(() => Debug.Log("Game Start!")); // 매개변수가 있는 함수를 연결할 때 int stageLevel = 1; startButton.onClick.AddListener(() => LoadStage(stageLevel)); } void LoadStage(int level) => Debug.Log($"Loading Stage {level}"); }② Action 활용 람다
public void ProcessData() { int multiplier = 2; // Action 대리자를 활용한 람다 System.Action<int> calculate = (inputNumber) => { int result = inputNumber * multiplier; Debug.Log($"Result: {result}"); }; calculate(10); }
📋 유니티 C# 람다식(Lambda) 장단점 비교
구분 장점 (Pros) 단점 (Cons) 생산성 코드 간결화: 별도 메서드 선언 없이 즉석에서 로직 구현 가능. 재사용성 불가: 익명 함수이므로 다른 곳에서 호출하여 쓸 수 없음. 유지보수 지역성(Locality): 관련 로직이 사용하는 곳 바로 옆에 있어 흐름 파악이 쉬움. 디버깅 난해: 에러 발생 시 콜 스택에 이름이 명확히 남지 않아 추적이 어려움. 기능성 클로저(Closure): 외부 지역 변수를 매개변수 전달 없이 내부에서 직접 참조 가능. 이벤트 해제 곤란: 등록한 람다는 특정해서 제거하기 어려워 메모리 누수 위험이 있음. 성능 지연 실행: 필요한 시점에만 로직이 실행되도록 설계하기 유리함. GC 부하: 외부 변수 캡처 시 힙 메모리 할당이 발생하여 가비지 컬렉션 유발. '다시한번 개발자도전!' 카테고리의 다른 글
Unity | Is-A 관계 와 Has-A 관계 (0) 2026.03.05 Unity | 제네릭(Generics) (0) 2026.03.04 Unity | 델리게이트를(delegate) 활용한 이벤트(Event System) (0) 2026.02.25 Unity | 델리게이트(Delegate) (0) 2026.02.24 Unity | 유한상태머신(FSM, Finite State Machine)과 상태패턴(State Pattern) (0) 2026.02.23