언리얼/멀티플레이 학습

플러그 인

코드망령 2026. 5. 30. 15:51

플러그인(Plugin)

플러그인은 프로그램이나 엔진의 기능을 확장하기 위해 추가로 설치하는 모듈이다.

기본 기능에는 포함되어 있지 않지만,
필요한 기능을 쉽게 추가할 수 있도록 만들어진 독립적인 코드 묶음이다.


플러그인을 사용하는 이유

  • 기능을 재사용할 수 있음
  • 프로젝트를 모듈화할 수 있음
  • 필요한 기능만 추가 가능
  • 유지보수가 쉬움
  • 직접 구현하는 시간 절약

언리얼 엔진에서의 플러그인

언리얼 엔진의 플러그인은 다음과 같은 기능을 추가하기 위해 사용된다.

  • 새로운 기능 추가
  • 에디터 기능 확장
  • 온라인 서비스 연동
  • AI 기능 추가
  • 멀티플레이어 기능 추가

예시

  • OnlineSubsystemSteam
  • GameplayAbilities(GAS)
  • CommonUI
  • Enhanced Input
  • EOS(Epic Online Services)

플러그인의 구조

플러그인은 일반적으로 다음과 같은 구조를 가진다.

Plugin/
├── Source/
│   ├── PluginModule/
│   │   ├── Public/
│   │   └── Private/
│
├── Resources/
│
└── PluginName.uplugin

플러그인은 메시나 텍스처와 같은 다른 자산을 포함하지 않음.
개별 작업을 캡슐화하고 모듈이 설계된 대상에게만 책임을 지게함

uplugin

플러그인 정보를 저장하는 설정 파일

  • 플러그인 이름
  • 버전
  • 로드 여부
  • 의존성 정보

등을 관리한다.


언리얼 프로젝트에서 플러그인 활성화

  • Edit -> Plugins

  • 원하는 플러그인 검색
  • 체크박스 활성화
  • 에디터 재시작

플러그인과 직접 구현의 차이

구분 플러그인 사용 직접 구현
개발 속도 빠름 느림
유지보수 쉬움 직접 관리
엔진 버전 영향 받을 수 있음 상대적으로 적음
커스터마이징 제한적 자유로움

실제 예시

Steam 멀티플레이어

플러그인 사용

OnlineSessionInterface->CreateSession(...);

직접 구현

// 소켓 생성
// 클라이언트 연결 관리
// 패킷 송수신
// 세션 관리
// 로비 시스템 구현

장점

  • 빠르게 기능을 추가할 수 있음
  • 검증된 기능을 사용할 수 있음
  • 유지보수가 편함
  • 개발 시간을 크게 줄일 수 있음

단점

  • 엔진 버전에 영향을 받을 수 있음
  • 내부 동작을 이해하기 어려울 수 있음
  • 플러그인 업데이트에 의존하게 됨
  • 원하는 기능 수정이 어려울 수 있음

정리

  • 플러그인은 기능을 추가하는 독립적인 모듈이다.
  • 필요한 기능을 빠르게 사용할 수 있다.
  • 언리얼에서는 Steam, GAS, Enhanced Input 등도 플러그인 형태로 제공된다.
  • 플러그인 없이도 구현은 가능하지만 개발 시간이 훨씬 오래 걸린다.
  • 실무에서는 대부분 플러그인을 활용하고 필요한 부분만 수정해서 사용한다.