Patrashu의 랩실/파이썬

Python으로 만들어보는 Useless tool : 1. 명언 출력기

Patrashu의 비밀창고 2025. 9. 28. 21:13

파이썬을 배우다 보면 단순한 문법 예제만 반복하는 게 지루할 수 있습니다. 이럴 때 가볍게 만들 수 있는 프로젝트가 바로 명언 출력기입니다. 실행할 때마다 랜덤으로 명언이 출력되거나, 매일 새로운 문구가 나오게 설정할 수도 있어 작은 성취감과 재미를 동시에 얻을 수 있습니다. 이번 글에서는 Useless tool project의 첫 발자국 Python 명언 출력기 개발 과정을 단계별로 소개하겠습니다.

 


왜 명언 출력기인가?

 

명언 출력기는 겉보기에 쓸모없어 보일 수 있지만, 실제로는 다음과 같은 장점이 있습니다.

  • 파이썬의 리스트, 랜덤, 날짜 처리를 자연스럽게 연습 가능
  • 짧은 코드로 바로 실행 가능한
  • 블로그나 콘솔에 재미 요소를 추가할 수 있음
  • 그냥 심심해서( 가장 중요 )
1. 랜덤 명언 출력기 만들기

 

가장 기본적인 방법은 명언을 리스트에 저장한 뒤, random.choice()를 이용해 하나를 출력하는 방식입니다.

import random

quotes = [
    "성공은 준비된 자에게 온다.",
    "오늘 걷지 않으면 내일은 뛰어야 한다.",
    "실패는 성공의 어머니.",
    "작은 습관이 큰 변화를 만든다."
]

print("오늘의 명언 : ", random.choice(quotes))

 

2. 날짜 기반 명언 출력기

 

매일 다른 문구가 나오게 만들고 싶다면 datetime 모듈을 활용할 수 있습니다.

 

import datetime

quotes = [
    "오늘도 최선을 다하자.",
    "꾸준함이 결국 이긴다.",
    "도전 없이는 성취도 없다.",
    "불가능은 없다."
]

today = datetime.date.today().toordinal()
print("오늘의 명언 : ", quotes[today % len(quotes)])

 

datetime.date.today()

  • 오늘 날짜를 가져오는 함수예요.

 

.toordinal()

  • 날짜를 숫자로 바꿔주는 함수
  • 예: 서기 1년 1월 1일 = 1부터 시작해서, 날짜가 하루 지날 때마다 1씩 증가.

% len(quotes)

  • %는 나머지 연산자예요.
  • len(quotes) = 명언 리스트의 길이. (예: 4개라면 len(quotes)=4)
  • 오늘 날짜 숫자를 명언 개수로 나눈 나머지를 구하면 → 항상 0, 1, 2, 3 중 하나가 나와요.

 

3. 실시간 명언 API 활용하기

 

무료 API를 활용하면 매번 새로운 명언을 받아올 수도 있습니다.
예시: ZenQuotes API

ZenQuotes(젠퀴츠)는 역사상 중요했던 철학자, 발명가, 과학자, 종교 지도자, 리더들의 영감을 주는 인용문들을 제공하는 웹사이트이자 API

import requests

res = requests.get("https://zenquotes.io/api/random")
data = res.json()
print(f"{data[0]['q']} — {data[0]['a']}")

 

왜 q, a 인지 어떻게 알았나?

이건 API 문서(Docs)나 직접 응답을 확인해서 알아내는 거예요.

예를 들어 ZenQuotes API에 https://zenquotes.io/api/random을 요청하면, 응답이 이렇게 옵니다

[
  {
    "q": "Stay hungry, stay foolish.",
    "a": "Steve Jobs",
    "h": "<blockquote>&ldquo;Stay hungry, stay foolish.&rdquo; &mdash; <footer>Steve Jobs</footer></blockquote>"
  }
]
  • "q" = quote (명언)
  • "a" = author (저자)
  • "h" = html 버전

그래서 data[0]["q"] 와 data[0]["a"]를 쓰는 거예요.

requests.get()만으로는 안돼?

requests.get(url) 자체는 문자열(raw text)만 가져와요.

import requests
res = requests.get("https://zenquotes.io/api/random")
print(res.text)
[{"q":"Stay hungry, stay foolish.","a":"Steve Jobs","h":"<blockquote>&ldquo;Stay hungry, stay foolish.&rdquo; &mdash; <footer>Steve Jobs</footer></blockquote>"}]

res.json()을 쓰는 이유

res.json()은 이 문자열을 파이썬 dict/list로 변환해줍니다.

data = res.json()
print(type(data))  # <class 'list'>
print(data[0]["q"])  # Stay hungry, stay foolish.
print(data[0]["a"])  # Steve Jobs

requests.get()만으로는 “문자열 덩어리”일 뿐이고, 파이썬에서 편하게 다루려면 .json()을 꼭 써야 하는 거예요.

 

 

마무리 

 

Python 명언 출력기는 쓸모있으면서도 쓸모없어 보이는(?) 프로젝트의 대표 주자입니다. 사실 그냥 인터넷에서 명언을 검색해도 되지만, 굳이 파이썬으로 만들어야 더 뿌듯하죠. 이직하거나 스펙에 한 줄 적어보세요.

그리고 언젠가 회사에서 상사가 “파이썬으로 뭘 만들었냐?”고 물어본다면, 당당하게 이렇게 대답하세요.

“저는 명언 출력기를 만들었습니다." 물론 회사가 감동할지는 보장 못 합니다.

대신 적어도 재밌었으면 OK 아닌가요? 

만든 툴을 실행하면서 글을 마무리 지을게요!

 

A day without laughter is a day wasted ( 웃음 없는 하루는 낭비한 하루다 ) - 찰리 채플린.