상세 컨텐츠

본문 제목

[글 쓰는 엔지니어] ChatGPT 갖고 놀기 6부 인공지능 ChatGPT의 코딩 실력

본문

반응형

 

저는 인공지능을 마치 장난감처럼 갖고 놀았습니다. 개발할 능력이 안 되면 잘 갖고 노는 것도 능력이라고 생각합니다. 여러 가지로 갖고 놀아 보다가 ChatGPT가 코딩 능력도 갖추고 있다고 해서 파이썬 (Python)으로 확인해봤습니다. 제가 마침 할 줄 아는 프로그램 언어이기도 해서 ChatGPT가 어느 정도의 실력을 갖고 있는지 테스트 해보고 싶은 생각이 들었습니다. 먼저 미국의 인구를 크롤링 (Crawling) 할 수 있는 프로그램을 코딩해보라고 해봤습니다.

 

질문 : Please make a program code of python to crawl population of the USA for me.

ChatGPT : This content may violate our content policy. If you believe this to be in error, please submit your feedback — your input will aid our research in this area.

 

Sure, here is a simple Python program that uses the requests library to crawl the population data for the United States from the World Bank's website:

import requests

url = "https://api.worldbank.org/v2/country/USA/indicator/SP.POP.TOTL?format=json"

response = requests.get(url)

if response.status_code == 200:
  data = response.json()
  population = data[1][0]["value"]
  print(f"The population of the United States is {population}")
else:
  print("There was an error accessing the data")

This program makes a GET request to the World Bank's API and retrieves a JSON object containing the population data for the United States. The data is then parsed and the population is extracted and printed to the console.

Please note that this code is provided for illustration purposes only and may not be suitable for all use cases. You may need to modify the code or add additional functionality depending on your specific requirements.

I hope this helps! If you have any further questions or need additional assistance, please don't hesitate to ask.

 

ChatGPT (번역) : 이 콘텐츠는 Google 콘텐츠 정책을 위반할 수 있습니다. 이것이 오류라고 생각되면 피드백을 제출해 주십시오. 귀하의 의견은 이 분야에 대한 조사에 도움이 될 것입니다.

물론입니다. 다음은 요청 라이브러리를 사용하여 세계 은행 웹 사이트에서 미국의 인구 데이터를 크롤링하는 간단한 Python 프로그램입니다.

 

[코딩 생략]

 

이 프로그램은 World Bank의 API에 GET 요청을 하고 미국의 인구 데이터가 포함된 JSON 개체를 검색합니다. 그런 다음 데이터가 구문 분석되고 모집단이 추출되어 콘솔에 인쇄됩니다.
이 코드는 설명 목적으로만 제공되며 모든 사용 사례에 적합하지 않을 수 있습니다. 특정 요구 사항에 따라 코드를 수정하거나 추가 기능을 추가해야 할 수 있습니다.
이게 도움이 되길 바랍니다! 추가 질문이 있거나 추가 지원이 필요한 경우 주저하지 말고 문의하십시오.

 

 

요청을 하자마자 순식간에 코딩을 해주는 모습을 보고 깜짝 놀랐습니다. 간단한 코딩이긴 하지만 이렇게 빨리 할 수 있다니 놀라웠습니다. 곧바로 ChatGPT의 코딩 결과를 복사해서 Visual Studio Code로 가져가 확인해봤습니다. 결과는 다음과 같았습니다.

 

The population of the United States is 331893745

 

월드뱅크의 API를 확인해보니 2021년 미국 인구 통계 자료였습니다. 역시 ChatGPT는 2021년이 기준인가 싶기도 하지만, 생각해보면 2022년 통계는 아직 집계되지 않았을 수 있으니 최신 공식 자료임에는 분명한 것 같습니다. 

 

이 부분에서 저는 소름이 끼쳤습니다. 이젠 사람이 코딩도 할 필요가 없는 세상이구나 싶었습니다.

 

그래서 저는 다른 과제를 줘봤습니다. 미국의 코로나 현황을 크롤링할 수 있는 코딩을 해달라는 요청을 했습니다.

 

질문 : Please write a source code of python to crawl the current status of COVID-19 in the USA.

ChatGPT : Here is an example of a Python script that crawls the current status of COVID-19 in the USA using the BeautifulSoup library to parse the HTML of a website that provides this information:

import requests
from bs4 import BeautifulSoup

url = "https://www.worldometers.info/coronavirus/country/us/"
page = requests.get(url)
soup = BeautifulSoup(page.content, "html.parser")

cases = soup.find("div", class_="maincounter-number").find("span").text
deaths = soup.find("div", class_="panel_front").find_all("span")[1].text

print("Cases: " + cases)
print("Deaths: " + deaths)

This script uses the requests library to get the HTML of the website, and then uses BeautifulSoup to parse the HTML and find the specific elements on the page that contain the number of cases and deaths. It then prints out the numbers it found.

Please note, this is an example and the website may change it's structure or data. So you may need to update the code accordingly.

 

ChatGPT (번역) : 다음은 이 정보를 제공하는 웹사이트의 HTML을 구문 분석하기 위해 BeautifulSoup 라이브러리를 사용하여 미국의 COVID-19 현재 상태를 크롤링하는 Python 스크립트의 예입니다.

 

[코딩 생략]

 

이 스크립트는 요청 라이브러리를 사용하여 웹 사이트의 HTML을 가져온 다음 BeautifulSoup을 사용하여 HTML을 구문 분석하고 사례 및 사망 수를 포함하는 페이지의 특정 요소를 찾습니다. 그런 다음 찾은 숫자를 인쇄합니다.
이는 예시이며 웹사이트에서 구조나 데이터를 변경할 수 있습니다. 따라서 그에 따라 코드를 업데이트해야 할 수도 있습니다.

 

 

결과는 다음과 같습니다.

 

Cases: 104,106,912
Deaths: 1,132,236

 

간단한 과제들이지만 정말 훌륭하게 수행하는 모습에 놀랐습니다. 사실 이 정도 과제라면 직접 ChatGPT에게 미국의 인구가 몇 명인지, 미국의 코로나 현황은 어떤지 물어보면 됩니다. 하지만 코딩은 다른 영역입니다. 사용자가 코딩 실력이 부족하다면 공부에 도움이 될 수도 있고, 개발자들에게도 귀찮은 타이핑 시간을 많이 줄여줄 수 있기 때문입니다. 텍스트만 받아서 어떤 명령이나 요청인지 정확하게 인지하고 대답하는 모습은 정말 언제 봐도 신기합니다.

 

반응형

 

다음 과제는 세계 인구 순위를 크롤링해서 Pandas 라이브러리를 이용하고 CSV 파일로 저장해달라고 해봤습니다.

 

질문 : Please write Python script to crawl current world population ranking with Pandas and to export to csv file format.

ChatGPT : Here is an example of a Python script that uses the Pandas library to crawl current world population ranking and export it to a CSV file:

import pandas as pd

url = "https://www.worldometers.info/world-population/population-by-country/"
tables = pd.read_html(url)

df = tables[0]
df.to_csv("world_population_ranking.csv", index=False)

This script uses the pd.read_html function to read the HTML of the website and extract the table data. It then converts the table data into a Pandas DataFrame and stores it in the variable df. The to_csv function is used to export the data from the DataFrame to a CSV file named "world_population_ranking.csv" and the index=False argument is used to prevent the inclusion of the index column in the CSV file.

Please note, this is an example and the website may change it's structure or data. So you may need to update the code accordingly.

 

ChatGPT (번역) : 다음은 Pandas 라이브러리를 사용하여 현재 세계 인구 순위를 크롤링하고 CSV 파일로 내보내는 Python 스크립트의 예입니다.

 

[코딩 생략]

 

이 스크립트는 pd.read_html 함수를 사용하여 웹사이트의 HTML을 읽고 테이블 데이터를 추출합니다. 그런 다음 테이블 데이터를 Pandas DataFrame으로 변환하고 변수 df에 저장합니다. to_csv 함수는 DataFrame의 데이터를 "world_population_ranking.csv"라는 CSV 파일로 내보내는 데 사용되며 index=False 인수는 CSV 파일에 인덱스 열이 포함되지 않도록 하는 데 사용됩니다.
이는 예시이며 웹사이트에서 구조나 데이터를 변경할 수 있습니다. 따라서 그에 따라 코드를 업데이트해야 할 수도 있습니다.

 

역시 결과는 놀라웠습니다. 제가 요청한대로 통계 자료를 찾아서 Pandas 라이브러리로 가져온 후 CSV 파일로 성공적으로 내보냈습니다. 아래는 ChatGPT가 저장한 CSV 파일의 일부입니다.

# Country
(or dependency)
 Population (2020)  Density
(P/Km2
)
 Land Area
(Km2
)
Med.
Age
Urban Pop
%
World
Share
1 China       1,439,323,776        153     9,388,211 38 61% 18.47%
2 India       1,380,004,385        464     2,973,190 28 35% 17.70%
3 United States         331,002,651          36     9,147,420 38 83% 4.25%
4 Indonesia         273,523,615        151     1,811,570 30 56% 3.51%
5 Pakistan         220,892,340        287       770,880 23 35% 2.83%
6 Brazil         212,559,417          25     8,358,140 33 88% 2.73%
7 Nigeria         206,139,589        226       910,770 18 52% 2.64%
8 Bangladesh         164,689,383      1,265       130,170 28 39% 2.11%
9 Russia         145,934,462            9   16,376,870 40 74% 1.87%
10 Mexico         128,932,753          66     1,943,950 29 84% 1.65%
11 Japan         126,476,461        347       364,555 48 92% 1.62%
12 Ethiopia         114,963,588        115     1,000,000 19 21% 1.47%
13 Philippines         109,581,078        368       298,170 26 47% 1.41%
14 Egypt         102,334,404        103       995,450 25 43% 1.31%
15 Vietnam           97,338,579        314       310,070 32 38% 1.25%
16 DR Congo           89,561,403          40     2,267,050 17 46% 1.15%
17 Turkey           84,339,067        110       769,630 32 76% 1.08%
18 Iran           83,992,949          52     1,628,550 32 76% 1.08%
19 Germany           83,783,942        240       348,560 46 76% 1.07%
20 Thailand           69,799,978        137       510,890 40 51% 0.90%
21 United Kingdom           67,886,011        281       241,930 40 83% 0.87%
22 France           65,273,511        119       547,557 42 82% 0.84%
23 Italy           60,461,826        206       294,140 47 69% 0.78%
24 Tanzania           59,734,218          67       885,800 18 37% 0.77%
25 South Africa           59,308,690          49     1,213,090 28 67% 0.76%
26 Myanmar           54,409,800          83       653,290 29 31% 0.70%
27 Kenya           53,771,296          94       569,140 20 28% 0.69%
28 South Korea           51,269,185        527         97,230 44 82% 0.66%
29 Colombia           50,882,891          46     1,109,500 31 80% 0.65%
30 Spain           46,754,778          94       498,800 45 80% 0.60%

 

2020년 통계 자료이고 우리나라는 28위를 차지하고 있습니다. 인구밀도 면에서는 30위권 국가들 중 2위를 차지하고 있습니다. 제가 블로그에 테이블을 복사하고 보니 좁아서 편집해서 그렇지 이외에도 연간 변화율, 순 인구 변화, 이민자 수 변화 등도 포함되어 있습니다. 이런 방식이라면 ChatGPT에게 직접적으로 인구 순위를 검색해달라고 하는 것보다 더욱 자세한 자료를 얻게 되므로 요청할 때 대안으로 사용해도 될 것 같습니다. 

 

728x90
반응형

관련글 더보기

댓글 영역