C#에서 partial 키워드를 사용하면 하나의 클래스(Class), 구조체(Struct), 인터페이스(Interface)를 여러 파일에 나눠서 정의할 수 있게 해주는 기능이다.
// Player_Movement.cs
public partial class Player
{
public void Move()
{
Debug.Log("플레이어 이동");
}
}
// Player_Attack.cs
public partial class Player
{
public void Attack()
{
Debug.Log("플레이어 공격");
}
}
이렇게 작성하면 두 개의 파일에 나눠져 있지만, 결국 Player라는 하나의 클래스로 합쳐져서 컴파일된다.
가독성 향상: 긴 클래스를 파일별로 분리 가능.
역할 분리: 기능별로 관리 → 협업할 때 충돌 줄어듦.
자동 생성 코드와의 분리: Unity나 툴이 만든 코드와 사용자 코드가 뒤섞이지 않음.
partial은 반드시 같은 네임스페이스, 같은 접근제한자, 같은 클래스 이름을 가져야함.
결국은 하나의 클래스라서, 변수 중복이나 접근 제한 같은 건 그대로 적용됨.
무분별하게 남용하면 오히려 "이 메서드 어디 있지?" 하고 헷갈릴 수 있음.