기능을 사용하여 사이트 요소 배포(SharePoint Server 2010)

 

적용 대상: SharePoint Server 2010

마지막으로 수정된 항목: 2016-11-30

이 문서에서는 개발한 사이트 요소 사용자 지정을 기능을 통해 배포하는 방법을 설명합니다. 기능을 사용하면 사이트 사용자 지정을 활성화 및 비활성화할 수 있는 범위를 제어하고 여러 서버 팜에 이러한 사용자 지정을 손쉽게 배포할 수 있습니다.

이 섹션의 내용

  • 기능이란?

  • 기능을 사용해야 할 경우

  • 기능 만들기

  • Windows PowerShell을 사용하여 기능 설치 및 활성화

기능이란?

기능은 SharePoint Server 2010용으로 정의된 다양한 확장을 포함하는 컨테이너로, 프런트 엔드 웹 서버 및 응용 프로그램 서버에 배포되는 XML 파일 집합으로 구성됩니다. 기능은 솔루션 패키지의 일부분으로 배포할 수도 있고 SharePoint Server 사이트에서 개별적으로 활성화할 수도 있습니다.

기능은 간단한 사이트 사용자 지정을 만들 때 발생하는 복잡성을 줄여 줍니다. 기능을 사용하면 간단한 기능을 변경할 때 대량의 코드를 복사하지 않아도 되므로 프런트 엔드 웹 서버 간에 발생할 수 있는 버전 관리와 불일치 문제가 줄어듭니다.

기능을 사용하면 배포 과정에서 쉽게 기능을 활성화하거나 비활성화할 수 있으며 관리자는 사용자 인터페이스에서 특정 기능을 설정하거나 해제하여 서식 파일이나 사이트 정의를 편리하게 변환할 수 있습니다.

요소는 기능 내의 최소 단위입니다. Feature 요소는 Feature.xml 파일에서 기능을 정의하고, 기능을 지원하는 어셈블리, 파일, 종속성 및 속성의 위치를 지정하는 데 사용됩니다. 기능에는 Feature.xml 파일과 개별 요소를 설명하는 모든 파일이 포함됩니다. 다른 스키마의 다른 Feature 요소를 Onet.xml 파일에서 사용하여 사이트 정의에서 사이트가 만들어질 때 기능이 활성화되도록 지정할 수 있습니다.

일반적으로 Feature.xml 파일은 최상위 <Elements> 태그에 기능을 지원하는 요소에 대한 정의가 포함된 XML 파일을 하나 이상 가리킵니다. SharePoint Server 2010의 요소는 보통 Microsoft Office SharePoint Portal Server 2003의 Onet.xml 또는 Schema.xml 파일에 있는 별개의 노드에 해당됩니다. 요소에는 사용자 지정 메뉴 항목 또는 이벤트 처리기 등 여러 가지 유형이 있습니다.

기능을 사용하는 경우

기능, 사용자 지정 또는 구성 변경 내용을 프런트 엔드 웹 서버에 배포하려는 경우 기능을 사용하는 것이 좋습니다. 기능은 활성화 및 업그레이드되고 결국 비활성화되기까지의 전체 수명 주기 동안 기능을 관리하는 유연한 방법입니다.

다음과 같은 하나 이상의 시나리오에서 기능을 사용하여 개발된 사이트 요소를 배포할 수 있습니다.

  • 활성화 및 비활성화 필요   기능에 사이트 요소 사용자 지정을 배포하는 경우 Windows PowerShell을 사용하거나 개체 모델을 사용하여 기능을 설치, 활성화 및 비활성화할 수 있습니다. 또한 중앙 관리 웹 사이트를 사용하여 기능을 활성화 및 비활성화할 수도 있습니다.

  • 범위의 유연성   팜, 웹 응용 프로그램, 사이트 모음, 웹 사이트 등 단일 범위에 대한 기능을 활성화할 수 있습니다.

  • 편리한 분산 배포   기능을 솔루션의 일부로 여러 서버 팜에 쉽게 배포할 수 있습니다.

  • 기능 개체 모델을 통한 제어   기능 개체 모델을 사용하면 지정된 범위에서 설치된 기능 목록을 지정할 수 있고 팜 및 사이트 수준에서 기능을 사용할지 여부를 제어할 수 있습니다.

패키지 솔루션을 사용하여 기능을 패키지로 묶어 서로 다른 환경에 배포할 수 있습니다. 예를 들어 솔루션 패키지를 사용하여 사용자 지정을 개발자 워크스테이션과 통합 팜 간에 배포하고 통합 팜이나 제작 클라이언트 워크스테이션과 파일럿이나 프로덕션 팜 간에 배포할 수도 있습니다.

기능 만들기

브라우저나 SharePoint Designer를 사용하여 SharePoint Server 2010의 사용자 지정 웹 페이지를 만드는 경우 ASPX 페이지는 SharePoint Server 2010 실행 서버의 루트 사이트 모음에만 속할 수 있습니다. 전체 팜과 모든 사이트 모음에서 사용 가능한 사이트 모음에 페이지를 만들려면 솔루션을 사용하여 솔루션 매니페스트 파일의 TemplateFiles 요소로 \14\Template\Layouts 폴더에 페이지를 배포하십시오.

팜에서 가장 좋은 방법은 솔루션 패키지를 사용하여 기능을 배포하는 것입니다. 서버를 다시 구축해야 하거나 다른 서버를 팜에 추가하는 경우 프런트 엔드 웹 서버 각각에 기능을 수동으로 추가할 필요가 없습니다. 솔루션 패키지를 사용하면 새 기능 및 업그레이드된 기능을 팜 전체에 배포하고 프런트 엔드 웹 서버를 동기화하여 해당 서버의 상태를 팜의 다른 서버의 상태와 일관적으로 유지할 수 있습니다.

사이트 모음 또는 웹 사이트에서 사용자 지정 페이지를 사용할 수 있는지 여부를 제어하려면 사용자 지정 웹 페이지를 SharePoint 기능으로 솔루션에 포함하여 배포합니다. Feature.xml 파일의 Module 요소를 사용하면 사이트 모음 및 웹 사이트 범위를 통해 웹 페이지를 배포할 수 있습니다. 모듈은 주로 사이트에서 웹 파트 페이지를 구현하는 데 사용됩니다.

솔루션의 일부로 배포된 기능은 자동으로 설치됩니다. 기능을 수동으로 배포하는 경우에는 기능을 설치하고 활성화해야 합니다. 자세한 내용은 이 문서 뒷부분의 Windows PowerShell을 사용하여 기능 설치 및 활성화를 참조하십시오.

사용자 지정 기능을 만들고 배포하려면

  1. Feature.xml 파일을 만듭니다. 다음은 기능에 고유한 ID를 지정하고 Module.xml 파일을 가리키는 데 필요한 Feature.xml 파일의 예입니다.

    <?xml version="1.0"?>
    <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title=
    "Custom Web page"
    Description="This simple example feature adds an ASPX page 
    with a hosted XmlFormView control" 
    Version="1.0.0.0" Scope="Web"
    xmlns="https://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Module.xml"/>
    </ElementManifests>
    </Feature>
    
  2. Module.xml 파일을 만듭니다. 다음은 Module.xml 파일의 예입니다. 이 파일에는 솔루션의 일부인 하나의 페이지 또는 여러 페이지에 대한 정보가 포함됩니다.

    <?xml version="1.0"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <module name="file" url="" path="">
            <file url="XmlFormViewPage.aspx" type="ghostable"> </file>
        </module>
    </Elements>
    
  3. 파일 url 값을 ASPX 페이지의 이름으로 변경합니다.

  4. 일반적으로 %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\14\TEMPLATE\FEATURES에 위치한 서버 컴퓨터의 기능 설치 디렉터리 내에 기능 정의 하위 폴더를 추가합니다.

    중요

    기능 정의용 하위 폴더를 만들 때는 자세하고 한정적인 이름을 사용하는 것이 가장 좋습니다. 이렇게 하면 여러 기능을 추가할 때 같은 이름을 사용하고 다른 기능의 Feature.xml 파일을 덮어쓰는 가능성이 최소화됩니다. 예를 들어 Contract라는 이름 대신 HR_ContractFinance_Contract라는 이름을 사용하십시오.

  5. 사용자 지정 .aspx 페이지를 이 기능 정의용 하위 폴더에 추가합니다.

  6. Feature.xml 및 Module.xml 파일을 같은 위치에 추가합니다.

  7. 기능을 솔루션 패키지에 추가합니다.

    Visual Studio 2010을 사용하여 기능을 솔루션에 추가할 수도 있고 FeatureManifests 요소를 솔루션 Manifest.xml 파일에 수동으로 추가할 수도 있습니다.

  8. 솔루션 패키지를 만듭니다.

    Visual Studio 2010을 사용하여 솔루션 패키지를 작성할 수 있습니다. 또한 Makecab.exe 도구를 사용하여 솔루션 패키지를 만들 수도 있습니다.

  9. 솔루션 패키지를 가져와서 배포합니다.

    Windows PowerShellAdd-SPSolution cmdlet을 사용하여 솔루션을 솔루션 저장소에 추가하고 중앙 관리 웹 사이트 또는 Windows PowerShell을 사용하여 솔루션 저장소에서 솔루션을 배포합니다.

Visual Studio 2010을 사용하여 솔루션 패키지에 기능을 추가하는 방법에 대한 자세한 내용은 SharePoint 솔루션 패키지 만들기(https://go.microsoft.com/fwlink/?linkid=187035&clcid=0x412)(영문일 수 있음)를 참조하십시오. 솔루션 패키지를 수동으로 만들거나 Makecab.exe 도구를 사용하여 만드는 방법에 대한 자세한 내용은 솔루션 만들기(https://go.microsoft.com/fwlink/?linkid=187036&clcid=0x412)(영문일 수 있음)를 참조하십시오. 솔루션을 배포하는 방법에 대한 자세한 내용은 솔루션 패키지 배포(SharePoint Server 2010)를 참조하십시오.

Windows PowerShell을 사용하여 기능 설치 및 활성화

Windows PowerShell 또는 개체 모델을 사용하여 기능을 설치하고 활성화할 수 있습니다. 또한 기능을 활성화하려는 사이트나 사이트 모음의 기능 페이지를 사용하거나 웹 응용 프로그램 기능 관리 페이지를 사용하여 기능을 활성화할 수도 있습니다. 기능을 설치하면 기능 정의 및 요소가 서버 팜 전체에서 인식되고 기능을 활성화하면 특정 범위에서 기능을 사용할 수 있게 됩니다.

참고

솔루션 패키지의 일부로 배포된 기능은 배포 과정에서 자동으로 설치되므로 수동으로 설치할 필요가 없습니다.

각각의 기능을 14\Template\Features 폴더의 해당 하위 폴더에 설치합니다. 이 폴더의 루트에서 Feature.xml 파일이 기능의 내용을 정의합니다. 개별 기능을 사용하려면 먼저 해당 기능을 설치해야 하며 기능이 팜 범위가 아닌 한 설치한 후 활성화해야 합니다. 기능이 팜 또는 웹 응용 프로그램 범위인 경우에는 자동으로 활성화됩니다.

기능을 제거하여 기능 정의가 서버 팜 내에서 더 이상 사용되지 않도록 하려면 기능이 웹 응용 프로그램 또는 팜 범위가 아닌 경우 먼저 Windows PowerShellDisable-SPFeature cmdlet을 사용하여 기능을 비활성화해야 합니다. 기능을 비활성화한 후에는 Uninstall-SPFeature cmdlet을 사용하여 제거할 수 있습니다. 자세한 내용은 Uninstall-SPFeature를 참조하십시오. 기능을 제거하고 나면 변경 내용이 적용되도록 IIS(인터넷 정보 서비스)를 다시 설정해야 합니다.

기능을 제거하지 않고 기능이 원래 할당된 범위에서 비활성화되도록 기능을 비활성화하려면 Disable-SPFeature cmdlet을 사용합니다. 자세한 내용은 Disable-SPFeature를 참조하십시오.

다음 절차에 따라 기능을 설치 및 비활성화합니다.

Windows PowerShell을 사용하여 기능을 설치하려면

  1. 다음과 같은 최소 요구 사항을 충족하는지 확인합니다. Add-SPShellAdmin을 참조하십시오.

  2. 시작 메뉴에서 모든 프로그램을 클릭합니다.

  3. Microsoft SharePoint 2010 Products를 클릭합니다.

  4. SharePoint 2010 관리 셸을 클릭합니다.

  5. Windows PowerShell 명령 프롬프트에 다음과 같은 명령을 입력합니다.

    Install-SPFeature -path <Path> [-force]
    

    여기서 각 부분이 나타내는 의미는 다음과 같습니다.

    • <Path>는 유효한 파일 경로(예: MyFeature)입니다. 기능의 경로는 14\Template\Features 폴더 이름에 대한 리터럴 경로여야 합니다. Feature.xml 파일 이름은 암시적으로 지정되므로 제공하지 않아도 됩니다.

자세한 내용은 Install-SPFeature를 참조하십시오.

참고

명령줄 관리 작업을 수행하는 경우 Windows PowerShell을 사용하는 것이 좋습니다. Stsadm 명령줄 도구는 더 이상 사용되지 않지만 이전 제품 버전과의 호환성을 지원하기 위해 포함됩니다.

Windows PowerShell을 사용하여 기능을 활성화하려면

  1. 다음과 같은 최소 요구 사항을 충족하는지 확인합니다. Add-SPShellAdmin을 참조하십시오.

  2. 시작 메뉴에서 모든 프로그램을 클릭합니다.

  3. Microsoft SharePoint 2010 Products를 클릭합니다.

  4. SharePoint 2010 관리 셸을 클릭합니다.

  5. Windows PowerShell 명령 프롬프트에 다음과 같은 명령을 입력합니다.

    Enable-SPFeature -Identity <FeatureID> [-url] <URLname> [-force]
    

    여기서 각 부분이 나타내는 의미는 다음과 같습니다.

    • <FeatureID>는 14\Template\Features 폴더에 위치한 기능 폴더의 이름으로, 유효한 파일 경로(예: MyCustom)여야 합니다.

    • <URLname>은 기능이 활성화되는 웹 응용 프로그램, 사이트 모음 또는 웹 사이트의 기능 상위 URL(예: http://somesite)입니다.

자세한 내용은 Enable-SPFeature를 참조하십시오.

참고

명령줄 관리 작업을 수행하는 경우 Windows PowerShell을 사용하는 것이 좋습니다. Stsadm 명령줄 도구는 더 이상 사용되지 않지만 이전 제품 버전과의 호환성을 지원하기 위해 포함됩니다.