오픈 소스 소프트웨어의 가장 좋은 점 중 하나는 다른 사용자의 코드를 재사용하는 기능입니다. 코드 용도 변경은 시간을 절약하고, 새로운 기능을 검색하고, 다른 프로그래밍 스타일을 학습하는 데 도움이 됩니다. 코드를 다시 사용하는 두 가지 주요 방법이 있습니다.
- 코드 조각을 복사하여 직접 프로젝트에 붙여넣습니다. 코딩을 처음 접하게 되었다면 이것이 코드 재사용을 시작하는 가장 빠른 방법입니다.
- 라이브러리를 프로젝트로 가져오기 이 방법은 학습하는 데 다소 시간이 걸리지만 궁극적으로는 더 쉽고 효율적입니다. 소프트웨어 개발을 위한 기본 기술이기도 합니다.
프로젝트에서 다른 사용자의 코드 조각 사용
코딩을 학습할 때 다른 사람의 코드 조각을 복사하여 프로젝트에 붙여넣을 수 있습니다. 코드 조각 사용은 코딩을 학습하고 시간을 절약할 수 있는 좋은 방법이지만 다른 개발자의 코드를 복사하기 전에 항상 수행해야 하는 몇 가지 주요 단계가 있습니다.
1. 코드 조각 찾기 및 이해
첫 번째 단계는 다시 사용할 코드 조각을 선택하는 것입니다. 적합한 코드를 찾기 위해 GitHub 검색을 수행합니다. language:YOUR-SEARCH-LANGUAGE
와 같은 검색 한정자를 사용하여 검색 범위를 좁힐 수 있습니다.
예를 들어 숫자의 계수를 계산하는 Python 코드를 다시 사용한다고 가정해 보겠습니다. GitHub에서 factorial language:python is:repository user:devwithdocs
를 검색하면 devwithdocs/python-factorial
리포지토리를 찾을 수 있습니다. 이 리포지토리의 factorial_finder.py
에서는 루프를 사용하여 계산기를 구현합니다.
# Initialize the factorial result to 1
factorial = 1
# Initialize the input number to 6
number = 6
# Loop from 1 to number (inclusive) and multiply factorial by each number
for i in range(1, number + 1):
factorial *= i
print(f"The factorial of {number} is {factorial}")
코드 조각을 즉시 이해하지 못하는 경우 Copilot에 설명을 요청할 수 있습니다. factorial_finder.py
파일 맨 위에 있는 메뉴 모음에서 을 클릭하여 파일에 대한 대화를 시작한 다음, Copilot에 Explain this program
을 요청하세요.
2. 프로젝트 라이선스 이해
찾은 코드를 다시 사용하려면 먼저 라이선스를 이해해야 합니다. 라이선스는 해당 코드를 복사, 수정, 배포하는 기능을 포함하여 프로젝트에서 코드를 사용하는 방법을 결정합니다.
리포지토리 기본 페이지의 "정보" 섹션에서 프로젝트 라이선스를 찾을 수 있습니다. 예를 들어 devwithdocs/python-factorial
리포지토리는 MIT 라이선스에 따라 라이선스가 부여된 것을 볼 수 있습니다. 라이선스를 읽으려면 MIT license를 클릭합니다.
Note
사용하려는 코드가 다른 라이선스에 있는 경우 라이선스의 라이선스 요약을 참조하여 학습하세요.
전체 factorial_finder.py
파일을 복사하려고 하므로 MIT 라이선스는 라이선스 복사본을 프로젝트에 포함해야 함을 나타냅니다. Python 파일 맨 위에 라이선스를 메모로 붙여넣습니다.
3. 코드 조각 사용 및 수정
이제 코드와 해당 라이선스를 이해했으므로 코드 조각을 프로젝트에 붙여넣을 수 있습니다. 코드를 있는 그대로 사용할 수 있지만 특정 사용 사례에 맞게 코드를 수정해야 하는 경우가 많습니다.
계승 예제의 경우 5, 7, 9, 10의 계승 값을 빠르게 계산하려고 합니다. 각 숫자에 대해 전체 프로그램을 복사하여 붙여넣는 대신 계산기를 인수로 사용하는 함수로 이동할 수 있습니다.
이러한 변경을 수행하는 데 도움이 되도록 Copilot에 구현 제안 및 설명을 요청하도록 합니다. 현재 코드를 채팅 창에 붙여넣은 다음, Copilot에 Wrap the Python code above in a function
이라는 메시지를 표시할 수 있습니다. Copilot은 다음과 같은 코드를 생성합니다.
def calculate_factorial(number): # Initialize the factorial result to 1 factorial = 1 # Loop from 1 to number (inclusive) and multiply factorial by each number for i in range(1, number + 1): factorial *= i return factorial
def calculate_factorial(number):
# Initialize the factorial result to 1
factorial = 1
# Loop from 1 to number (inclusive) and multiply factorial by each number
for i in range(1, number + 1):
factorial *= i
return factorial
새 함수를 사용하면 프로젝트에 다음 코드를 추가한 다음, Python 프로그램을 실행하여 숫자의 계승을 쉽게 찾을 수 있습니다.
print(calculate_factorial(5)) print(calculate_factorial(7)) print(calculate_factorial(9)) print(calculate_factorial(10))
print(calculate_factorial(5))
print(calculate_factorial(7))
print(calculate_factorial(9))
print(calculate_factorial(10))
축하합니다! 예제 코드 조각을 발견하고, 이해하고, 수정했습니다.
프로젝트의 라이브러리에서 코드 사용
라이브러리를 사용하는 것은 개발자의 표준 사례입니다. 라이브러리는 기본적으로 다른 개발자가 특정 작업을 수행하기 위해 작성한 코드 컬렉션입니다. 미리 작성된 코드를 사용하기 위해 라이브러리를 프로젝트로 가져와 시간과 노력을 절약할 수 있습니다.
이 섹션에서는 이전 섹션의 Python 계승 계산기 예제를 계속 사용하겠습니다. 참고로 현재 코드는 다음과 같습니다.
def calculate_factorial(number): # Initialize the factorial result to 1 factorial = 1 # Loop from 1 to number (inclusive) and multiply factorial by each number for i in range(1, number + 1): factorial *= i return factorial print(calculate_factorial(5)) print(calculate_factorial(7)) print(calculate_factorial(9)) print(calculate_factorial(10))
def calculate_factorial(number):
# Initialize the factorial result to 1
factorial = 1
# Loop from 1 to number (inclusive) and multiply factorial by each number
for i in range(1, number + 1):
factorial *= i
return factorial
print(calculate_factorial(5))
print(calculate_factorial(7))
print(calculate_factorial(9))
print(calculate_factorial(10))
1. 라이브러리 찾기
프로젝트에 추가하려는 기능을 알고 나면 관련 코드가 포함된 라이브러리를 검색할 수 있습니다. Copilot Chat은 자연어를 사용하여 찾고 있는 내용을 정확하게 설명할 수 있으므로 라이브러리를 검색하는 쉬운 방법입니다.
계승 계산기로 돌아가서 계승을 찾는 것은 매우 일반적인 함수이며, 누군가가 기존 라이브러리에 해당 함수를 포함할 가능성이 높습니다. Copilot Is there a Python library with a function for calculating a factorial?
에 요청하는 경우 Copilot은 표준 Python 라이브러리의 math
모듈에 계승 함수가 포함되어 있다는 것을 알려줍니다.
2. 프로젝트의 보안 우선 순위 지정
프로젝트에 라이브러리 또는 모듈을 추가할 때 종속성이라고 하는 항목을 만듭니다. 종속성은 프로젝트가 올바르게 작동하기 위해 사용하는 미리 작성된 코드 번들이며, 신중하게 작성되거나 유지 관리되지 않으면 작업에 보안 취약성이 발생할 수 있습니다. 다행히도 프로젝트를 가장 잘 보호하기 위해 수행할 수 있는 몇 가지 조치가 있습니다.
인기 있는 라이브러리 사용
인기 있는 라이브러리는 많은 개발자가 적극적으로 유지 관리하고 사용하므로 더 안전할 가능성이 높습니다. 인기를 나타내는 좋은 마커 중 하나는 리포지토리에 있는 별의 수입니다. 종속성에 대한 GitHub 리포지토리를 찾을 수 없는 경우에는 Copilot에 도움을 요청하세요.
예를 들어 math
모듈에 대해 Find the GitHub repository containing the code for the math module in Python
메시지를 Copilot에 표시할 수 있습니다. Copilot은 math
모듈이 64,000개가 넘는 별이 있는 python/cpython
에 정의되어 있습니다.
프로젝트에 대해 Dependabot alerts 활성화
활성화된 경우 Dependabot에서 보안 문제를 감지하면 Dependabot alerts가 자동으로 생성되어 취약성을 빠르게 해결할 수 있습니다. Dependabot은 모든 오픈 소스 GitHub 리포지토리에서 무료로 사용할 수 있습니다.
Dependabot alerts를 켜려면 프로젝트의 GitHub 리포지토리에 대한 보안 Security 탭을 클릭합니다. Dependabot alerts 옆에 있는 Enable Dependabot alerts 를 클릭합니다. 사이드바의 Dependabot 탭에서 Dependabot alerts에 액세스할 수 있습니다.
3. 라이브러리에서 코드 구현
작업 보안을 위한 단계를 수행했으므로 라이브러리를 프로젝트로 가져온 다음, 코드에서 해당 콘텐츠를 사용해야 합니다. 라이브러리에 대한 문서를 읽고 직접 수행하는 방법을 알아보거나 Copilot에게 구현 제안 및 설명을 요청할 수 있습니다.
계승 프로그램의 경우 Copilot에게 How do I use the factorial function of the math module in my Python project?
와 같은 질문을 할 수 있습니다. Copilot은 다음 코드 버전을 제안합니다.
import math # Calculate the factorial of a number number = 5 result = math.factorial(number) print(f"The factorial of {number} is {result}")
import math
# Calculate the factorial of a number
number = 5
result = math.factorial(number)
print(f"The factorial of {number} is {result}")
프로젝트의 기존 코드를 위의 구현으로 바꾼 후 예제 프로젝트의 라이브러리에서 코드를 다시 사용했습니다.