단 30분 만에 나만의 영어 앱 완성하는 방법
AI로 만드는 나만의 영어 공부 앱: 영화 속 대화로 매일 재미있게 배우기!
안녕하세요, 영어 학습자 여러분! 😊 영어를 공부할 때, 책 속 딱딱한 문장보다는 영화나 드라마처럼 생생한 대화가 더 재미있고 기억에 남지 않나요? 오늘은 Google의 Gemini AI와 Streamlit을 활용해 "일일 영어 공부 앱"을 직접 만드는 방법을 공유할게요. 이 앱은 매일 랜덤으로 영화 한 장면 같은 생활 영어 대화를 제공해줘요. AI가 생성해주니 매번 새롭고, 한국어 해석과 발음 팁까지 붙어 있어서 초보자도 쉽게 따라할 수 있어요!
왜 이 앱을 만들어 볼까요?
- 재미 UP: 지루한 암기 대신, "오늘은 어떤 영화 장면이 나올까?" 하며 기대하게 돼요.
- 실전 영어: 실제 대화처럼 자연스러운 표현을 배우니, 해외 여행이나 영어 회화에서 바로 써먹을 수 있어요.
- 쉬운 제작: 코딩 초보자도 30분 만에 만들 수 있어요. 완성된 앱을 친구들과 공유하거나, 포트폴리오로 활용하세요!
자, 이제 단계별로 따라 해볼까요? 제가 제공하는 코드를 복사해서 바로 실행해 보세요. (필요한 도구: Python 설치, 그리고 터미널이나 명령 프롬프트)
1. 준비물: Gemini API 키 발급 받기 (5분 만에 끝!)
앱의 핵심은 Gemini AI가 대화를 생성하는 거예요. 먼저 API 키를 발급받아야 해요. 무료로 가능하고, 초보자도 쉽습니다!
- Google AI Studio 접속: https://ai.google.dev/aistudio로 가서 Google 계정으로 로그인하세요. (첫 방문이라면 약관 동의!)
- API 키 생성: 왼쪽 메뉴에서 "Get API Key" 버튼을 클릭하세요.
- 새 키 만들기: "Create API Key in a new project"를 선택하고, 프로젝트를 생성하세요.
- 키 복사: 생성된 키(긴 문자열)를 복사해 안전한 곳에 저장하세요. (절대 공개하지 마세요!)
팁: 무료 티어가 있지만, 사용량이 많아지면 Google Cloud 결제 설정을 확인하세요. 키는 나중에 대시보드에서 관리할 수 있어요.
2. 앱 개발: 코드 작성하고 실행하기
Streamlit은 Python으로 웹 앱을 간단히 만드는 라이브러리예요. Gemini AI와 결합하면 마법처럼 AI 기반 앱이 완성돼요!
필요한 라이브러리 설치
터미널을 열고 다음 명령어를 입력하세요:
pip install streamlit google-genai
앱 코드 작성
daily_english_app.py라는 파일을 만들어 아래 코드를 복사하세요. (텍스트 에디터나 VS Code 사용 추천)
import streamlit as st
from google import genai
from google.genai.errors import APIError
# --- 앱 설정 ---
st.set_page_config(
page_title="Gemini 일일 영어 학습 앱",
layout="wide"
)
st.title("🎬 Gemini 일일 생활 영어 대화")
st.markdown("영화 한 장면 같은 생생한 대화로 오늘 하루 영어 공부를 시작해 보세요!")
# --- 1. API 키 입력 처리 ---
st.sidebar.header("🔑 Gemini API Key 입력")
# st.text_input을 사용하여 사용자로부터 API 키를 안전하게 입력받습니다.
api_key = st.sidebar.text_input(
"여기에 API 키를 입력하고 Enter를 누르세요.",
type="password",
key="gemini_api_key_input"
)
if not api_key:
st.warning("왼쪽 사이드바에 Gemini API 키를 입력해 주세요.")
else:
try:
# API 키로 클라이언트 초기화 시도
client = genai.Client(api_key=api_key)
# --- 2. Gemini 프롬프트 정의 ---
# 구체적인 프롬프트를 통해 원하는 형태의 응답 유도
system_prompt = (
"당신은 사용자에게 매일 영화 한 장면의 일상적인 생활 영어를 제시하는 유능한 영어 교사입니다. "
"응답은 반드시 아래 형식으로만 작성해 주세요:\n"
"1. **대화**: 두 사람(A와 B)의 짧은 대화문 3~4줄.\n"
"2. **한국어 해석**: 대화 내용의 자연스러운 한국어 해석.\n"
"3. **핵심 표현**: 대화에서 배울 만한 주요 표현 1~2가지와 그 예시.\n"
"4. **발음 팁**: 발음이나 억양 관련 팁 1가지."
)
user_prompt = "오늘의 일상생활 영어 대화문을 영화 속 한 장면처럼 랜덤하게 제시해 주세요."
# --- 3. 영어 대화 생성 버튼 ---
if st.button("✨ 오늘의 대화 생성"):
st.info("Gemini AI가 오늘의 대화를 생성 중입니다... 잠시만 기다려 주세요.")
try:
# Gemini API 호출 (gemini-2.5-flash 권장)
response = client.models.generate_content(
model="gemini-2.5-flash",
contents=[{"role": "user", "parts": [{"text": user_prompt}]}],
config=genai.types.GenerateContentConfig(
system_instruction=system_prompt,
temperature=0.7 # 창의적인 대화를 위해 온도 설정
)
)
# 응답 결과 표시
st.subheader("📝 오늘의 생활 영어 대화")
st.markdown(response.text)
# 추가 학습 제안
st.markdown("---")
st.subheader("💡 추가 학습 제안")
st.write("이 대화문을 소리 내어 읽고, 친구와 역할극을 해보세요!")
except APIError as e:
st.error(f"Gemini API 호출 중 오류가 발생했습니다: {e}")
st.error("API 키가 올바른지, 사용량 제한에 걸리지는 않았는지 확인해 주세요.")
except Exception as e:
st.error(f"예상치 못한 오류가 발생했습니다: {e}")
except Exception:
# API 키 자체 문제로 초기화 실패 시 (예: 잘못된 포맷 등)
st.error("입력된 API 키가 유효하지 않거나 문제가 있습니다. 다시 확인해 주세요.")
앱 실행하기
터미널에서:
streamlit run daily_english_app.py
브라우저가 열리고, 사이드바에 API 키를 입력한 후 버튼을 누르면... 짜잔! AI가 랜덤 대화를 만들어줘요. 예를 들어:
대화: A: Hey, did you catch that new movie last night? B: Yeah, it was awesome! The plot twists kept me on the edge of my seat. A: Totally! We should grab popcorn and watch the sequel together.
한국어 해석: A: 야, 어제 그 새 영화 봤어? B: 응, 진짜 재밌었어! 반전이 계속 나와서 긴장감이 장난 아니었어. A: 완전! 팝콘 사서 속편 같이 보자.
핵심 표현: "On the edge of my seat" - 긴장감을 표현할 때. 예: "The game was so exciting, I was on the edge of my seat!" 발음 팁: "Edge"를 '에지'처럼 날카롭게 발음하세요. 억양은 흥분되게 올라가게!
매번 실행할 때마다 다른 대화가 나와요. 재미있죠?
3. 앱 업그레이드: Streamlit Cloud에 배포하기
로컬에서만 쓰기 아깝죠? 무료로 웹에 올려서 누구나 접근할 수 있게 해보세요!
requirements.txt 파일 만들기
앱 폴더에 requirements.txt 파일을 만들고 아래 내용을 적으세요:
streamlit
google-genai
배포 단계
- GitHub 저장소 만들기: 앱 파일(daily_english_app.py)과 requirements.txt를 GitHub에 업로드하세요.
- Streamlit Cloud 가입: streamlit.io에 GitHub으로 로그인.
- 앱 배포: "Deploy an app" → GitHub repo 선택 → 배포!
- API 키 안전 관리: 코드에서 api_key = st.secrets["GEMINI_API_KEY"]로 바꾸세요. Streamlit 대시보드에서 Secrets 설정에 키를 추가하면 보안 OK!
이제 링크를 공유하면 친구들이 웹에서 바로 사용할 수 있어요. "오늘의 영어 대화"를 매일 체크하며 습관 들이기 딱!
실제 스트림릿 클라우드에 게시되어 사용 가능한 앱 : https://cinema-daily-english.streamlit.app/
실제 동작 예시
마무기: 왜 지금 시작할까?
이 앱을 만들면서 영어 공부가 "의무"가 아닌 "재미"가 된다는 걸 느꼈어요. 코드를 조금 수정하면 더 많은 기능(예: 퀴즈 추가)을 넣을 수 있어요. 영어 정복의 첫걸음, 오늘부터 시작해 보세요. Let's make English fun!