[assembly: InternalsVisibleTo(string)]
유니티에서 제공하는 여러 패키지들을 뜯어 관찰하다가 AssemblyInfo.cs
파일에 줄줄이 정의되어있는 어트리뷰트들을 발견했습니다.
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Unity...");
신기하게도 같은 솔루션 내 정의되어있는 어셈블리의 이름을 인수로 넣어주고 있었습니다. 그래서 이게 어떤 역할을 하는지 궁금해져 검색을 해 봅니다.
internal
접근 제한자로 정의된 클래스에 특정한 어셈블리로부터의 접근을 허용하도록 해주는 속성이었습니다. 유니티는 패키지를 다운받아 사용하는 개발자가 수정하길 원치 않는 클래스는 internal
로 묶어두고 내부 네임스페이스에서만 사용하도록 제한하고 있습니다.
하지만 패키지별로 어셈블리가 나뉘어야하고, 패키지 내에서도 역할과 플랫폼 의존성에 따라 여러개의 어셈블리로 나뉘기도 할 텐데 internal
로 선언하고도 어떻게 사용가능했는지에 대한 의문이 풀렸습니다.
게임 개발자는 대체로 다른 사람의 코드를 이어 사용하고 작성하며 엔드 유저라고 볼 수 있습니다. 게이머에게 소스 코드를 제공하며 수정할 수 있도록 허용하지 않고 있기 때문입니다. 그래서인지 소규모 팀일수록 internal
과 public
구분을 크게 하지 않고 public
으로 개발하는 케이스가 다수입니다.
팀이 커지고, 사내 공유 프레임워크가 생기고 접근 권한이나 사용 및 상속에 대한 권한을 제한해야 할 때 유용하게 쓸 수 있겠습니다.
Author And Source
이 문제에 관하여([assembly: InternalsVisibleTo(string)]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@1111/assembly-InternalsVisibleTostring저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)