C# 클래스 라이브러리 프로젝트 구축 - Tim Corey's Lesson에서의 통찰
이번 수업에서 팀 코리는 클래스 라이브러리를 만드는 실질적인 과정을 안내하며, 계획에서 실제 코드로의 전환을 보여준다. 팀은 계획이 필수적이라고 강조하지만, 계획이 완료되면 이제 빌드를 시작할 때라고 덧붙인다.
이 기사에서는 팀의 정확한 접근 방식과 이유를 따라 단계별로 클래스 라이브러리가 Visual Studio에서 어떻게 생성되고, 구성되며 문서화되는지를 이해할 것이다.
Visual Studio에서 클래스 라이브러리 시작하기
팀은 그들이 한동안 계획 모드에 갇혀 있었지만 이제 드디어 코드를 작성할 준비가 되었다고 말하며 시작한다. Visual Studio를 열고 "새 프로젝트 생성"을 선택한 다음 "클래스 라이브러리"를 선택한다. 팀은 이를 TrackerLibrary라고 명명하고 솔루션 이름을 TournamentTracker로 설정한다.
팀의 새로운 라이브러리 내에서의 첫 번째 작업은 기본 Class1.cs를 삭제하는 것입는데, 이는 프로젝트에 기본적으로 제공되거나 잘못 명명된 파일이 있는 것을 원하지 않음을 설명한다. 그는 이름 변경이 문제를 일으킬 수 있기 때문에 완전히 제거하여 나중에 문제를 방지한다고 설명한다.
계획을 코드로 전환하기 — 클래스 추가
팀은 계획의 진짜 이점은 코딩을 할 준비가 되면 데이터가 필요할지 추측하지 않는 것이라고 설명한다. 그 대신 계획된 디자인을 실제 코드로 단순히 옮기는 것이다.
이 시점에서는 어떤 데이터가 필요한지를 생각하기보다는, 이름, 구조, 누락된 것이 있는지를 검증한다고 언급한다. 팀은 이것이 코딩 과정을 현저히 빠르게 만드는 이유라고 말한다.
팀 모델 생성하기
팀은 첫 번째 클래스인 TeamModel을 추가한다. 그는 이것을 단지 Team이라고 이름 지을 수 있지만, 데이터 모델로 명확히 식별하기 위해 끝에 Model을 추가하는 것을 선호한다고 설명한다.
팀은 Visual Studio의 prop 스니펫을 사용하여 속성을 빠르게 생성한다. 팀은 다음 속성을 만든다:
List
팀 멤버 - string 팀명
팀은 또한 중요한 점을 설명한다: 그는 TeamMembers가 자동으로 초기화되어 리스트가 결코 null이 되지 않도록 하고 싶다. 그는 두 가지 접근 방식을 시연한다:
C# 6.0 이전: 생성자를 사용하여 리스트를 초기화하기
C# 6.0 이후: 속성에서 직접 초기화하기:
public List<PersonModel> 팀 멤버 { get; 세트; } = new List<PersonModel>();
팀은 현대적인 접근 방식을 선호하며, 이는 코드를 간소화한다고 말한다.
사람 모델 생성하기
다음으로, 팀은 PersonModel을 생성한다. prop 스니펫을 사용하여 속성을 빠르게 추가한다:
문자열 FirstName
문자열 성
string 이메일 주소
- string 휴대전화 번호
팀은 계획이 이미 완료되었을 때 모델을 구축하는 것이 얼마나 빠른지 지적한다. 그는 또한 코드가 이제 계획 문서를 직접 기반으로 하고 있음을 우리에게 상기시켜 줍니다.
대회 모델 생성하기
Tim은 TournamentModel을 추가하며, 다음을 포함합니다:
string 대회 이름
decimal 참가비
List
등록된 팀 List
상금 - List<List
> 라운드
그는 C#이 List<List
상 모델 추가하기
Tim은 PrizeModel을 다음 속성으로 추가합니다:
int 순위 번호
string 순위 이름
decimal 상금 액수
- double 상금 비율
그는 이러한 값들이 기본값으로 남아 있으며, 나중에 필요할 때 수정할 수 있음을 지적합니다.
매치업 모델 생성하기
Tim은 MatchupModel을 추가하며, 다음을 포함합니다:
List
참가자 TeamModel 우승자
- int 매치업 라운드
그는 이전에 했던 것처럼 Entries 리스트가 자동으로 초기화되도록 보장합니다.
그런 다음 Tim은 MatchupEntryModel을 추가하며, 다음을 포함합니다:
TeamModel 경쟁 팀
double 점수
- MatchupModel 상위 매치업
Tim은 이러한 모델들이 클래스 라이브러리의 기초를 완성한다는 점을 강조합니다.
계획이 이루어진 후에는 클래스 라이브러리가 단순하다
Tim은 계획이 완료되면 클래스 라이브러리 구축이 매우 간단해진다고 말합니다. 그는 모든 설계 작업이 이미 완료되었기 때문에 라이브러리의 구조가 간단하다는 점을 강조합니다.
그는 계획의 주요 이점은 코드 작성이 빠르고 깔끔해지는 것임을 상기시켜 줍니다.
XML 주석 추가하기 — 그것이 중요한 이유
Tim은 마지막 단계로 코드를 문서화해야 하며, 특히 XML 주석을 사용하는 것이 중요하다고 지적합니다. 그는 주석 작성이 번거롭지만, 지금 하지 않으면 나중에 아마 하지 않을 것이라고 경고합니다.
그는 속성 위에 세 개의 슬래시(///)를 입력하여 XML 주석을 작성하는 방법을 보여줍니다. Tim은 다음과 같은 설명을 작성하는 방법을 보여줍니다:
"매치업의 한 팀을 나타냄"
"특정 팀의 점수를 나타냄"
- "해당 팀이 승리자로 나온 매치업을 나타냄"
Tim은 XML 주석이 단순히 형식화된 주석이 아니라 코드 문서의 일부가 되어 클래스 이해도를 돕는다고 설명합니다.
XML 주석이 코드 사용성을 향상시킨다
Tim은 XML 주석이 IntelliSense와 어떻게 작동하는지 보여줍니다. 그는 생성자를 만들고 파라미터에 XML 주석을 추가하며, 해당 주석이 IntelliSense에 자동으로 나타나는 것을 보여줍니다.
그는 이것을 Microsoft 자체 XML 문서에서 나오는 Visual Studio의 내장된 Console.WriteLine() 설명과 비교합니다. Tim은 XML 주석을 사용하여 자신의 클래스 라이브러리에서도 동일한 수준의 명확성과 사용성을 제공할 수 있음을 설명합니다.
최종 격려
Tim은 전체 과정을 보여주지는 않지만 반복적인 특성 때문에 나머지 모델에도 XML 주석을 추가할 것을 권장합니다.
그는 다음 수업을 미리 보이며 결론을 맺습니다: 폼 빌딩 Tim은 계획 시 설계된 폼들이 간단한 스케치였으며, 이제 그것들이 더 현대적이고 기능적으로 보이도록 만들 때임을 지적합니다.
결론 — Tim의 레슨 요약
Tim Corey의 강의는 C# 클래스 라이브러리를 만드는 것이 계획을 코드로 전환하는 문제임을 보여줍니다. 단계는 다음과 같습니다:
클래스 라이브러리 프로젝트 생성
계획에 따라 모델 추가
null 방지를 위해 리스트 초기화
XML 주석으로 코드 문서화
- 다음에 폼 빌딩 준비
Tim의 방법을 따르면 효과적이고 전문적으로 깨끗하고 잘 구조화된 클래스 라이브러리를 구축하여 애플리케이션의 나머지를 지원할 준비가 됩니다.

