πŸš€ Master Prompt Engineering and building AI Agents in our NEW courses! Use PROMPTING20 for 20% off ➜ Enroll now
μ½”λ“œ 생성

Generating Code

⚠️

이 μž₯은 ν™œλ°œν•˜κ²Œ 개발 μ€‘μž…λ‹ˆλ‹€.

ChatGPT와 같은 λŒ€κ·œλͺ¨μ–Έμ–΄λͺ¨λΈμ€ μ½”λ“œ 생성에 맀우 μœ μš©ν•©λ‹ˆλ‹€. 이 μ ˆμ€ μ½”λ“œ 생성을 μœ„ν•΄ ChatGPTλ₯Ό μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•œ λ§Žμ€ μ˜ˆμ‹œλ₯Ό λ‹€λ£° κ²ƒμž…λ‹ˆλ‹€.

μ•žμœΌλ‘œ λ‚˜μ˜€λŠ” λͺ¨λ“  μ˜ˆμ‹œμ—λŠ” OpenAI ν”Œλ ˆμ΄κ·ΈλΌμš΄λ“œ(Playground)와 gpt-3.5-turbo λͺ¨λΈμ΄ μ‚¬μš©λ©λ‹ˆλ‹€.

OpenAI의 λͺ¨λ“  μ±„νŒ… λͺ¨λΈκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ, μ‚¬μš©μžλŠ” System Messageλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‘λ‹΅μ˜ λ™μž‘κ³Ό ν˜•μ‹μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘¬ν”„νŠΈμ˜ μ˜ˆμ‹œλ‘œ λ‹€μŒ μ‹œμŠ€ν…œ λ©”μ‹œμ§€λ₯Ό μ‚¬μš©ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ„ˆλŠ” μ£Όλ‹ˆμ–΄ κ°œλ°œμžμ—κ²Œ 코딩을 κ°€λ₯΄μΉ  수 μžˆλŠ” μ½”λ”© λ„μš°λ―Έμ•Ό. μ–Έμ–΄λŠ” Python이야. μ½”λ“œλ₯Ό μ„€λͺ…ν•˜μ§€λŠ” 말고 μ½”λ“œ 블둝 자체λ₯Ό 생성해.

κΈ°λ³Έ μ˜ˆμ‹œ

User MessageλŠ” μ‚¬μš©μžκ°€ λͺ¨λΈλ‘œ μƒμ„±ν•˜κ³ μž ν•˜λŠ” νŠΉμ • μ½”λ“œμ˜ μ§€μ‹œλ₯Ό κ°€μ§„ ν”„λ‘¬ν”„νŠΈ μžμ²΄κ°€ λ©λ‹ˆλ‹€. μ•„λž˜λŠ” μ½”λ“œ 생성을 μœ„ν•œ 첫 번째 기초 ν”„λ‘¬ν”„νŠΈμ˜ μŠ€λƒ…μƒ·μž…λ‹ˆλ‹€. μ΅œμ’… μ½”λ“œλŠ” Assistant둜 μƒμ„±λ˜μ—ˆμŒμ„ μΈμ§€ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

CODE1

직접 μ‹œλ„ν•œλ‹€λ©΄ ν”„λ‘¬ν”„νŠΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

μ‚¬μš©μžμ—κ²Œ 이름을 묻고 "μ•ˆλ…•ν•˜μ„Έμš”"라고 λ§ν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•΄.

주석을 μ½”λ“œλ‘œ λ³€ν™˜

μ΄λŸ¬ν•œ λŒ€κ·œλͺ¨μ–Έμ–΄λͺ¨λΈμ˜ μ½”λ“œ 생성 κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ μ£Όμ„λ§ŒμœΌλ‘œλ„ μ½”λ“œλ₯Ό 생성할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ μ§€μ‹œλ₯Ό 주석 λΈ”λ‘μœΌλ‘œ μ „λ‹¬ν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€:

Prompt:

"""
1. μ˜ν™”λ“€μ„ 리슀트둜 생성해
2. 이 μ˜ν™”λ“€μ˜ 평점을 리슀트둜 생성해
3. 이듀을 κ²°ν•©ν•˜μ—¬ 평점이 맀겨진 μ˜ν™”μ˜ json 객체λ₯Ό 10개 λ§Œλ“€μ–΄.
"""

Output:

movies = ["쇼생크 νƒˆμΆœ", "λŒ€λΆ€", "닀크 λ‚˜μ΄νŠΈ", "μ‰°λ“€λŸ¬ 리슀트", "νŽ„ν”„ ν”½μ…˜", "λ°˜μ§€μ˜ μ œμ™•: μ™•μ˜ κ·€ν™˜", "포레슀트 κ²€ν”„", "μŠ€νƒ€μ›Œμ¦ˆ: μ—ν”Όμ†Œλ“œ V - 제ꡭ의 μ—­μŠ΅", "μΈμ…‰μ…˜", "μ–‘λ“€μ˜ 침묡"]
 
ratings = [9.3, 9.2, 9.0, 8.9, 8.9, 8.9, 8.8, 8.7, 8.7, 8.6]
 
movie_ratings = {}
 
for i in range(len(movies)):
    movie_ratings[movies[i]] = ratings[i]
 
json_object = json.dumps(movie_ratings, indent=4)
 
print(json_object)

μƒμ„±λœ μ½”λ“œλŠ” μž‘λ™ν•˜λŠ” μ½”λ“œμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 좜λ ₯μ—λŠ” μ€‘μš”ν•œ import λ¬Έ, 즉 import json이 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λŸ¬ν•œ λͺ¨λΈλ“€μ΄ μž‘λ™ν•˜λŠ” μ½”λ“œλ₯Ό μƒμ„±ν•˜λŠ” λ™μ•ˆ, 이와 같은 μž‘μ€ λ””ν…ŒμΌμ— κ°λ³„νžˆ 주의λ₯Ό κΈ°μšΈμ—¬μ•Ό ν•˜λ©° 항상 μ½”λ“œλ₯Ό ν…ŒμŠ€νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€.

ν•¨μˆ˜ λ˜λŠ” 이후 λ‚΄μš©μ„ μ™„μ„±μ‹œν‚€κΈ°

μ΄λŸ¬ν•œ λŒ€κ·œλͺ¨μ–Έμ–΄λͺ¨λΈμ€ κ°œλ°œμžμ—κ²Œ μœ μš©ν•œ GitHub Copilot 같은 νˆ΄κ³Όλ„ ν†΅ν•©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν•œκ°€μ§€ μœ μš©ν•œ κΈ°λŠ₯은 λͺ¨λΈμ΄ ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

Prompt:

# 두 수λ₯Ό κ³±ν•˜κ³  75λ₯Ό λ”ν•˜λŠ” ν•¨μˆ˜
 
def multiply(

Output:

a, b):
    result = a * b
    result += 75
    return result

MySQL 쿼리 생성

μœ„μ— λ“±μž₯ν•œ κΈ°λ³Έ μ½”λ“œ μƒμ„±μ˜ μ˜ˆμ‹œ 외에도 λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ MySQL 쿼리 생성 및 ν…ŒμŠ€νŠΈμ™€ 같은 ν”„λ‘œκ·Έλž˜λ°κ³Ό λ‹€λ₯Έ 츑면으둜 μ‚¬μš©λ  수 μžˆλŠ” μœ μš©ν•œ μ½”λ“œλ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘¬ν”„νŠΈμ˜ 일뢀λ₯Ό ν¬ν•¨ν•˜κ³  νŠΉμ • 쿼리λ₯Ό μƒμ„±ν•˜λ„λ‘ μ§€μ‹œν•  수 μžˆλŠ” 정보가 λ‹΄κΈ΄ λ°μ΄ν„°μ„ΈνŠΈκ°€ μžˆλ‹€κ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄:

"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
μ»΄ν“¨ν„°κ³΅ν•™κ³Όμ˜ λͺ¨λ“  ν•™μƒλ“€μ˜ MySQL 쿼리λ₯Ό 생성해
"""

Output:

SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';

λͺ¨λΈμ΄ 쿼리λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€! κ·ΈλŸ¬λ‚˜ 이 μ˜ˆμ œλŠ” μƒμ„±λœ 쿼리λ₯Ό ν…ŒμŠ€νŠΈν•  λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ—†λŠ” μ±„λ‘œ κ΅¬μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 μ˜ˆμ‹œλ₯Ό ν…ŒμŠ€νŠΈν•  경우 이 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” 것이 μœ μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ‹€ν–‰νžˆ ChatGPT둜 이λ₯Ό 생성할 수 μžˆμŠ΅λ‹ˆλ‹€. ν•œ κ°€μ§€ 방법은 λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ μ•½κ°„ λ‹€λ₯Έ μ§€μ‹œλ₯Ό ν•˜μ—¬ μœ„ ν”„λ‘¬ν”„νŠΈμ˜ μˆ˜μ •λœ 버전을 μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
μœ„ ν…Œμ΄λΈ”κ³Ό 컬럼의 μœ νš¨ν•œ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό 생성해

λͺ¨λΈμ€ λ‹€μŒκ³Ό 같은 μŠ€ν‚€λ§ˆλ₯Ό μƒμ„±ν–ˆμŠ΅λ‹ˆλ‹€:

CREATE TABLE departments (
  DepartmentId INT PRIMARY KEY,
  DepartmentName VARCHAR(50)
);

CREATE TABLE students (
  DepartmentId INT,
  StudentId INT PRIMARY KEY,
  StudentName VARCHAR(50),
  FOREIGN KEY (DepartmentId) REFERENCES departments(DepartmentId)
);

sqliteonline.com (opens in a new tab)μ—μ„œ μž„μ‹œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

기쑴에 μƒμ„±λœ 쿼리가 μœ νš¨ν•œμ§€ ν…ŒμŠ€νŠΈν•˜λ €λ©΄ 더미 데이터도 ν•„μš”ν•©λ‹ˆλ‹€. 이것도 ChatGPTλ₯Ό μ¨λ΄…μ‹œλ‹€! ν”„λ‘¬ν”„νŠΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

CREATE TABLE departments (
  DepartmentId INT PRIMARY KEY,
  DepartmentName VARCHAR(50)
);

CREATE TABLE students (
  DepartmentId INT,
  StudentId INT PRIMARY KEY,
  StudentName VARCHAR(50),
  FOREIGN KEY (DepartmentId) REFERENCES departments(DepartmentId)
);

μœ„μ˜ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό λ°”νƒ•μœΌλ‘œ 각 ν…Œμ΄λΈ”μ— 4개의 λ‘œμš°μ„ ν¬ν•¨ν•˜λŠ” μœ νš¨ν•œ Insert ꡬ문을 생성해.

Insert ꡬ문이 ν¬ν•¨λœ 좜λ ₯은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

INSERT INTO departments (DepartmentId, DepartmentName)
VALUES (1, 'Computer Science'), (2, 'Mathematics'), (3, 'Physics'), (4, 'Biology');

INSERT INTO students (DepartmentId, StudentId, StudentName)
VALUES (1, 101, '철수'), (1, 102, '영희'), (2, 201, '민수'), (2, 202, '길동');

이제 λ°μ΄ν„°λ² μ΄μŠ€μ™€ 더미 데이터가 μžˆμœΌλ―€λ‘œ κΈ°μ‘΄ 쿼리λ₯Ό ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€. 더미 데이터λ₯Ό 기반으둜 κ²°κ³ΌλŠ” μ² μˆ˜μ™€ μ˜ν¬κ°€ ν¬ν•¨λœ 두 λ‘œμš°μ—¬μ•Ό ν•©λ‹ˆλ‹€.

μ½”λ“œ μ„€λͺ…

νŠΉμ • μ–Έμ–΄λ‘œ ν”„λ‘œκ·Έλž˜λ°μ„ λ°°μš΄λ‹€λ©΄ λͺ¨λΈμ΄ νŠΉμ •ν•œ λͺ‡ κ°€μ§€ μ½”λ“œλ₯Ό μ„€λͺ…ν•˜λ„λ‘ μœ λ„ν•˜λŠ” 것이 μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μœ„μ—μ„œ μƒμ„±ν•œ 쿼리λ₯Ό μž¬μ‚¬μš©ν•˜μ—¬ λͺ¨λΈμ—κ²Œ μ„€λͺ…을 μš”μ²­ν•΄ λ΄…μ‹œλ‹€.

이전과 λ™μΌν•œ Sysyem Messageλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ λͺ¨λΈμ— μ§€μ‹œν•˜λŠ” 방법에 μ£Όμ˜ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ‹€μŒ μ˜ˆμ‹œλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 λͺ¨λΈμ€ Python의 μ½”λ”© λ„μš°λ―ΈλΌλŠ” 이유둜 μ§€μ‹œλ₯Ό κ±°λΆ€ν•˜λŠ” λ“―ν•˜μ§€λ§Œ μ„€λͺ…은 μ œκ³΅ν•©λ‹ˆλ‹€. λͺ¨λΈμ€ μ‹œμŠ€ν…œ λ©”μ‹œμ§€λ₯Ό λ”°λ₯΄λ„둝 μ„€κ³„λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 가끔 μ§€μ‹œν•˜λŠ” λ‚΄μš©μ„ μƒμ„±ν•˜μ§€ μ•ŠλŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.

Prompt:

SELECT students.StudentId, students.StudentName
FROM students
INNER JOIN departments
ON students.DepartmentId = departments.DepartmentId
WHERE departments.DepartmentName = 'Computer Science';

μœ„λ₯Ό SQL 문으둜 μ„€λͺ…ν•΄.

Output:

μ£„μ†‘ν•©λ‹ˆλ‹€. Python의 μ½”λ”© λ„μš°λ―Έλ‘œμ„œ SQL μ½”λ“œλ₯Ό 생성할 수 μ—†μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 제곡된 SQL 문의 λͺ©μ μ„ μ„€λͺ…ν•  μˆ˜λŠ” μžˆμŠ΅λ‹ˆλ‹€.

이 SQL 문은 `students` ν…Œμ΄λΈ”μ—μ„œ `StudentId` 및 `StudentName` μ»¬λŸΌμ„ μ„ νƒν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ `departments` ν…Œμ΄λΈ”μ˜ `DepartmentName` μ»¬λŸΌμ€ 'Computer Science'와 κ°™μŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œ λͺ…령문은 `students` 및 `departments` ν…Œμ΄λΈ” κ°„μ˜ `DepartmentId` μ»¬λŸΌμ—μ„œ Inner Join을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

μ‰½κ²Œ 말해 컴퓨터곡학과에 μž¬ν•™ 쀑인 ν•™μƒμ˜ 이름과 아이디λ₯Ό λ½‘λŠ” κ²ƒμž…λ‹ˆλ‹€.

μ½”λ“œ μˆ˜μ •

ν•΄λ‹Ή νŽ˜μ΄μ§€λŠ” 개발 쀑에 μžˆμŠ΅λ‹ˆλ‹€.

μ½”λ“œ 디버깅

ν•΄λ‹Ή νŽ˜μ΄μ§€λŠ” 개발 쀑에 μžˆμŠ΅λ‹ˆλ‹€.

우수 사둀

ν•΄λ‹Ή νŽ˜μ΄μ§€λŠ” 개발 쀑에 μžˆμŠ΅λ‹ˆλ‹€.