📝 초보 개발자를 위한 완벽 가이드: 이름만 봐도 역할이 보이는 핵심 용어 총정리!

개발을 시작할 때 가장 막막한 것 중 하나는 수많은 용어들입니다. 특히 핸들러, 컨트롤러, 매니저처럼 비슷해 보이는 이름들이 많죠. 이 글에서는 이 용어들의 이름에 숨겨진 의미와 역할의 차이를 명쾌하게 정리하여, 개념을 쉽고 빠르게 잡아드리겠습니다!


🚀 파트 1: 기본 동작을 정의하는 핵심 용어

1. 핸들러 (Handler) 🚨: ‘일 처리 전문가’

키워드 핸들 (Handle) = 처리하다
역할 특정 이벤트나 요청이 발생했을 때, 이를 받아 즉각적으로 처리하는 로직을 담고 있습니다.
게임 예시 InputHandler: 플레이어가 키를 누르는 이벤트를 감지해 캐릭터 컨트롤러에 전달합니다.
핵심 일이 터졌을 때, 수습하고 다음 단계로 넘기는 실무 담당자.

2. 콜백 (Callback) 📞: ‘나중에 다시 불러주세요’

키워드 콜 백 (Call Back) = 다시 불러주다
역할 어떤 함수를 실행하면서, 작업이 완료된 후에 실행해 달라고 다른 함수에게 전달하는 함수입니다. 주로 비동기 작업에 사용됩니다.
게임 예시 애니메이션 완료 콜백: 캐릭터 공격 애니메이션이 끝나면, 데미지 판정을 시작하라고 알립니다.
핵심 “나중에 전화 주세요” 라고 약속해놓고, 작업 완료 시점에 약속대로 호출되는 함수.

3. API (Application Programming Interface) 🤝: ‘기능 사용 설명서 & 창구’

키워드 인터페이스 (Interface) = 상호작용 접점
역할 서로 다른 프로그램이나 시스템이 통신할 수 있도록 미리 정의된 약속과 방법을 제공하는 매개체입니다.
게임 예시 게임 엔진 API: Unity의 GetComponent()처럼, 엔진의 복잡한 내부 동작을 몰라도 기능을 쉽게 사용할 수 있도록 제공하는 함수들.
핵심 내부 구현은 숨기고, 외부에서 기능을 사용할 수 있는 규격화된 창구.

4. 추상화 (Abstraction) 🖼️: ‘핵심만 보여주기’

키워드 추상 (Abstract) = 핵심만 뽑아내다
역할 프로그램의 복잡한 세부 구현 내용은 숨기고, 사용자가 핵심적인 기능만 쉽고 간편하게 사용할 수 있도록 단순화하는 설계 기법입니다.
일반 예시 자동차 운전: 운전자가 엔진의 복잡한 작동 방식(내부 구현)을 몰라도, 핸들/액셀/브레이크(추상화된 인터페이스)만으로 운전이 가능합니다.
핵심 불필요한 정보는 감추고, 꼭 필요한 정보만 노출하는 기술.

🎯 파트 2: 책임과 역할의 범위에 따른 구분 (매니저, 컨트롤러, 핸들러)

이 세 가지 용어는 하나의 시스템 내에서 책임의 범위에 따라 역할이 분리됩니다.

구분 매니저 (Manager) 컨트롤러 (Controller) 핸들러 (Handler)
이름의 의미 총괄 관리자 (전체를 책임) 조종자/지배자 (특정 대상을 제어) 처리하는 사람 (특정 이벤트를 처리)
책임 범위 가장 넓음 (시스템 전체) 중간 (특정 객체의 행동 논리) 가장 좁음 (특정 이벤트 처리)
주요 역할 시스템 상태 초기화 및 유지, 다른 객체 간 통신 조정 특정 객체의 동작(AI, 이동 등)을 제어하고 게임 로직을 실행 외부/내부 이벤트를 받아 즉시 처리 로직 실행
게임 예시 SoundManager, GameManager, SceneManager PlayerController, AIController, CameraController InputHandler, CollisionHandler, ExceptionHandler
비유 CEO (회사 전체 목표 설정 및 부서 간 조정) 부서장 (실무 팀의 목표와 행동 방식 결정) 실무 팀원 (특정 업무를 즉시 처리)

🔍 세 객체의 협업 예시: 게임에서 아이템 줍기

  1. 핸들러 (CollisionHandler): “캐릭터와 아이템이 충돌했다이벤트를 감지”하고 컨트롤러에게 알립니다.
  2. 컨트롤러 (PlayerController): 충돌 이벤트 정보를 받고 “아이템을 주울 수 있는 상태인지 (로직) 확인”하고, 매니저에게 아이템 정보를 넘깁니다.
  3. 매니저 (InventoryManager): 아이템 정보를 받아 인벤토리에 추가하고 (상태 변경), 아이템 획득 효과음을 SoundManager (다른 매니저)에게 요청합니다.

이처럼 각자의 역할이 명확히 분리되어야 시스템이 유연하고 유지보수하기 쉬워집니다.