자습서: Visual Studio를 사용하여 .NET Standard 라이브러리 만들기Tutorial: Create a .NET Standard library using Visual Studio

이 자습서에서는 단일 문자열 처리 메서드를 포함하는 간단한 클래스 라이브러리를 만듭니다.In this tutorial, you create a simple class library that contains a single string-handling method.

클래스 라이브러리는 애플리케이션에서 호출되는 형식 및 메서드를 정의합니다.A class library defines types and methods that are called by an application. .NET Standard 2.0을 대상으로 하는 클래스 라이브러리는 .NET Standard의 해당 버전을 지원하는 모든 .NET 구현에서 라이브러리를 호출할 수 있습니다.A class library that targets .NET Standard 2.0 allows your library to be called by any .NET implementation that supports that version of .NET Standard.

클래스 라이브러리를 마칠 때 NuGet 패키지 또는 라이브러리를 사용하는 애플리케이션이 포함된 번들 구성 요소로 배포할 수 있습니다.When you finish your class library, you can distribute it as a NuGet package or as a component bundled with the application that uses it.

사전 요구 사항Prerequisites

솔루션 만들기Create a solution

먼저 클래스 라이브러리 프로젝트를 배치할 빈 솔루션을 만듭니다.Start by creating a blank solution to put the class library project in. Visual Studio 솔루션은 하나 이상의 프로젝트에 대한 컨테이너로 작동합니다.A Visual Studio solution serves as a container for one or more projects. 동일한 솔루션에 관련 프로젝트를 추가합니다.You'll add additional, related projects to the same solution.

빈 솔루션을 만들려면 다음을 수행합니다.To create the blank solution:

  1. Visual Studio를 시작합니다.Start Visual Studio.

  2. 시작 창에서 새 프로젝트 만들기를 선택합니다.On the start window, choose Create a new project.

  3. 새 프로젝트 만들기 페이지의 검색 상자에 solution을 입력합니다.On the Create a new project page, enter solution in the search box. 빈 솔루션 템플릿을 선택한 후, 다음을 선택합니다.Choose the Blank Solution template, and then choose Next.

    Visual Studio의 빈 솔루션 템플릿

  4. 새 프로젝트 구성 페이지에서 프로젝트 이름 상자에 ClassLibraryProjects를 입력합니다.On the Configure your new project page, enter ClassLibraryProjects in the Project name box. 그런 다음, 만들기를 선택합니다.Then choose Create.

클래스 라이브러리 프로젝트 만들기Create a class library project

  1. "StringLibrary"라는 새로운 .NET Standard 클래스 라이브러리 프로젝트를 솔루션에 추가합니다.Add a new .NET Standard class library project named "StringLibrary" to the solution.

    1. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 추가 > 새 프로젝트를 선택합니다.Right-click on the solution in Solution Explorer and select Add > New Project.

    2. 새 프로젝트 추가 페이지의 검색 상자에 library를 입력합니다.On the Add a new project page, enter library in the search box. 언어 목록에서 C# 또는 Visual Basic을 선택한 다음, 플랫폼 목록에서 모든 플랫폼을 선택합니다.Choose C# or Visual Basic from the Language list, and then choose All platforms from the Platform list. 클래스 라이브러리(.NET Standard) 템플릿을 선택하고 다음을 선택합니다.Choose the Class Library (.NET Standard) template, and then choose Next.

    3. 새 프로젝트 구성 페이지에서 프로젝트 이름 상자에 StringLibrary를 입력합니다.On the Configure your new project page, enter StringLibrary in the Project name box. 그런 다음, 만들기를 선택합니다.Then, choose Create.

  2. 라이브러리에 올바른 버전의 .NET Standard가 대상으로 지정되었는지 확인합니다.Check to make sure that the library targets the correct version of .NET Standard. 솔루션 탐색기에서 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭한 다음, 속성을 선택합니다.Right-click on the library project in Solution Explorer, and then select Properties. 대상 프레임워크 텍스트 상자에 프로젝트가 .NET Standard 2.0을 대상으로 한다는 것이 표시됩니다.The Target Framework text box shows that the project targets .NET Standard 2.0.

    클래스 라이브러리에 대한 프로젝트 속성

  3. Visual Basic을 사용하는 경우 루트 네임스페이스 텍스트 상자의 텍스트를 지웁니다.If you're using Visual Basic, clear the text in the Root namespace text box.

    클래스 라이브러리에 대한 프로젝트 속성

    각 프로젝트에 대해 Visual Basic에서는 프로젝트 이름에 해당하는 네임스페이스를 자동으로 만듭니다.For each project, Visual Basic automatically creates a namespace that corresponds to the project name. 이 자습서에서는 코드 파일의 namespace 키워드를 사용하여 최상위 네임스페이스를 정의합니다.In this tutorial, you define a top-level namespace by using the namespace keyword in the code file.

  4. Class1.cs 또는 Class1.vb 코드 창에서 코드를 다음 코드로 바꾸고 파일을 저장합니다.Replace the code in the code window for Class1.cs or Class1.vb with the following code, and save the file. 사용하려는 언어가 표시되지 않으면 페이지 맨 위에 있는 언어 선택기를 변경합니다.If the language you want to use is not shown, change the language selector at the top of the page.

    using System;
    
    namespace UtilityLibraries
    {
        public static class StringLibrary
        {
            public static bool StartsWithUpper(this string str)
            {
                if (string.IsNullOrWhiteSpace(str))
                    return false;
    
                char ch = str[0];
                return char.IsUpper(ch);
            }
        }
    }
    
    Imports System.Runtime.CompilerServices
    
    Namespace UtilityLibraries
        Public Module StringLibrary
            <Extension>
            Public Function StartsWithUpper(str As String) As Boolean
                If String.IsNullOrWhiteSpace(str) Then
                    Return False
                End If
    
                Dim ch As Char = str(0)
                Return Char.IsUpper(ch)
            End Function
        End Module
    End Namespace
    

    클래스 라이브러리 UtilityLibraries.StringLibrary에는 StartsWithUpper라는 메서드가 포함되어 있습니다.The class library, UtilityLibraries.StringLibrary, contains a method named StartsWithUpper. 이 메서드는 현재 문자열 인스턴스가 대문자로 시작하는지 여부를 나타내는 Boolean 값을 반환합니다.This method returns a Boolean value that indicates whether the current string instance begins with an uppercase character. 유니코드 표준은 대문자와 소문자를 구분합니다.The Unicode standard distinguishes uppercase characters from lowercase characters. Char.IsUpper(Char) 메서드는 문자가 대문자인 경우 true를 반환합니다.The Char.IsUpper(Char) method returns true if a character is uppercase.

    StartsWithUpperString 클래스의 멤버인 것처럼 호출할 수 있도록 확장 메서드로 구현됩니다.StartsWithUpper is implemented as an extension method so that you can call it as if it were a member of the String class.

  5. 메뉴 모음에서 빌드 > 솔루션 빌드를 선택하거나 Ctrl+Shift+B를 눌러 프로젝트가 오류 없이 컴파일되는지 확인합니다.On the menu bar, select Build > Build Solution or press Ctrl+Shift+B to verify that the project compiles without error.

솔루션에 콘솔 앱 추가Add a console app to the solution

클래스 라이브러리를 사용하는 콘솔 애플리케이션을 추가합니다.Add a console application that uses the class library. 이 앱은 사용자에게 문자열을 입력하라는 메시지를 표시하고 문자열이 대문자로 시작하는지 여부를 보고합니다.The app will prompt the user to enter a string and report whether the string begins with an uppercase character.

  1. "ShowCase"라는 새 .NET Core 콘솔 애플리케이션을 솔루션에 추가합니다.Add a new .NET Core console application named "ShowCase" to the solution.

    1. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 추가 > 새 프로젝트를 선택합니다.Right-click on the solution in Solution Explorer and select Add > New project.

    2. 새 프로젝트 추가 페이지의 검색 상자에 console을 입력합니다.On the Add a new project page, enter console in the search box. 언어 목록에서 C# 또는 Visual Basic을 선택한 다음, 플랫폼 목록에서 모든 플랫폼을 선택합니다.Choose C# or Visual Basic from the Language list, and then choose All platforms from the Platform list.

    3. 콘솔 앱(.NET Core) 템플릿을 선택하고 다음을 선택합니다.Choose the Console App (.NET Core) template, and then choose Next.

    4. 새 프로젝트 구성 페이지에서 프로젝트 이름 상자에 ShowCase를 입력합니다.On the Configure your new project page, enter ShowCase in the Project name box. 그런 다음, 만들기를 선택합니다.Then choose Create.

  2. Program.cs 또는 Program.vb 파일의 코드 창에서 모든 코드를 다음 코드로 바꿉니다.In the code window for the Program.cs or Program.vb file, replace all of the code with the following code.

    using System;
    using UtilityLibraries;
    
    class Program
    {
        static void Main(string[] args)
        {
            int row = 0;
    
            do
            {
                if (row == 0 || row >= 25)
                    ResetConsole();
    
                string input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) break;
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{(input.StartsWithUpper() ? "Yes" : "No")}\n");
                row += 3;
            } while (true);
            return;
    
            // Declare a ResetConsole local method
            void ResetConsole()
            {
                if (row > 0)
                {
                    Console.WriteLine("Press any key to continue...");
                    Console.ReadKey();
                }
                Console.Clear();
                Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press <Enter>:\n");
                row = 3;
            }
        }
    }
    
    Imports UtilityLibraries
    
    Module Program
        Dim row As Integer = 0
    
        Sub Main()
            Do
                If row = 0 OrElse row >= 25 Then ResetConsole()
    
                Dim input As String = Console.ReadLine()
                If String.IsNullOrEmpty(input) Then Return
    
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{If(input.StartsWithUpper(), "Yes", "No")} {vbCrLf}")
                row += 3
            Loop While True
        End Sub
    
        Private Sub ResetConsole()
            If row > 0 Then
                Console.WriteLine("Press any key to continue...")
                Console.ReadKey()
            End If   
            Console.Clear()
            Console.WriteLine("{0}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{0}",
                              vbCrLf)
            row = 3  
        End Sub
    End Module
    

    코드는 row 변수를 사용하여 콘솔 창에 기록된 데이터 행 수를 유지합니다.The code uses the row variable to maintain a count of the number of rows of data written to the console window. 25보다 크거나 같으면 코드는 콘솔 창을 지우고 사용자에게 메시지를 표시합니다.Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user.

    프로그램에서 문자열을 입력하라는 메시지를 사용자에게 표시합니다.The program prompts the user to enter a string. 문자열이 대문자로 시작하는지 여부를 나타냅니다.It indicates whether the string starts with an uppercase character. 사용자가 문자열을 입력하지 않고 Enter 키를 누르면 애플리케이션이 종료되고 콘솔 창이 닫힙니다.If the user presses the Enter key without entering a string, the application ends, and the console window closes.

프로젝트 참조 추가Add a project reference

처음에는 새 콘솔 앱 프로젝트가 클래스 라이브러리에 액세스할 수 없습니다.Initially, the new console app project doesn't have access to the class library. 클래스 라이브러리의 메서드를 호출할 수 있도록 허용하려면 클래스 라이브러리 프로젝트에 대한 프로젝트 참조를 만듭니다.To allow it to call methods in the class library, create a project reference to the class library project.

  1. 솔루션 탐색기에서 ShowCase 프로젝트의 종속성 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 참조 추가를 선택합니다.In Solution Explorer, right-click the ShowCase project's Dependencies node, and select Add Project Reference.

    Visual Studio의 참조 추가 상황에 맞는 메뉴

  2. 참조 관리자 대화 상자에서 StringLibrary 프로젝트를 선택하고 확인을 선택합니다.In the Reference Manager dialog, select the StringLibrary project, and select OK.

    StringLibrary를 선택한 참조 관리자 대화 상자

앱 실행Run the app

  1. 솔루션 탐색기에서 ShowCase 프로젝트를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 시작 프로젝트로 설정을 선택합니다.In Solution Explorer, right-click the ShowCase project and select Set as StartUp Project in the context menu.

    Visual Studio 프로젝트 상황에 맞는 메뉴로 시작 프로젝트 설정

  2. Ctrl+F5를 눌러 디버깅 없이 프로그램을 컴파일하고 실행합니다.Press Ctrl+F5 to compile and run the program without debugging.

    Visual Studio 프로젝트 도구 모음 디버그 단추 표시

  3. 문자열을 입력하고 Enter 키를 눌러 프로그램을 사용해 본 다음 Enter 키를 눌러 끝냅니다.Try out the program by entering strings and pressing Enter, then press Enter to exit.

    ShowCase가 실행되는 콘솔 창

추가 자료Additional resources

다음 단계Next steps

이 자습서에서는 클래스 라이브러리를 만들었습니다.In this tutorial, you created a class library. 다음 자습서에서는 클래스 라이브러리의 유닛 테스트를 실행하는 방법을 알아봅니다.In the next tutorial, you learn how to unit test the class library.

또는 자동화된 유닛 테스트를 건너뛰고 NuGet 패키지를 만들어서 라이브러리를 공유하는 방법을 알아볼 수도 있습니다.Or you can skip automated unit testing and learn how to share the library by creating a NuGet package:

또는 콘솔 앱을 게시하는 방법을 알아보세요.Or learn how to publish a console app. 이 자습서에서 만든 솔루션에서 콘솔 앱을 게시하는 경우 클래스 라이브러리는 .dll 파일로 함께 포함됩니다.If you publish the console app from the solution you created in this tutorial, the class library goes with it as a .dll file.