티스토리 뷰

실습 02. 별 찍기: 프롬프트 기반 코딩

이번 실습에서는 VS Code의 AI 코딩 도우미를 활용하여 간단한 파이썬 프로그램을 만들어 본다. 

* 문자를 1개부터 사용자가 입력한 숫자까지 하나씩 늘려가며 출력하는 프로그램을 작성

이 실습은 단순히 별 모양을 출력하는 활동이 아니라, 프롬프트를 어떻게 작성하면 원하는 코드가 생성되는지, 그리고 생성된 코드를 어떻게 읽고 실행하는지를 익히는 데 목적이 있다.


1. GitHub Copilot Chat 화면 이해하기

GitHub Copilot Chat은 VS Code 안에서 사용할 수 있는 AI 코딩 도우미이다. 사용자는 채팅창에 자연어로 원하는 프로그램을 설명하고, AI는 그 요청에 맞는 코드를 제안한다. Copilot Chat 화면에는 여러 버튼과 모드가 있다. 초보자는 모든 기능을 한 번에 익히기보다, 다음 기능부터 이해하면 충분하다.

기능 의미
+ 파일이나 현재 코드 내용을 AI에게 함께 참고하도록 추가한다.
{/} /fix, /explain과 같은 슬래시 명령어를 사용할 수 있다.
Auto AI 동작 모드를 선택한다.
Ask 코드 수정 없이 질문에 대한 설명이나 답변만 받는다.
Edit 선택한 코드 영역을 AI가 직접 수정하도록 제안한다.
Agent 여러 파일을 대상으로 자동 작업을 수행한다.

초보자 실습에서는 처음부터 Agent 모드를 사용할 필요는 없다. 코드 설명을 듣거나 간단한 예제를 생성할 때는 Ask 모드가 적합하다. 이미 작성한 코드를 고치고 싶을 때는 Edit 모드를 사용할 수 있다.


2. AI에게 먼저 규칙을 알려 주기

AI 코딩 도우미를 사용할 때 중요한 점은 질문을 바로 던지는 것이 아니라, 먼저 코드 생성 규칙을 알려 주는 것이다. 규칙을 주지 않으면 AI가 아직 배우지 않은 문법을 사용하거나, 너무 긴 변수명과 복잡한 코드를 만들 수 있다. 
초보자 수업에서는 다음과 같은 규칙을 먼저 입력하면 좋다.

# 생성 규칙
1. 질문에서 요청한 행동만 수행한다.
2. 질문이 요청하지 않은 주석이나 예제를 작성하지 않는다.
3. 답변은 한글로 작성한다.
4. 변수명은 영어를 사용한다.
5. 변수명은 너무 길게 작성하지 않는다.

# 가독성
6. 입력부, 동작부, 출력부를 나누어 생성한다.
7. 입출력 문구는 단어 형태로 사용한다.

# 수업 관련
8. 튜플, 딕셔너리, 예외처리는 사용하지 않는다.
9. 리스트, 인덱싱, 슬라이싱은 질문에서 직접 요청한 경우에만 사용한다.
10. 횟수 기준 반복은 for문을 사용한다.
11. 조건 기준 반복은 while문을 사용한다.

3. 별 찍기 프롬프트 작성하기

이제 Copilot Chat에 다음과 같은 프롬프트를 입력한다.

'*' 문자를 1개부터 입력 받은 숫자까지 1개씩 늘어나게 출력하여 줘
 

이 프롬프트는 비교적 짧지만, 프로그램이 해야 할 일을 분명하게 담고 있다. 이 문장을 분석하면 다음과 같다.

프롬프트  요소의미
'*' 문자를 출력할 대상은 별표 문자이다.
1개부터 처음에는 별표 1개를 출력한다.
입력 받은 숫자까지 사용자가 입력한 숫자만큼 반복한다.
1개씩 늘어나게 줄이 바뀔 때마다 별표 개수가 증가한다.
출력하여 줘 최종 결과는 화면 출력이다.

즉, 사용자가 5를 입력하면 다음과 같은 결과가 나와야 한다.

*
**
***
****
*****

4. 별 찍기 코드 작성하기

별 찍기 프로그램은 다음과 같이 작성할 수 있다. 

# 입력부
n = int(input("숫자: "))

# 동작부 및 출력부
for i in range(1, n + 1):
    print("*" * i)
이 코드는 짧지만 중요한 개념을 포함하고 있다. input()은 사용자에게 값을 입력받고, int()는 입력받은 문자열을 숫자로 변환한다. for 반복문은 1부터 입력한 숫자까지 반복한다. print("*" * i)는 별표 문자열을 i개만큼 반복하여 출력한다.

예를 들어 i가 3이면 다음과 같이 동작한다.

"*" * 3
결과는 다음과 같다.
***

5. 실행할 때 주의할 점

이 코드는 input() 함수를 사용하므로 반드시 터미널에서 실행하여야 한다. VS Code의 Run Code나 Output 창에서는 입력이 제대로 동작하지 않을 수 있다. 터미널에서 다음과 같이 실행한다.

python ex07_star.py
실행 후 숫자를 입력한다.
숫자: 5
그러면 다음과 같이 출력된다.
*
**
***
****
*****
 

실습 03. 숫자 맞추기 게임

별 찍기 실습에서는 반복문의 기본 구조를 사용하였다. 이번에는 반복문, 조건문, 입력, 랜덤 숫자를 함께 사용하여 간단한 게임을 만들어 본다. 이 실습의 목표는 컴퓨터가 정한 숫자를 사용자가 맞힐 때까지 반복해서 입력받는 프로그램을 작성하는 것이다.

1. 숫자 맞추기 게임의 동작 원리

숫자 맞추기 게임은 다음 순서로 동작한다.

1. 컴퓨터가 1부터 100 사이의 숫자를 하나 정한다.
2. 사용자가 숫자를 입력한다.
3. 입력한 숫자가 정답보다 크면 “더 작은 숫자입니다.”라고 알려 준다.
4. 입력한 숫자가 정답보다 작으면 “더 큰 숫자입니다.”라고 알려 준다.
5. 입력한 숫자가 정답과 같으면 “정답입니다!”를 출력하고 게임을 끝낸다.
 

이 게임은 단순하지만 프로그래밍의 핵심 요소가 모두 들어 있다. 랜덤 숫자를 만들기 위해 모듈을 사용하고, 사용자 입력을 받고, 조건문으로 크고 작음을 판단하며, 정답을 맞힐 때까지 반복문을 사용한다.

2. 숫자 맞추기 게임 코드

import random

answer = random.randint(1, 100)
count = 0

while True:
    user_num = int(input("1부터 100 사이의 숫자를 입력하세요: "))
    count += 1
    
    if user_num > answer:
        print("입력한 숫자가 너무 큽니다")
    elif user_num < answer:
        print("입력한 숫자가 너무 작습니다")
    else:
        print("정답입니다!")
        print(f"{count}번 만에 맞췄습니다!")
        break
 

3. 코드 설명

첫 번째 줄은 random 모듈을 불러오는 코드이다.

import random
모듈은 파이썬에서 특정 기능을 사용하기 위해 불러오는 도구이다. random 모듈은 무작위 숫자를 만들 때 사용한다.다음 코드는 1부터 100 사이의 정수 중 하나를 무작위로 선택한다.
answer = random.randint(1, 100)
random.randint(1, 100)은 1 이상 100 이하의 정수 중 하나를 생성한다. 이 값이 사용자가 맞혀야 할 정답이 된다.

다음 코드는 게임을 계속 반복하기 위한 구조이다.

while True:
while True는 조건이 항상 참이므로 계속 반복된다. 따라서 반복문 안에서 반드시 멈추는 코드가 있어야 한다. 이 프로그램에서는 정답을 맞혔을 때 break를 사용하여 반복문을 종료한다.
else:
    print("정답입니다!")
    break
break는 반복문을 즉시 멈추는 명령어이다.

4. 실행 예시

실행 결과는 매번 달라질 수 있다. 정답이 랜덤으로 생성되기 때문이다.

1~100 사이의 숫자를 맞춰보세요!
숫자: 50
더 큰 숫자입니다.
숫자: 75
더 작은 숫자입니다.
숫자: 63
정답입니다!
 
실습 04. Turtle로 그림 그리기

이번 실습에서는 파이썬의 turtle 모듈을 사용하여 화면에 그림을 그려 본다. Turtle은 거북이가 화면 위를 움직이며 선을 그리는 방식으로 동작한다. 

1. Turtle 기본 코드: 사각형 그리기

먼저 ex09_turtle1.py 파일을 만들고 다음 코드를 입력한다.

import turtle

# 거북이 객체 생성
t = turtle.Turtle()

# 거북이 모양과 색상 설정
t.shape("turtle")
t.color("blue")

# 사각형 그리기
t.forward(100)
t.left(90)

t.forward(100)
t.left(90)

t.forward(100)
t.left(90)

t.forward(100)
t.left(90)

# 창 유지
turtle.done()
이 코드는 거북이를 앞으로 100만큼 이동시키고, 왼쪽으로 90도 회전하는 동작을 네 번 반복하여 사각형을 그린다.

2. Turtle 기본 명령어

명령어 의미
import turtle turtle 모듈을 불러온다.
turtle.Turtle() 그림을 그리는 거북이 객체를 만든다.
t.shape("turtle") 커서 모양을 거북이로 설정한다.
t.color("blue") 선 색상을 파란색으로 설정한다.
t.forward(100) 현재 방향으로 100만큼 이동한다.
t.left(90) 왼쪽으로 90도 회전한다.
turtle.done() 그림 창이 바로 닫히지 않도록 유지한다.

turtle.done()을 쓰지 않으면 그림이 그려진 뒤 창이 바로 닫힐 수 있다. 따라서 Turtle 예제에서는 마지막에 넣어 주는 것이 좋다.

3. 반복문으로 사각형 그리기

앞의 코드는 forward()와 left()를 네 번 반복해서 작성하였다. 같은 코드가 반복되므로 for 반복문을 사용하면 더 간단하게 만들 수 있다.ex09_turtle2.py 파일을 만들고 다음 코드를 입력한다.

import turtle

t = turtle.Turtle()
t.shape("turtle")
t.color("blue")

for _ in range(4):
    t.forward(100)
    t.left(90)

turtle.done()
여기서 range(4)는 반복을 4번 수행한다는 뜻이다. 변수 이름으로 _를 사용한 이유는 반복 횟수만 필요하고, 반복 변수 자체는 코드 안에서 사용하지 않기 때문이다.

이 코드는 앞의 사각형 코드와 같은 결과를 만든다. 그러나 반복문을 사용하여 코드가 훨씬 짧고 읽기 쉬워졌다.

4. 입력을 받아 다각형 그리기

이번에는 사용자가 몇 각형을 그릴지와 한 변의 길이를 직접 입력하도록 만들어 본다. 파일명은 ex09_turtle3.py로 저장한다.

import turtle

# 거북이 설정
t = turtle.Turtle()
t.speed(0)

# 사용자 입력
angle = int(input("몇 각형을 그릴까요?: "))
side_length = int(input("한 변의 길이는 얼마인가요?: "))

# 다각형 그리기
for i in range(angle):
    t.forward(side_length)
    t.right(360 / angle)

turtle.done()
 

5. 다각형 코드의 원리

정다각형을 그리려면 한 바퀴 360도를 변의 개수만큼 나누어 회전하면 된다.예를 들어 정사각형은 네 변을 가지므로 한 번 회전할 때 각도는 다음과 같다.

360 ÷ 4 = 90

정육각형은 여섯 변을 가지므로 다음과 같다.

360 ÷ 6 = 60
따라서 코드에서는 다음과 같이 작성한다.
t.right(360 / angle)
사용자가 6을 입력하면 거북이는 한 변을 그린 뒤 60도씩 회전하고, 총 6번 반복하여 육각형을 그린다.

6. 프롬프트를 활용한 Turtle 그림 그리기

마지막 실습에서는 AI에게 프롬프트를 입력하여 Turtle 코드 생성을 요청할 수 있다. 예를 들어 다음과 같이 입력한다.

turtle로 별을 여러 개 반복해서 그리는 코드를 만들어줘
이 프롬프트는 “별을 하나 그리는 코드”가 아니라 “별을 여러 개 반복해서 그리는 코드”를 요청한다. 따라서 AI가 반복문과 Turtle 이동 명령을 함께 사용한 코드를 생성할 가능성이 높다.

예시는 다음과 같다.

import turtle

t = turtle.Turtle()
t.speed(0)

colors = ["red", "blue", "green", "orange", "purple"]

for i in range(5):
    t.penup()
    t.goto(-200 + i * 100, 0)
    t.pendown()
    t.color(colors[i])

    for _ in range(5):
        t.forward(50)
        t.right(144)

turtle.done()
이 코드는 위치를 바꾸어 가며 별을 여러 개 그린다. 다만 이 예제에는 리스트가 사용되므로, 리스트를 아직 배우지 않은 수업이라면 색상 변경 부분을 제외하고 더 단순하게 작성할 수 있다.

리스트를 사용하지 않는 단순 버전은 다음과 같다.

import turtle

t = turtle.Turtle()
t.speed(0)
t.color("blue")

for i in range(5):
    t.penup()
    t.goto(-200 + i * 100, 0)
    t.pendown()

    for _ in range(5):
        t.forward(50)
        t.right(144)

turtle.done()
 

import turtle

# --------------------------------------------------
# 1. 화면 설정
# --------------------------------------------------
screen = turtle.Screen()
screen.title("Python Turtle Graphics")
screen.bgcolor("lightblue")
screen.setup(width=700, height=500)

# --------------------------------------------------
# 2. 터틀 객체 생성
# --------------------------------------------------
pen = turtle.Turtle()
pen.speed(0)
pen.pensize(2)

# --------------------------------------------------
# 3. 별 그리기 함수
# --------------------------------------------------
def draw_star(x, y, color, size):
    pen.penup()
    pen.goto(x, y)
    pen.pendown()

    pen.color(color)

    for i in range(5):
        pen.forward(size)
        pen.right(144)

# --------------------------------------------------
# 4. 여러 개의 별 정보
#    형식: (x좌표, y좌표, 색상, 크기)
# --------------------------------------------------
stars = [
    (-220, 100, "yellow", 40),
    (-120, 180, "green", 45),
    (20, 140, "blue", 45),
    (80, 40, "red", 45),
    (-220, -40, "purple", 45),
    (-120, -120, "orange", 45),
    (20, -90, "pink", 45)
]

# --------------------------------------------------
# 5. 별 여러 개 그리기
# --------------------------------------------------
for star in stars:
    x, y, color, size = star
    draw_star(x, y, color, size)

# --------------------------------------------------
# 6. 터틀 숨기기 및 창 유지
# --------------------------------------------------
pen.hideturtle()
turtle.done()

이번 실습에서는 VS Code에서 AI 코딩 도우미와 파이썬 기초 문법을 함께 사용하였다. 별 찍기 실습에서는 프롬프트를 작성하여 반복문 코드를 생성하고, 터미널에서 입력값을 받아 실행하였다. 숫자 맞추기 게임에서는 랜덤 숫자, 사용자 입력, 조건문, 무한 반복과 break를 사용하여 간단한 게임 구조를 만들었다. Turtle 실습에서는 거북이 객체를 움직이며 사각형, 다각형, 별 모양을 그려 보았다.

중요한 것은 코드를 단순히 복사하여 실행하는 것이 아니다. 프롬프트가 어떤 코드를 만들어 내는지 확인하고, 생성된 코드가 수업에서 배운 문법 안에 있는지 검토하여야 한다. 또한 input()이 있는 코드는 터미널에서 실행해야 하며, Turtle 코드는 별도의 그래픽 창이 열리므로 VS Code와 실행 창을 함께 확인하여야 한다.

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함