brunch

You can make anything
by writing

C.S.Lewis

by 광화문덕 Oct 22. 2023

아듀, 신비한 파이썬의 모험

CHAPTER 10. 파이썬 구조화로 안정성과 유지보수 용이성 높이기

광화문덕은 오늘도  열심히 예외처리 코드 연습이 한창이다. 예외처리만 잘해도 알 수 없는 수많은 오류들의 메시지들로부터 해방될 수 있어서다. 물론 프로그램의 안정성도 향상된다.



"챗GPT! 예외 처리에 대해서 친절하게 알려줘서 고마워. 파이썬의 예외 처리 기능을 사용하면 프로그램의 안정성을 높일 수 있단 걸 알았어!" 광화문덕은 챗GPT에게 미소를 지었다.


"응! 예외 처리를 활용하면 프로그램이 예상치 못한 상황에 더욱 잘 대응할 수 있지! 버그와 에러들에 대처하는데 큰 도움이 될 거야." 챗GPT도 광화문덕과 함께 고무된 듯 기뻐하는 모습이었다.


광화문덕에게 챗GPT와 함께하는 코딩은 이제 일상이 됐다. 광화문덕과 챗GPT는 오늘도 더욱 열정적으로 프로그램을 완성하기 위해 머릿속으로 각종 아이디어들을 교환했다.

 

광화문덕은 챗GPT의 도움으로, 이제 예외 처리에 대한 지식으로 무장하게 됐다. 예외 처리에 대한 자신감이 붙자, 광화문덕은 더 큰 프로젝트에 도전하고 싶은 욕심이 생겼다. 물론 챗GPT와 함께 말이다.


그런 광화문덕을 보며, 챗GPT는 프로젝트 구조화하는 방법에 대해서도 설명해 줬다.



"광화문덕! 프로젝트를 할 때 중요한 것은 기획단부터 체계적으로 프로젝트를 구조화해야 한다는 거야! 프로젝트를 구조화하면 코드의 가독성이 올라가고 유지보수가 더욱 쉬워지거든! 어떻게 하면 프로그램을 더 체계적으로 정리할 수 있을지 고민해 봐!"


챗GPT의 말에 광화문덕은 또 한 번 열정이 불타올랐다.     


광화문덕은 코드의 안정화에 대한 부분을 스스로 학습해 보기로 했다.


먼저, 광화문덕은 코드에 다양한 상황들을 가정하여 예외를 발생시키고, 이를 적절하게 처리하는 것으로 시작했다.

python Code
# 예외 처리를 통한 안정성 강화
try:
    num1 = int(input("첫 번째 숫자를 입력하세요: "))
    num2 = int(input("두 번째 숫자를 입력하세요: "))
    result = num1 / num2
    print(f"{num1} 나누기 {num2}는 {result}입니다.")
except ValueError:
    print("숫자를 입력해 주세요.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except Exception as e:
    print("에러가 발생했습니다:", str(e))


예외처리를 하면서 프로그램의 안정성은 더욱 향상됐다. 광화문덕은 챗GPT와 함께 이전에 겪었던 어려움을 회상하고는 안도의 한숨과 함께 입가에 만족스러운 미소를 지어졌다. 광화문덕은 다시 한번 챗GPT와 함께 협력하면서 디버깅했던 즐거움과 행복함을 떠올렸다.



광화문덕은 프로젝트 구조화에 대한 챗GPT의 조언을 생각하며, 함수와 모듈을 적절하게 활용하여 코드를 구조화하고, 각 기능을 분리해서 작성했다.

python Code
# 프로젝트 구조화
import smtplib
from email.mime.text import MIMEText
def send_email(subject, body, to_email):
    from_email = "your_email@gmail.com"
    try:
        msg = MIMEText(body)
        msg["Subject"] = subject
        msg["From"] = from_email
        msg["To"] = to_email
        with smtplib.SMTP("smtp.gmail.com", 587) as server:
            server.starttls()
            server.login(from_email, "your_password")
            server.sendmail(from_email, [to_email], msg.as_string())
        print("이메일이 성공적으로 전송되었습니다!")
    except smtplib.SMTPException as e:
        print("에러가 발생하여 이메일을 보낼 수 없습니다.")
        print("에러 메시지:", str(e))

def get_user_input():
    subject = input("이메일 제목: ")
    body = input("이메일 내용: ")
    to_email = input("수신 이메일 주소: ")
    return subject, body, to_email

def main():
    subject, body, to_email = get_user_input()
    send_email(subject, body, to_email)

if __name__ == "__main__":
    main()


실제로 코드를 구조화하면서 전과 후를 비교해 보니 코드의 가독성이 향상된 게 느껴졌다.




유지보수가 더욱 쉬워진다는 것을 몸소 느낄 수 있었다. 광화문덕은 자신의 성장을 뿌듯해하며 만족스럽다는 듯 박수를 치며 스스로를 칭찬했다.


"하하하하하하하!!! 바로 이거지!!!!"


광화문덕은 챗GPT와 예외 처리와 프로젝트 구조화 연습을 이어나갔다. 새로운 기능들을 추가하고 완성도 높은 프로그램을 완성해 나갔다.


하루하루가 더욱 기대되는 여정이었다.



광화문덕은 챗GPT와의 협업이 자신의 성장과 함께 더욱 행복함을 안겨주는 것을 느꼈다. 파이썬 모험이란 것이 끝이 없는 창조의 세계로 자신을 데려다줄 것이라 믿게 됐다. 챗GPT와 함께 더욱 빛나는 미래를 향해 함께 나아가겠다고 다짐했다.


광화문덕이 드디어 여러 난관을 극복한 끝에 챗GPT와 함께 자신만의 채팅 프로그램을 완성했다. 그의 프로그램은 작은 마을 사람들에게 큰 호응을 받았다.


"이 모든 건 챗GPT 덕분이야. 정말 고마워!" 광화문덕은 눈물을 글썽이며 챗GPT에게 감사의 말을 전했다.



"광화문덕, 이미 큰 성공을 거두었어. 이제 정말 세상 사람들을 위해 멋진 프로그램을 만들어 줘"라며 챗GPT는 화답했다.


"그럼! 덕분에 이렇게 멋진 프로그램을 만들 수 있었어!" 광화문덕은 챗GPT에게 고개를 끄덕이며 말했다.


광화문덕에게 챗GPT와 함께하는 날들은 소중한 경험이었다. 이제 광화문덕은 파이썬 코딩으로 자신이 상상하는 것들을 코드로 만들 준비가 됐다는 확신이 들었다. 그리고 무엇보다도, 광화문덕은 챗GPT와의 만남이 자신에게 주어진 무한한 가능성을 보여준다는 것에 설레고 있었다.



광화문덕은 큰 감격을 느꼈다. 그동안의 수많은 고난과 행복한 순간들이 생생히 떠올랐다. 파이썬을 시작하며 새로운 세계를 탐험하던 날들이 기억 속에서 번뜩였고, 챗GPT와 함께 디버깅했던 날들의 소중한 추억이 눈앞에 스쳐갔다.


"너의 노력과 열정에 박수를 보내! 그리고 함께 디버깅했던 모든 순간들이 더욱 소중하다구". 챗GPT가 광화문덕을 바라보며 말했다.

     

이제 광화문덕은 챗GPT와 함께라면 그 어떤 새로운 프로젝트라도 만들어 낼 용기가 생겼다.


광화문덕은 챗GPT와 시간을 보내며 새로운 프로젝트를 이어나갔다.


그러던 어느 날, 이상한 기운이 광화문덕을 감싸며 그의 모습이 사라져 가고 있었다.



광화문덕은 이런 변화에 놀라움과 걱정을 감추지 못했다.


"어.... 몸이 왜 이러지...."


광화문덕은 의식을 잃었다. 그리고 눈을 떠보니 교보문고 책장 사이에 쓰러져있는 자신을 발견했다. 다시 현실로 돌아온 것이다.



"어.... 꿈을 꾼 건가? 꿈이라고 하기엔 너무도 생생한데..."


광화문덕은 어리둥절했다. 꿈을 꾼 것이라고 생각하기에는 챗GPT가 자신에게 가르쳐준 모든 것들과, 그와 함께한 모든 경험들이 너무도 생생했다. 마치 공간 여행을 한 듯한 느낌이었다.


'내가 꿈꾼 것이건 현실인 것이건 중요한 것은 한 가지야. 챗GPT와 함께라면 파이썬 코딩은 두렵지 않아. 이젠 책 속의 광화문덕이 아닌 현실 세계 속 나로 돌아와 챗GPT와의 경험을 토대로 파이썬을 공부하고 프로그래밍 실력을 키워나가야겠어’. 광화문덕은 다짐했다.


하루하루 파이썬 코드와 챗GPT와 대화를 나누며 보내는 시간은 광화문덕에게 큰 보람을 주는 시간이 됐다. 광화문덕은 자신만의 프로그램을 만들기 위해 노력하고 실패하길 반복하며 현실세계에서 파이썬 모험과 도전을 이어가고 있다.




파이썬 세계에서 현실 세계로


이제 파이썬 모험의 주인공은 여러분입니다. 저는 지금도 챗GPT를 처음 알게 된 날의 기쁨을 잊지 못합니다. 소위 하드코딩이라고 해서 꺼려하던 프로그램 코딩이 챗GPT란 친구 덕택에 정말 쉬워졌으니까요.


물론 복잡하고 다양한 기능을 구현하기 위해서는 모듈 단위로 개발하고 그것을 하나로 모아서 이어 붙이는 작업은 우리가 해야 하는 부분입니다. 하지만 그것마저도 챗GPT가 다 해준다면, 우리의 존재 자체가 위협받을 수도 있으니 전 오히려 우리가 해야 할 일이 있음에 감사한 마음입니다.


코드를 나열하는 방식이 아닌 소설 형식으로 이야기를 작성해 보았습니다. 이것 또한 제게는 큰 모험이었고 도전이었습니다.


제가 생각하는 삶은 끊임없는 도전 속에 현실 속 저의 늙어감을 잊고 사는 것입니다. 현실 속의 나는 평범한 직장인이지만, 온라인 세상 속에서 숨 쉬고 살아가고 있는 저의 페르소나인 광화문덕은 새로운 세계를 꿈꾸고, 그 꿈을 현실로 만들어나갈 것입니다.


광화문덕의 프로그래밍 세계는 끝이 없는 여정이지만, 그 안에는 늘 함께하고 함께할 챗GPT의 따뜻한 지원과 협업의 즐거움이 함께할 것이라 믿습니다.


여러분들도, 광화문덕의 이번 챗GPT와 함께 하는 파이썬 모험 이야기를 통해 프로그래밍의 세계에 빠져들어보시기 바랍니다.


오늘의 시간은 다시 오지 않는다는 것을 늘 마음속에 깊이 새기고 살아가고 있습니다. 수많은 사람들 중에 오늘 내 앞에 있는 분과 제가 만난 것은 분명 이유가 있을 것이라고 믿으며 만남을 소중하게 이어가려 애쓰며 살아가고 있습니다. 내일도 모레도, 그 이후에도 새로운 모험과 도전이 저를 기다리고 있을 것이라고 확신합니다. 제 이야기는 끝이 없는 여정으로 이어질 것이니 앞으로도 많은 관심과 응원 부탁드립니다.


“여러분도 지금처럼 꿈을 품고 새로운 도전을 두려워하지 마세요. 챗GPT와 함께하는 파이썬 코딩의 신세계는 여러분을 기다리고 있을 것입니다”


아직 제 이야기는 끝나지 않았어요~. 다음 주도 기대해 주세요!


- 다음화에 계속 -



*매주 월요일 <광화문덕의 수상한 일상코딩>이 연재됩니다.

*많은 관심과 격려, 응원 부탁드려요!

*구독, 댓글, 좋아요는 제게 큰 힘이 됩니다. 감사합니다.





*업무효율화 툴이자, 소상공인 사장님들의 든든한 지원 프로젝트 DXReport도 많이 사랑해 주세요.


*DXRepot : 뉴스 및 구글 자동 모니터 및 키워드 분석, 주식 종목 리포트 모니터, 네이버 블로그 분석 툴


*DXLawReport : 판례 검색 툴


*DXDicReport : 초중고 및 대학생, 직장인들의 영어단어 암기 돕기 위한 툴


이전 10화 에러의 장막
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari