Github 내 Python 코드 활용
GitHub는 전 세계 1억 명 이상의 개발자들이 코드를 공유하고 의견을 나누는 플랫폼입니다. 이 플랫폼에서 개발자들은 오픈 소스 커뮤니티에 참여하고, 코드 리뷰, 버그 추적 및 기능 개선과 같은 다양한 활동을 수행하고 있습니다. GitHub는 개발자들에게 필수적인 리소스를 제공하며, 여러 프로젝트와 아이디어를 공유할 수 있는 공간으로 기능을 하고 있습니다. 이번 'HR Analytics 끄적끄적' 매거진에서는 Chat GPT를 활용하여 GitHub를 효과적으로 활용하고, Chat GPT와 GitHub 오픈소스 Data를 활용하여 HR 데이터 분석과 웹 애플리케이션 개발을 보다 손쉽게 할 수 있는 방법을 살펴보고자 합니다.
깃(Git): 깃(Git)은 형상 관리 도구 중 하나로, 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.
깃허브(GitHub): 깃허브(Github)는 분산 버전 관리 툴인 깃(Git)를 사용하는 프로젝트를 지원하는 웹호스팅 서비스이다.
GitHub 메인화면: GitHUB 메인 페이지를 방문하면 개발자 커뮤니티에 참여할 수 있으며 플랫폼을 통해 다양한 프로그래밍 리소스를 찾을 수 있습니다. 위 링크는 GitHub 메인화면으로 접속가능한 URL입니다.
원하는 소스코드를 찾기 위해서는 위와 같이 github 메인화면에 들어가서 상단 검색창에 검색어를 넣고 검색을 실시하는 방법이 있으며 다른 방법으로는 아래 검색 페이지 링크를 통해 진입하여 특정 프로젝트나 주제, 언어 등을 검색하는 방법도 있습니다. 아래 링크는 Github 검색화면으로 바로 갈 수 있는 URL입니다.
https://github.com/search/advanced
프로그래밍에 익숙하지 않은 경우, GitHub에 올라온 소스 코드를 활용하는 것이 어려울 수 있습니다. 이러한 활용법을 빠르게 숙지하기 위해서는 GitHub 사용법을 지속적으로 학습하고 관련 정보를 수집하는 것이 중요한데요. 이 과정에서 ChatGPT를 활용하는 것이 인터넷 검색 보다 더 편리하고 쉽게 정보를 찾을 수 있습니다. 저의 경우에도 GitHub 사용법을 ChatGPT와 대화하며 숙지했는데요. Python과 GitHub의 연동 방법, 가상환경 설정, 소스 코드 활용법 등 GitHub 사용 중 발생할 수 있는 다양한 상황을 ChatGPT에게 질문하면 Chat GPT는 질문에 알맞는 답변을 지속적으로 해주었습니다.
위 Chat GPT와 주고 받은 대화는 일반적인 Python, GitHub 사용법에 대해 질문하고 Chat GPT가 답변해준 내용입니다. 프로그램을 사용하며 수시적으로 발생하는 궁금증에 대해 Chat GPT가 할루시네이션 효과 없이 적절하게 대답해 주는 것을 확인할 수 있습니다. 이와 같은 사용법 질문은 글자로 표현하기 어려운 경우에는 스크린샷을 찍은후 해당 화면을 보여주며 질문을 해도 Chat GPT는 잘 대답해 줍니다.
다음으로, Chat GPT에게 소스코드를 활용 시 readme.txt를 읽어야 하냐고 질문을 하니 일반적으로는 읽는 것이 좋다고 대답하여 활용하려는 소스코드의 readme.txt를 읽었습니다. 하지만 이러한 readme.txt 설명자료도 대부분 영어로 기술되어 있는 경우가 많으며 프로그래밍이 익숙하지 않은 사람의 경우 읽기에 쉽지 않은 경우가 많습니다. 따라서 readme.txt 내용을 긁어서 Chat GPT에게 전달하고 해당 내용을 설명해 달라고 요청하니 좀 더 이해하기 쉽게 해당 소스코드 사용법에 대해서 안내해 주었습니다.
https://github.com/streamlit/llm-examples/tree/main
Chat GPT가 설명해준대로 Python을 실행한 결과 성공적으로 프로그램을 실행한 것을 아래 화면을 통해 확인할 수 있습니다. 프로그램을 시행하는 과정에서 오류가 발생하는 경우 오류 메시지를 다시 Chat GPT에게 전달해도 Chat GPT는 해당 상황에 대한 해결책을 효과적으로 제시해줍니다.
https://github.com/ashomah/HR-Analytics
위 Ashomah의 GitHub 홈페이지를 방문하여 HR Analytics 데이터를 분석에 사용되는 소스코드를 다운로드하였습니다. 이 과정은 다음과 같습니다: 먼저, GitHub 페이지의 오른쪽 상단에 있는 'Code' 버튼을 클릭합니다. 그 후에 나타나는 옵션 중에서 '[Download ZIP]'을 선택하여 zip 파일을 다운로드합니다. 이 파일을 Chat GPT_Data Analysis에게 탑재하고 데이터 분석을 요청하면, Chat GPT가 데이터 분석을 진행해 줍니다. Chat GPT는분석진행 과정에서 분석의 방향을 어떻게 잡을지 중간 중간 추가 질문을 하기도 합니다.
개인 GitHub 홈페이지에 받은 Zip 파일을 Chat GPT_Data Analysis에 탑재하니 Chat GPT는 zip 파일에 들어가 있는 여러 파일 중 데이터 분석에 필요한 데이터를 찾아 분석을 시작합니다. 이다음에는 사용자가 데이터 파일에 어떠한 변수가 있는지 물어본 후 Chat GPT와 대화하는 방식으로 데이터 분석을 진행할 수 있습니다. 이 과정에서 사용자는 탑재한 데이터에 대한 인사이트를 증진시킬 수 있습니다.
https://github.com/mrc03/IBM-HR-Analytics-Employee-Attrition-Performance
다음으로 mrc03의 Github 홈페이지에 업로드 되어 있는 IBM HR Data를 분석해 보고자 합니다. 이 데이터는 HRKIM 브런치에서도 여러번 활용한적 있었습니다. Chat GPT_Data Anlysis에게 GitHub 소스코드를 탑재하고 퇴직 예측 분석을 실시해 달라고 요청하였습니다. 요청 결과 Chat GPT Data Analysis 내에서 퇴직 예측 분석이 잘 이루어짐을 아래 화면을 통해 확인할 수 있었습니다.
https://github.com/Franky1/hr-dashboard-streamlit
위 alfie-danish의 GitHub 홈페이지에 들어가 소스코드를 다운로드하고 해당 코드를 참고하여 Chat GPT와 HR dashboard를 만들어보았습니다. 위 데이터 분석 사례와 동일하게 Github에서 오른쪽 상단에 Code 버튼 클릭 후 [Download ZIP] 버튼을 클릭하면 zip파일을 다운로드할 수 있는데요. 해당 파일을 다운로드하여 Chat GPT에게 탑재한 후 Dashboad에 필요한 데이터 파일과 함께 탑재한 후 동일한 방식으로 HR Dashboad를 만들어달라고 요청하면 Chat GPT는 Python Code를 제시해 줍니다.
다만 Python 코드가 복잡할 경우 사람이 직접 신경 써야 하는 부분이 커집니다. 따라서 복잡한 작업을 수행하기 위해서는 사용자도 Python 코드에 대해 어느정도 이해하고 있어야 하며 Chat GPT와 지속적으로 대화를 주고받는 방식으로 작업을 진행하여야 합니다. 사용자와 Chat GPT가 상호작용으로 작업을 진행할 때 프로그램의 퀄리티를 증진시킬 수 있습니다.
해당 작업을 진행하는 과정에서도 라이브러리 버전 문제라든지, 라이브러리가 설치가 되어 있지 않다든지, 가끔 참고 코드와 새로운 csv 연동과정에서 생기는 오류 등이 생겨 해당 부분에 대해서 Chat GPT와 대화를 통해 개선해야 하는 경우가 많았습니다. 이 경우에도 사용자의 코드에 대한 이해와 함께 오류 메시지를 Chat GPT에게 전달하여 협업으로 코드를 개선하는 과정이 수반되어야 합니다.
위에서 확인할 수 있는 바와 같이 Github 소스코드를 활용하여 새로운 데이터를 활용한 HR Dashboard를 만들어 보았습니다. 이와 같이 활용할만한 Github 코드가 있는 경우 Chat GPT를 함께 활용하면 새로운 데이터나 새로운 조건에 맞는 새로운 코드를 개발할 때 해당 소스코드를 적극적으로 활용할 수 있습니다.
GitHub는 단순한 코드 저장소를 넘어서, 전 세계 개발자들과의 협업과 오픈 소스 프로젝트에 기여할 수 있게 해주는 플랫폼입니다. GitHub 사용자들은 이곳에서 새로운 기술을 배우고 그 기술을 활용하여 자신만의 프로젝트를 수행할 수 있습니다. 이 과정에서 ChatGPT와 같은 생성형 AI는 개발 과정을 더욱 효율적이고 창의적으로 만들 수 있습니다. 생성형 AI는 복잡한 문제 해결, 코드 작성 및 디버깅을 용이하게 하며, 프로젝트를 한 단계 끌어올릴 수 있도록 도와줍니다. 또한 익숙하지 않은 프로그램의 사용법도 좀 더 원활하게 숙지할 수 있도록 도와줍니다. Chat GPT는 개발의 영역에서도 업무의 효율성을 크게 증진시키는 강력한 도구가 될 수 있음을 이번 글을 통해서 확인할 수 있었습니다.
sfc-gh-jcarroll Github, https://github.com/streamlit/llm-examples/tree/main
alfie-danish GitHub, https://github.com/Franky1/hr-dashboard-streamlit
Ashomah의 GitHub, https://github.com/ashomah/HR-Analytics
mrc03의 Github, https://github.com/mrc03/IBM-HR-Analytics-Employee-Attrition-Performance
Github 홈페이지, https://github.com/
위키백과. 깃허브. https://ko.wikipedia.org/wiki/%EA%B9%83%ED%97%88%EB%B8%8C
https://www.yes24.com/Product/Goods/129378508