NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Java Java vs C# (주석과 문서화, Comment Documentation) - 3부

    페이지 정보

    본문

    우리가 흔히 말하는 ALM(Application Life-cycle Management)의 많은 활동 중에 주석도 중요한 위치를 차지하고 있습니다. 하지만, 본연의 역할과는 다른 용도로 많이 사용되고 있는게 현실인데요. 이런 상황이 발생하는 근본적인 이유는 제대로 형상관리에 대해서 배울 기회가 없기 때문입니다. 이 글은 간단하게 Java와 C#을 비교하기 위해 작성하는 글이므로 여기에서 장광설을 늘어놓지는 않겠습니다.

    pbGSAKR.png

     

     

    지금 S사 MES 프로젝트를 진행중인데요. 컨설팅 회사와 몇개의 개발회사가 협업하고 있습니다. 이름만 대면 알만한 대기업에서도 여전히 before, after 주석을 달고 있죠. TFS와 같은 비싼 솔루션에 라이센스를 지불하면서 소스 제어만 사용하고 있습니다. 문제는 TFS를 써보지 않은 하청 회사는 별도로 SVN을 이용하고 있죠. 그래서 몇개 하청 회사는 TFS를 사용중이고 나머지 하청 회사는 SVN을 쓰고 있는 실정입니다. GitHub를 사용하는 사람은 못봤네요.

     

    차라리 TFS를 걷어내고 무료 SVN을 쓰고 라이센스 비용을 인건비로 환원해주면 얼마나 좋을까요-_-;

     

    얼마전에 L사에서 형상관리 고도화 프로젝트를 진행한다며 연락이 왔었습니다. 물론 인력회사에서요. 아직 S사 프로젝트가 끝나지 않아서 갈 수는 없지만... 아쉽긴 하네요. 제 관심 분야면서 아직 배워야 할게 많은 분야이기도 하기 때문입니다.

     

    주석 이야기 하다가 왠 형상 관리에 대해서...-_-;

     

    Java

    package JavaType;
    
    /** 
    * 관계연산자 예제입니다. 
    * @author 개발자 
    * @exception 메소드의 예외 확인 
    * @param 메소드의 매개변 수 
    * @return 메소드의 반환 값 
    * @see 다른 주제에 관한 링크 지정 
    * @serial 직렬화 필드 
    * @since 릴리즈 기록 
    * @throws 메소드에서의 예외 
    * @version 클래스의 버전 */
    public class RalationalOperator 
    { 
        public static void main(String[] args) 
        {  
            // 한줄 주석.  
            System.out.println(String.format("10 == 20 : %s", 10 == 20));  
            /*   
             * 여러줄 주석.
             */  
            System.out.println(String.format("10 != 20 : %s", 10 != 20));  
            System.out.println(String.format("10 > 20 : %s", 10 > 20));  
            System.out.println(String.format("10 < 20 : %s", 10 < 20));  
            System.out.println(String.format("10 >= 20 : %s", 10 >= 20));  
            System.out.println(String.format("10 <= 20 : %s", 10 <= 20)); 
        }
    }

     

     

    C#

    using System;
    
    namespace RelationalOperator 
    {    
        /// <summary>    
        /// 관계 연산자 예제입니다.    
        /// <para>줄바꿈 할 때 사용<see cref="MainApp"/></para>    
        /// </summary>    
        /// <c>코드를 텍스트로 표시</c>    
        /// <code>여러줄의 코드를 표시</code>    
        /// <seealso cref="RelationalOperator.MainApp"/>    
        class MainApp    
        {
            /// <summary>        
            /// 프로그램의 주 진입점입니다.        
            /// <paramref name="args"/>매개 변수 참조        
            /// </summary>        
            /// <param name="args">메서드 매개 변수의 이름 및 설명</param>        
            /// <example>        
            /// 예제를 표시, 일반적으로 <code>와 같이 사용        
            /// <code>        
            /// start "RelationalOperator" MainApp.exe "Test program!"        
            ///         
            /// class MainApp        
            /// {        
            ///     ...        
            /// }        
            /// </code>        
            /// </example>        
            /// <exception cref="args">예외 발생 설명</exception>        
            /// <permission cref="Main">맴버에 대한 권한 설명</permission>     
            /// <summary>
            /// <remarks>에 작성한 정보를 보충하는데 사용</remarks>        
            static void Main(string[] args)        
            {            
                Console.WriteLine("3 > 4  : {0}", 3 > 4);            
                Console.WriteLine("3 >= 4 : {0}", 3 >= 4);            
                Console.WriteLine("3 < 4  : {0}", 3 < 4);            
                Console.WriteLine("3 <= 4 : {0}", 3 <= 4);            
                Console.WriteLine("3 == 4 : {0}", 3 == 4);            
                Console.WriteLine("3 != 4 : {0}", 3 != 4);        
            }        
            /// <summary>        
            /// 주석 예제입니다.        
            /// <list type="bullet">        
            /// <item>        
            /// <description>Item 1.</description>        
            /// </item>        
            /// <item>        
            /// <description>Item 2.</description>        
            /// </item>        
            /// </list>        
            /// </summary>        
            /// <typeparam name="T">제네릭 형식을 설명</typeparam>        
            /// <param name="args">매개 변수 참조</param>        
            /// <include file='다른 주석 파일' path='[@name="다른 주석 파일에 정의된 노드 이름"]'/>        
            /// <returns>반환 값 설명</returns>        
            public int? CommentTest<T>(T args)        
            {            
                return null;        
            }        
            
            /// <summary>        
            /// 이름을 가져오거나 설정합니다.        
            /// <value>이 속성 값을 설명</value>        
            /// </summary>        
            public string Name { get; set; }    
        }
    }

     

     

    Java와 C#이 주석은 같지만, 문서화의 경우에는 많은 차이를 보입니다. 그리고 문서화를 만들어 주는 툴에는 여러종류가 존재하고 있지만, 역시나 JavaDoc이 최고죠. 닷넷 계열에서 문서화를 하려면 많은(?) 노력이 필요합니다.

     

    다음 시간에...

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.