개발자가 싫어하는 작업을 ChatGPT로 해결하는 방법

반복적이거나 기계적인 작업을 좋아하는 개발자는 많지 않을 것입니다. 다행히도 2022년부터 아주 강력한 도구, ChatGPT가 이 “지루한” 작업을 훨씬 더 쉽게 만들어 주고 있습니다.

이번 글에서는 ChatGPT를 활용해 다음과 같은 개발 작업을 손쉽게 처리하는 방법을 소개합니다.

  • 파일 생성 및 업데이트
  • 메서드/함수 이름 생성
  • 다국어(i18n) 파일 생성
  • 복잡한 코드 이해
  • 데이터베이스 삽입문(insert) 생성

1. 파일 생성 및 업데이트

CSV 파일은 여전히 데이터 입력이나 테스트 데이터로 종종 사용됩니다. ChatGPT를 이용해 손쉽게 CSV 파일을 생성하거나 수정할 수 있습니다.

예를 들어, 고객 목록이 담긴 CSV 파일을 생성하려면 다음과 같은 프롬프트를 사용할 수 있습니다.

1
2
3
4
5
6
10명의 고객 정보가 담긴 CSV 파일을 생성해 주세요. 각 고객은 다음과 같은 열을 포함해야 합니다:
- id: 정수
- firstName: 문자열
- lastName: 문자열
- email: 문자열
- phone: 문자열

세미콜론(;) 구분자를 사용하고 국제 표준 전화번호 형식을 적용하려면 다음과 같이 요청할 수 있습니다.

1
쉼표 대신 세미콜론을 사용하고, 전화번호는 국제 표준을 따르도록 해 주세요.

또한, 시스템이 JSON 형식으로 전환되었다면 다음과 같이 요청하면 JSON 형식으로 변환된 파일을 생성해 줍니다.

1
CSV 대신 JSON 형식으로 변환해 주세요.

2. 메서드/함수 이름 생성

메서드나 함수를 개발할 때 이름을 짓기 어려운 경우가 있습니다. 적절한 이름을 찾지 못한다면, 그 함수가 지나치게 많은 작업을 수행하고 있을 가능성이 높습니다. 하지만 이번에는 아이디어가 떠오르지 않거나, 익숙하지 않은 코드를 리팩토링해야 할 때의 상황에 초점을 맞춰 봅시다.

예를 들어, 다음 메서드에 대한 이름을 추천해 달라고 할 수 있습니다.

1
2
3
4
5
6
7
public void doSomething(Entity entity){
if (entity.getId() == null) {
insert(entity);
} else {
update(entity);
}
}

ChatGPT는 적절한 메서드 이름을 제안해 주어 코드의 가독성을 높일 수 있습니다.

3. 다국어(i18n) 파일 생성

한 번은 시스템에서 사용하는 레이블의 번역본을 XML 파일로 받았는데, 시스템에서는 i18n 형식이 필요했습니다. XML 파일 예시는 다음과 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<data>
<item>
<label>name</label>
<description>Name</description>
<language>en</language>
</item>
<item>
<label>phone</label>
<description>Phone number</description>
<language>en</language>
</item>
<item>
<label>email</label>
<description>E-mail</description>
<language>en</language>
</item>
...
</data>

이 XML을 사용해 영어와 스페인어의 i18n 파일을 생성하려면 ChatGPT에 다음과 같이 요청할 수 있습니다.

1
2
주어진 XML 파일을 바탕으로 영어와 스페인어 각각에 대한 i18n 파일을 생성해 주세요. 형식은 다음과 같아야 합니다:
label=description

결과는 다음과 같습니다.

1
2
3
4
5
# English i18n file(en.i18n)
name=Name
phone=Phone number
email=E-mail
...
1
2
3
4
5
# Spanish i18n file(es.i18n)
name=Nombre
phone=Número de teléfono
email=Correo electrónico
...

4. 복잡한 코드 이해하기

레거시 코드를 유지보수할 때, 메서드 이름만으로는 코드의 기능을 파악하기 어려운 경우가 있습니다.

예를 들어, 다음 코드가 어떤 기능을 수행하는지 ChatGPT에게 물어볼 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void methodA(int arr[], int n) {
int i, j, temp;
boolean swapped;
for (i = 0; i < n - 1; i++) {
swapped = false;
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = true;
}
}
if (swapped == false)
break;
}
}

ChatGPT는 이 코드가 배열의 요소를 정렬하기 위해 버블 정렬을 사용하고 있음을 설명해 줍니다.

5. 삽입문(insert) 생성

데이터베이스에 데이터를 삽입하는 작업을 자동화할 수 있다면 많은 시간이 절약될 수 있습니다. ChatGPT는 삽입문을 작성하는 데도 도움이 됩니다!

다음과 같은 테이블이 있다고 가정해 봅시다.

1
2
3
4
5
6
7
CREATE TABLE customer (
customer_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
phone_number VARCHAR(20)
);

그리고 다음과 같은 CSV 파일로 데이터를 받았다고 합시다.

1
2
3
customer_id,first_name,last_name,email,phone_number
1,John,Doe,johndoe@example.com,555-1234
...

이 데이터를 삽입문으로 변환하려면 ChatGPT에 다음과 같이 요청할 수 있습니다.

1
2
3
4
5
6
7
8
9
주어진 CSV 데이터를 기반으로 삽입문을 생성해 주세요. 테이블 구조는 다음과 같습니다:

CREATE TABLE customer (
customer_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
phone_number VARCHAR(20)
);

결론

ChatGPT에게 코드를 작성하도록 요청하는 데 회의적일 수 있지만, 반복 작업이나 파일 변환, 테스트 데이터 생성에는 아주 유용하게 사용할 수 있습니다.

Share