{"meta":{"title":"레거시 코드 문서화","intro":"공동 파일럿 채팅은 레거시 코드를 문서화하는 데 도움이 될 수 있습니다.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ko/copilot","title":"GitHub Copilot"},{"href":"/ko/copilot/tutorials","title":"자습서"},{"href":"/ko/copilot/tutorials/copilot-chat-cookbook","title":"GitHub Copilot Chat 매뉴얼"},{"href":"/ko/copilot/tutorials/copilot-chat-cookbook/document-code","title":"문서 코드"},{"href":"/ko/copilot/tutorials/copilot-chat-cookbook/document-code/document-legacy-code","title":"레거시 코드 문서화"}],"documentType":"article"},"body":"# 레거시 코드 문서화\n\n공동 파일럿 채팅은 레거시 코드를 문서화하는 데 도움이 될 수 있습니다.\n\n특히 코드가 복잡하거나 잘 문서화되지 않은 경우 개발자는 레거시 코드를 사용하는 것이 어려울 수 있습니다. 이러한 경우 Copilot 채팅을 사용하여 불분명하거나 복잡한 코드를 다른 개발자에게 설명하거나 향후 참조를 위해 문서화하는 것이 유용할 수 있습니다.\n\n## 예제 시나리오\n\n아래 COBOL 블록은 데이터베이스에 연결하고 레코드를 삽입합니다. 코드에 설명서가 없으므로 코드의 기능과 작동 방식을 이해하기가 어렵습니다.\n\n```text id=cobol-insert-record\nIDENTIFICATION DIVISION.\nPROGRAM-ID. INSERT-RECORD.\n\nENVIRONMENT DIVISION.\n\nDATA DIVISION.\nWORKING-STORAGE SECTION.\n01  WS-STATUS-FLAGS.\n    05 WS-DB-STATUS     PIC X(2).\n       88 WS-SUCCESS    VALUE \"00\".\n    05 WS-SQLCODE       PIC S9(9) COMP.\n    05 WS-ERROR-MSG     PIC X(50).\n\nLINKAGE SECTION.\n01  LS-PARAMETERS.\n    05 LS-PERSON-RECORD.\n       10 PERSON-ID     PIC 9(6).\n       10 PERSON-NAME   PIC X(50).\n       10 PERSON-AGE    PIC 9(3).\n    05 LS-RESULT        PIC X.\n       88 SUCCESS       VALUE 'T'.\n       88 FAILED        VALUE 'F'.\n\nPROCEDURE DIVISION USING LS-PARAMETERS.\n    PERFORM INSERT-AND-VALIDATE\n    GOBACK\n    .\n\nINSERT-AND-VALIDATE.\n    EXEC SQL\n        INSERT INTO persons (id, name, age)\n        VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)\n    END-EXEC\n\n    IF SQLCODE = 0\n        EXEC SQL COMMIT END-EXEC\n        SET SUCCESS TO TRUE\n    ELSE\n        EXEC SQL ROLLBACK END-EXEC\n        SET FAILED TO TRUE\n        STRING \"DB Error: \" SQLCODE\n            DELIMITED BY SIZE\n            INTO WS-ERROR-MSG\n        DISPLAY WS-ERROR-MSG\n    END-IF\n    .\n```\n\n## 예시 프롬프트\n\n간단한 프롬프트를 사용하여 공동 파일럿 채팅에게 코드에 문서를 추가해 달라고 요청할 수 있습니다.\n\n```copilot copy prompt ref=cobol-insert-record\nComment this code thoroughly\n```\n\n> \\[!NOTE] 설명서를 Markdown과 같은 다른 형식으로 생성하려면 프롬프트에서 원하는 출력 형식을 지정할 수 있습니다. 예: `Document this code in Markdown`\n\n## 예제 응답\n\n> \\[!NOTE] 다음 응답이 예제입니다. 공동 파일럿 채팅 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n\n> \\[!NOTE] 다음 응답이 예제입니다. 공동 파일럿 채팅 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n\nCopilot은 코드 블록의 텍스트 개요와 각 섹션의 논리와 목적을 설명하는 주석이 포함된 업데이트된 버전을 제공합니다.\n\n```text\n*****************************************************************\n* Program: INSERT-RECORD\n* Purpose: Inserts a person record into the database with\n*          transaction management and error handling\n*****************************************************************\n IDENTIFICATION DIVISION.\n PROGRAM-ID. INSERT-RECORD.\n\n ENVIRONMENT DIVISION.\n\n DATA DIVISION.\n WORKING-STORAGE SECTION.\n* Status flags and error handling variables\n 01  WS-STATUS-FLAGS.\n     05 WS-DB-STATUS     PIC X(2).              *> Database status\n        88 WS-SUCCESS    VALUE \"00\".            *> Success flag\n     05 WS-SQLCODE       PIC S9(9) COMP.        *> SQL return code\n     05 WS-ERROR-MSG     PIC X(50).             *> Error message\n\n LINKAGE SECTION.\n* Input/Output parameters\n 01  LS-PARAMETERS.\n     05 LS-PERSON-RECORD.\n        10 PERSON-ID     PIC 9(6).              *> Person ID\n        10 PERSON-NAME   PIC X(50).             *> Person name\n        10 PERSON-AGE    PIC 9(3).              *> Person age\n     05 LS-RESULT        PIC X.                 *> Operation result\n        88 SUCCESS       VALUE 'T'.             *> Success flag\n        88 FAILED        VALUE 'F'.             *> Failure flag\n\n PROCEDURE DIVISION USING LS-PARAMETERS.\n     PERFORM INSERT-AND-VALIDATE\n     GOBACK\n     .\n\n*****************************************************************\n* Handles database insertion with transaction management\n*****************************************************************\n INSERT-AND-VALIDATE.\n     EXEC SQL\n         INSERT INTO persons (id, name, age)\n         VALUES (:PERSON-ID, :PERSON-NAME, :PERSON-AGE)\n     END-EXEC\n\n     IF SQLCODE = 0\n         EXEC SQL COMMIT END-EXEC                *> Commit if successful\n         SET SUCCESS TO TRUE\n     ELSE\n         EXEC SQL ROLLBACK END-EXEC              *> Rollback if failed\n         SET FAILED TO TRUE\n         STRING \"DB Error: \" SQLCODE\n             DELIMITED BY SIZE\n             INTO WS-ERROR-MSG\n         DISPLAY WS-ERROR-MSG\n     END-IF\n     .\n```\n\n## 예시:\n\n* [GitHub Copilot 채팅에 대한 프롬프트 엔지니어링](/ko/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [GitHub 부필로트 사용에 대한 모범 사례](/ko/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}