{"meta":{"title":"환경 지속 가능성을 위한 리팩터링","intro":"Copilot Chat 는 코드를 보다 환경 친화적으로 만드는 방법을 제안할 수 있습니다.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ko/copilot","title":"GitHub Copilot"},{"href":"/ko/copilot/tutorials","title":"자습서"},{"href":"/ko/copilot/tutorials/copilot-cookbook","title":"GitHub Copilot 활용 안내서"},{"href":"/ko/copilot/tutorials/copilot-cookbook/refactor-code","title":"코드 리팩터링"},{"href":"/ko/copilot/tutorials/copilot-cookbook/refactor-code/refactor-for-sustainability","title":"지속 가능성을 위한 리팩터링"}],"documentType":"article"},"body":"# 환경 지속 가능성을 위한 리팩터링\n\nCopilot Chat 는 코드를 보다 환경 친화적으로 만드는 방법을 제안할 수 있습니다.\n\n계산 리소스를 사용하는 데 비효율적인 코드는 에너지 소비가 증가하여 환경에 부정적인 영향을 미칠 수 있습니다. 이러한 코드의 예로는 높은 시간 복잡성, 과도한 메모리 사용량 및 불필요한 처리가 있는 알고리즘이 있습니다.\n\nCopilot Chat 는 에너지 소비 증가에 기여하는 코드에서 비효율적인 알고리즘 또는 리소스 집약적 작업을 식별하는 데 도움이 될 수 있습니다. 보다 효율적인 대안을 제안함으로써 소프트웨어의 환경적 영향을 줄이는 데 도움이 될 수 있습니다.\n\n## 예제 시나리오\n\n다음 Python 코드는 큰 텍스트 파일을 읽고 줄 수를 계산합니다. 그러나 전체 파일을 메모리에 로드하므로 대용량 파일에 비효율적일 수 있으며 에너지 소비가 높아질 수 있습니다. 또한 기본 제공 함수를 사용하는 대신 줄을 수동으로 계산합니다.\n\n```python id=inefficient-code\ndef count_lines(filename):\n    with open(filename, 'r') as f:\n        data = f.read()\n        lines = data.split('\\n')\n        count = 0\n        for line in lines:\n            count += 1\n        return count\n\nprint(count_lines('largefile.txt'))\n```\n\n## 예제 프롬프트\n\n다음은 환경 지속 가능성을 높이기 위해 위의 코드를 리팩터링하는 데 사용할 Copilot Chat 수 있는 프롬프트 예제입니다.\n\n```copilot copy prompt ref=inefficient-code\nRefactor this code to improve its environmental sustainability by reducing memory usage and computational overhead.\n```\n\n## 응답 예제\n\n> \\[!NOTE]\n> Copilot Chat 응답은 비결정적이므로 여기에 표시된 응답과 다른 응답을 얻을 수 있습니다.\n\nCopilot 는 생성기 식을 사용하여 파일 줄을 한 줄씩 읽을 것을 제안하므로 메모리 사용량이 줄어듭니다. 또한 기본 제공 `sum` 함수를 사용하여 줄을 보다 효율적으로 계산합니다.\n\n```python\ndef count_lines(filename):\n    with open(filename, 'r') as f:\n        return sum(1 for _ in f)  # Efficiently counts lines without loading all into memory\n\nprint(count_lines('largefile.txt'))\n```\n\n## 추가 읽기\n\n* [GitHub Copilot 채팅에 대한 프롬프트 엔지니어링](/ko/copilot/concepts/prompting/prompt-engineering)\n* [GitHub 부필로트 사용에 대한 모범 사례](/ko/copilot/get-started/best-practices)"}