{"meta":{"title":"프로젝트에서 다른 사용자의 코드 다시 사용","intro":"기존 코드를 프로젝트에 통합하여 코딩 효율성과 지식을 향상합니다.","product":"시작하기","breadcrumbs":[{"href":"/ko/get-started","title":"시작하기"},{"href":"/ko/get-started/learning-to-code","title":"코딩 학습"},{"href":"/ko/get-started/learning-to-code/reusing-other-peoples-code-in-your-projects","title":"사용자 코드 다시 사용"}],"documentType":"article"},"body":"# 프로젝트에서 다른 사용자의 코드 다시 사용\n\n기존 코드를 프로젝트에 통합하여 코딩 효율성과 지식을 향상합니다.\n\nopen source 소프트웨어의 가장 좋은 점 중 하나는 다른 사용자의 코드를 재사용하는 기능입니다. 코드 용도 변경은 시간을 절약하고, 새로운 기능을 검색하고, 다른 프로그래밍 스타일을 학습하는 데 도움이 됩니다. 코드를 다시 사용하는 두 가지 주요 방법이 있습니다.\n\n* **코드 조각을 복사하여 직접 프로젝트에 붙여넣습니다.** 코딩을 처음 접하게 되었다면 이것이 코드 재사용을 시작하는 가장 빠른 방법입니다.\n* **라이브러리를 프로젝트로 가져오기** 이 방법은 학습하는 데 다소 시간이 걸리지만 궁극적으로는 더 쉽고 효율적입니다. 소프트웨어 개발을 위한 기본 기술이기도 합니다.\n\n이 문서에서는 숫자의 요소를 계산하는 Python 코드를 다시 사용하는 예제를 통해 두 가지 방법을 모두 알아봅니다.\n\n## 프로젝트에서 다른 사용자의 코드 조각 사용\n\n처음 코딩을 학습할 때 다른 사람의 코드 조각을 복사하여 프로젝트에 붙여넣는 방식으로 다시 사용할 수 있습니다. 시간을 절약할 수 있는 좋은 방법이지만 다른 개발자의 코드를 복사하기 전에 항상 수행해야 하는 몇 가지 주요 단계가 있습니다.\n\n### 1. 코드 조각 찾기 및 이해\n\n먼저 다시 사용하려는 코드 조각을 찾아 이해해야 합니다. 이 예제에서는 [`new2code/python-factorial`](https://github.com/new2code/python-factorial) 리포지토리를 선택하겠습니다.\n\n먼저 루프를 사용하여 계산기를 구현하는 \\*\\*\\*\\*`factorial_finder.py`:\n\n```python\n# Initialize the factorial result to 1\nfactorial = 1\n\n# Initialize the input number to 6\nnumber = 6\n\n# Loop from 1 to number (inclusive) and multiply factorial by each number\nfor i in range(1, number + 1):\n    factorial *= i\n\nprint(f\"The factorial of {number} is {factorial}\")\n```\n\n파일 상단의 메뉴 모음에서 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copilot\" aria-label=\"Ask Copilot about this file\" role=\"img\"><path d=\"M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z\"></path><path d=\"M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z\"></path></svg>를 클릭하여 Copilot와 대화를 시작합니다.\n\n![파일 보기 맨 위에 진한 주황색 윤곽선으로 표시된 Copilot 버튼 스크린샷](/assets/images/help/copilot/factorial-finder-copilot-button.png)\n\n채팅 창에서 다음을 요청합니다 Copilot.\n\n```text copy\nExplain this program.\n```\n\n### 2. 프로젝트 라이선스 이해\n\n찾은 코드를 다시 사용하려면 먼저 라이선스를 이해해야 합니다. 라이선스는 해당 코드를 복사, 수정, 배포하는 기능을 포함하여 프로젝트에서 코드를 사용하는 방법을 결정합니다.\n\n[new2code/python-factorial](https://github.com/new2code/python-factorial)에 대한 라이선스를 확인하려면 리포지토리의 기본 페이지에서 \"About\" 섹션을 찾으세요. 여기에서 리포지토리는 MIT 라이선스에 따라 라이선스가 부여된 것을 볼 수 있습니다. 라이선스를 읽으려면 <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-law\" aria-label=\"law\" role=\"img\"><path d=\"M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z\"></path></svg>를 클릭합니다\\*\\*\\*\\*.\n\n![new2code/python-factorial 리포지토리의 기본 페이지 스크린샷 오른쪽 사이드바에서 \"MIT license\"가 진한 주황색 윤곽선으로 표시됩니다.](/assets/images/help/repository/license-info-python-factorial.png)\n\n전체 `factorial_finder.py` 파일을 복사하려고 하므로 MIT 라이선스는 라이선스 복사본을 프로젝트에 포함해야 함을 나타냅니다. Python 파일 맨 위에 라이선스를 메모로 붙여넣습니다.\n\n> \\[!TIP]\n> [라이선스 선택](https://choosealicense.com/licenses/) 도구를 사용하여 다른 일반 라이선스에서 허용되는 사항을 알아볼 수 있습니다.\n\n### 3. 코드 조각 사용 및 수정\n\n이제 코드 조각을 프로젝트에 붙여넣을 준비가 되었습니다. 코드 조각을 그대로 사용할 수 있는 경우도 있지만 특정 사용 사례에 맞게 코드 조각을 **수정**하려는 경우가 많습니다. 지금 연습해 봅시다!\n\n예를 들어, 5, 7, 9, 10의 팩토리얼을 빠르게 계산해 보겠습니다. 각 숫자에 대해 전체 프로그램을 복사하여 붙여넣는 대신 계산기를 인수로 사용하는 **함수**로 이동할 수 있습니다.\n\n구현을 제안하고 설명하는 데 사용합니다 [Copilot Chat](https://github.com/copilot) . 현재 코드를 채팅 창에 붙여넣고 다음 프롬프트를 표시합니다.\n\n```text copy\nWrap the Python code above in a function.\n```\n\nCopilot 는 다음과 같은 코드를 생성합니다.\n\n```python copy\ndef calculate_factorial(number):\n    # Initialize the factorial result to 1\n    factorial = 1\n\n    # Loop from 1 to number (inclusive) and multiply factorial by each number\n    for i in range(1, number + 1):\n        factorial *= i\n\n    return factorial\n```\n\n새 함수를 사용하면 프로젝트에 다음 코드를 추가한 다음, Python 프로그램을 실행하여 숫자의 요소를 쉽게 찾을 수 있습니다.\n\n```python copy\nprint(calculate_factorial(5))\nprint(calculate_factorial(7))\nprint(calculate_factorial(9))\nprint(calculate_factorial(10))\n```\n\n축하합니다! 예제 코드 조각을 발견하고, 이해하고, 수정했습니다.\n\n## 프로젝트의 라이브러리에서 코드 사용\n\n이제 개발자를 위한 **표준 사례**인 라이브러리를 사용하는 방법을 알아보겠습니다. 라이브러리는 기본적으로 다른 개발자가 특정 작업을 수행하기 위해 작성한 코드 컬렉션입니다. 미리 작성된 코드를 사용하기 위해 라이브러리를 프로젝트로 가져와 시간과 노력을 절약할 수 있습니다.\n\n이 섹션에서는 이전 섹션의 Python 팩터리 계산기 예제를 계속 사용합니다. 참고로 현재 코드는 다음과 같습니다.\n\n```python copy\ndef calculate_factorial(number):\n    # Initialize the factorial result to 1\n    factorial = 1\n\n    # Loop from 1 to number (inclusive) and multiply factorial by each number\n    for i in range(1, number + 1):\n        factorial *= i\n\n    return factorial\n\nprint(calculate_factorial(5))\nprint(calculate_factorial(7))\nprint(calculate_factorial(9))\nprint(calculate_factorial(10))\n```\n\n### 1. 라이브러리 찾기\n\n프로젝트에 추가하려는 기능을 알고 나면 관련 코드가 포함된 라이브러리를 검색할 수 있습니다.\nCopilot Chat 은 자연어를 사용하여 원하는 내용을 정확하게 설명할 수 있으므로 라이브러리를 쉽게 검색할 수 있는 방법입니다.\n\n팩토리얼을 구하는 것은 꽤 일반적인 기능이므로, 이미 존재하는 라이브러리에 해당 함수가 포함되어 있을 가능성이 높습니다.\n[\nCopilot Chat\n](https://github.com/copilot)을 열고, 다음을 요청하십시오.\n\n```text copy\nIs there a Python library with a function for calculating a factorial?\n```\n\nCopilot 는 표준 Python 라이브러리의 모듈에 [`math`](https://docs.python.org/3/library/math.html) 포함된 팩터리 함수를 알려 줍니다.\n\n### 2. 프로젝트의 보안 우선 순위 지정\n\n프로젝트에 라이브러리 또는 모듈을 추가할 때 **종속성**이라고 하는 항목을 만듭니다. 종속성은 프로젝트가 올바르게 작동하기 위해 사용하는 미리 작성된 코드 번들입니다. 신중하게 작성되지 않거나 유지 관리되지 않으면 작업에 보안 취약점이 발생할 수 있습니다.\n\n다행히도 프로젝트를 가장 잘 보호하기 위해 수행할 수 있는 몇 가지 조치가 있습니다. 지금 연습해 봅시다.\n\n#### 인기 있는 라이브러리 사용\n\n인기 있는 라이브러리는 많은 개발자가 적극적으로 유지 관리하고 사용하므로 더 안전할 가능성이 높습니다. 인기를 나타내는 좋은 마커 중 하나는 리포지토리에 있는 **별**의 수입니다. 종속성에 대한 리포지토리를 찾을 GitHub 수 없는 경우 도움을 요청할 Copilot 수 있습니다.\n\n열고 [Copilot Chat](https://github.com/copilot), 그런 다음 물어보세요.\n\n```text copy\nFind the GitHub repository containing the code for the math module in Python.\n```\n\nCopilot는 `math` 모듈이 [`python/cpython`](https://github.com/python/cpython)에서 정의되었으며, 이 저장소는 64,000개가 넘는 별을 받았음을 알려줍니다.\n\n#### Dependabot alerts 프로젝트에 사용할 수 있도록 설정\n\n사용하도록 설정된 Dependabot alerts은 종속성에서 보안 문제를 감지하면 Dependabot이 자동으로 생성되어 취약성을 신속하게 해결할 수 있습니다.\nDependabot는 모든 오픈 소스 \\*\\*\\*\\* 리포지토리에서 GitHub 사용할 수 있습니다.\n\n지금 리포지토리의 Dependabot alerts를 활성화하세요.\n\\*\\* <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality\n\\*\\* 프로젝트 리포지토리의 GitHub 탭을 클릭합니다.\nDependabot alerts 옆에 있는 **사용 Dependabot alerts** 을 클릭합니다. 사이드바의 **Dependabot alerts** 탭에서 Dependabot에 액세스할 수 있습니다.\n\n### 3. 라이브러리에서 코드 구현\n\n이제 라이브러리를 프로젝트로 가져온 다음, 해당 콘텐츠를 코드에서 사용할 준비가 되었습니다. 라이브러리에 대한 설명서를 읽고 직접 수행하는 방법을 알아보거나 구현을 제안하고 설명하도록 요청할 Copilot 수 있습니다.\n\n열고 [Copilot Chat](https://github.com/copilot)다음을 요청합니다.\n\n```text copy\nHow do I use the factorial function of the math module in my Python project?\n```\n\nCopilot 는 다음 코드의 버전을 제안합니다.\n\n```python copy\nimport math\n\n# Calculate the factorial of a number\nnumber = 5\nresult = math.factorial(number)\n\nprint(f\"The factorial of {number} is {result}\")\n```\n\n프로젝트의 기존 코드를 위의 구현으로 바꾼 후 예제 프로젝트의 라이브러리에서 코드를 사용하는 데 성공했습니다.\n\n## 작업 공유\n\n이 자습서에서는 자신의 작업에서 다른 사람의 코드를 안전하게 다시 사용하는 방법을 알아보았습니다. 축하하기 위해 코드를 용도 변경하고 [커뮤니티 토론](https://github.com/orgs/community/discussions/153140)의 예제 프로젝트를 기반으로 빌드하는 방법을 공유합니다.\n\n## 추가 참고 자료\n\n* [예제 코드 찾기 및 이해](/ko/get-started/learning-to-code/finding-and-understanding-example-code)"}