EveryDay.DevUp

[Unity] C# 주석 본문

C#

[Unity] C# 주석

EveryDay.DevUp 2020. 5. 31. 12:42

● 주석이란?

▶ 코드를 작성할 때 해당 코드를 이해하는데 도움이 되는 내용이나 설명을 위해 사용하는 글이다.

● 주석의 필요성

▶ 코드를 작성할 때 몇 줄 안되는 코드를 작성할 수도 있지만 500줄 이상, 1000줄 이상 등 그 이상의 코드를 작성할 때가 있다. 사람은 망각의 동물이기 때문에 코드에 길이가 길어질 수록 앞전의 작성했던 코드의 내용을 잊어버리기도 하고 일정 시간 뒤에 다시 코드를 보면 내용이 기억이 안나는 경우가 있다. 이때 기억을 되살리기 위해 간단한 메모글을 주석으로 남길 수 있다.

▶ 코드를 혼자도 작성할 수 있지만, 실무에서는 개발자가 특정한 기능 한 부분을 작성하고 다른 개발자가 개발한 기능과 합치는 경우가 대부분이다. 이때 다른 개발자가 이해할 수 있도록 간단한 메모글을 주석으로 남길 수 있다.

▶ 클래스 또는 함수 등을 사용할 때, 사용 시점에 해당 기능에 대한 안내를 위해 주석을 사용할 수 있다.

● C# 주석 기능

▶ 주석을 코드에 작성하는 방법은 간단하게 "//", "///" 을 사용하는 것만으로도 가능하다. 하지만 상세한 주석을 남기기 위해서는 태그 기능을 사용해야만 한다.

▶ C#에서는 여러 태그를 제공하고 있고 해당 태그로 코드 문서도 작성할 수 있지만, 개인적으로 사용했을 때 유용한 태그를 설명하고자 한다.

① <summary></summary>

: 주석이 달린 클래스 또는 함수에 커서를 가져가거나, 해당 클래스나 함수를 사용할 때 작성한 글이 출력된다.

/// <summary>
/// 클래스 설명 시 유용
/// </summary>
public class Test : MonoBehaviour
{
	/// <summary>
	/// 함수 설명 시 유용
	/// </summary>
	public static void DoWork(int Int1)
	{
		
	}
}

[ Class에 커서를 가져갔을 때 ]
[ Class를 코드에 작성 할 때 ]

② <para></para>

: 출력되는 텍스트에 단락을 만들어 준다.

/// <summary> 이것은 테스트 주석입니다.
/// <para>
/// 단락 기능입니다.
/// </para>
/// 단락이 없을때
/// 개행이 없습니다.
/// </summary>
public static void DoWork(int a)
{

}

③ <param></param>

: 함수 인자 값의 대한 설명을 넣을 수 있다.

/// <param name="a">a는 정수 입니다.</param>
public static void DoWork(int a)
{

}

[ 함수 인자에 커서를 가져간 경우]
[ 함수를 사용할 때 설명이 출력 됨 ]

▶ 이 외에도 다양한 태그가 존재하지만, 문서화를 위한 태그가 대부분이고 Visual Studio상에서 코드를 작성할 때 나오는 태그만으로 충분하다고 생각해서 3가지 태그에 대해서만 설명을 하였다.

▶ 태그에는 없지만, 추가적으로 코드를 작성한 사람을 주석에 넣어주면 좋다. 여러 사람이 작성한 경우 해당 코드를 누가 작성했는지를 알면 궁금한 점이 생겼을 때 문의를 할 수 있기 때문이다.

● C# 주석 사용

Visual Studio상에서 함수 또는 클래스 위에서 /// 을 입력하면 자동으로 위의 태그가 걸린 주석 템플릿이 만들어진다. 위에서 설명하지 않은 retrurns 태그도 같이 생기는데 문서화 시에 retruen 값에 대한 설명이다. 에디터 상에서는 나오진 않지만 같이 설명을 적어주면 좋다.

 

참고 자료 : https://docs.microsoft.com/ko-kr/dotnet/csharp/codedoc

 

XML 주석을 사용하여 코드 문서화

XML 문서 주석을 사용하여 코드를 문서화하고 컴파일 시간에 XML 문서 파일을 생성하는 방법을 알아봅니다.

docs.microsoft.com

 

'C#' 카테고리의 다른 글

[Unity] Struct (구조체)  (0) 2021.12.23
[Unity] Namespace ( 네임 스페이스 )  (0) 2020.06.16
[Unity] C# Boxing , unboxing ( 박싱, 언박싱 )  (0) 2020.05.31
[Unity] C# 코딩 규칙  (0) 2020.05.01
[Unity] C#에서의 메모리  (0) 2020.04.27