{"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/explain-legacy-code","title":"레거시 코드 설명"}],"documentType":"article"},"body":"# 레거시 코드 설명\n\n공동 파일럿 채팅은 익숙하지 않은 코드를 설명하는 데 도움이 될 수 있습니다.\n\n레거시 코드의 가장 큰 문제 중 하나는 언어나 프레임워크에 익숙하지 않은 개발자가 이를 이해하도록 돕는 것입니다. 공동 파일럿 채팅을 사용하면 가지고 있는 배경을 설명하고 설명을 요청할 수 있습니다.\n\n## 예제 시나리오\n\n다음 COBOL 코드를 고려해 보세요. 예를 들어 Python 개발자인 경우, 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\nPython 개발자의 관점에서 COBOL 코드에 대한 설명을 요청할 수 있습니다.\n\n```copilot copy prompt ref=cobol-insert-record\nI'm a Python developer. Help me better understand this code. Please provide analogies.\n```\n\n## 예제 응답\n\n> \\[!NOTE] 다음 응답이 예제입니다. 공동 파일럿 채팅 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n\n> \\[!NOTE] 다음 응답이 예제입니다. 공동 파일럿 채팅 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n> Copilot는 다양한 작업을 살펴보고 Python 개발자가 이해할 수 있는 방식으로 설명하기 전에 코드에 대한 개략적인 개요를 제공합니다. 비유를 사용하여 설명에 더 쉽게 액세스할 수 있도록 합니다.\n\n```text\nLet me explain this COBOL code using Python analogies:\n\nHigh-Level Overview\nThis is similar to a Python function that inserts a person's record into a database with error handling.\n```\n\n```python\n# In Python, the COBOL divisions would be like:\n\n# IDENTIFICATION DIVISION = module/file name\n# PROGRAM-ID = function name\ndef insert_record():\n    pass\n\n# DATA DIVISION would be like declaring these variables:\nclass WorkingStorage:\n    db_status = \"\"  # WS-DB-STATUS\n    sqlcode = 0     # WS-SQLCODE\n    error_msg = \"\"  # WS-ERROR-MSG\n\n# LINKAGE SECTION is like function parameters\nclass PersonRecord:\n    def __init__(self, person_id: int, person_name: str, person_age: int):\n        self.person_id = person_id    # PERSON-ID\n        self.person_name = person_name # PERSON-NAME\n        self.person_age = person_age   # PERSON-AGE\n        self.success = False          # LS-RESULT\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)"}