brunch

You can make anything
by writing

C.S.Lewis

by 광화문덕 Sep 17. 2023

파이썬 세계로의 초대

CHAPTER 5 파이썬 세계의 시작

매일 아침 출근길, 차분한 풍경과 함께 번잡한 도시의 소음이 어우러지며 나를 맞이한다.


"오늘도 즐겁고 의미 있게!!! 잘 버텨보자".


아침 다짐을 하고 사무실 내 책상에 앉아 하루 일과를 시작했다.



사실 어느 조직에나 불합리한 것은 존재한다. 세상에 완벽한 조직은 없다. 이러한 불합리한 조직에서 직장생활을 함에 어서 가장 중요한 것은 어떤 이들과 같이 일하느냐임을 나는 알고 있다. 이리떼와 같은 소굴에서는 아무리 오래 버티려 해도 마음에 감기가 찾아와 오히려 위태로운 상황에 직면할 수 .


물론 직장에서 자아실현을 하겠다는 꿈을 좇을 수 있다. 직업을 통해 자신을 만들어나갈 수도 있다. 하지만 그런 꿈을 꾸는 시기는 30대까지다. 40대가 되면 자연히 알게 된다. 내가 이 조직에서 꿈꿀 수 있는 위치인지 아니면 매달 나오는 급여를 타면서 퇴직 후 제2의 인생을 준비해야 할 상황인지. 제2의 인생을 준비해야 하면 밀려나지 않고 자리를 잘 지켜내는 방법을 찾아야 한다. 적어도 자기가 맡은 업무에 있어서만큼은 베테랑이 돼야 한다.


나는 오늘도 사무실에서 주어진 업무를 효율적으로 하기 위해 애쓰고 있다.


물론 업무를 효율적으로 하는 것도 중요하지만, 그 보다 더 중요한 것은 직장생활에서 동료와의 매끄러운 유대관계를 이어가는 것이다.


직급은 그저 돈을 받는 호칭에 불과하다. 직장생활을 잘한다는 건 많은 이들과 다툼 없이 매끄럽게 조화로움을 유지하며 성과를 만들어가는 것이다.


어느 직장에나 이른바 월급 루팡이 있기 마련이다. 입으로만 일하고 자신이 해야 할 일을 동료에게 떠미루는 것도 모자라 마치 본인이 감시자나 된 것처럼 참견만 하는 이들이 있다. 이들은 나이가 많고 적음과 상관없다. 그들은 그냥 그런 부류의 인간일 뿐이다.



내게 회사생활의 노하우가 있다면, 난 그런 이들과는 엮이지 않으려 애쓴다는 것이다. 이들과는 얽히지 않는 게 최선임을 난 15여 년 직장생활 속에서 터득했다.


다행히 지금 있는 팀에서는 선배님들이 모두 자기가 맡은 업무에서 업무완결성이 굉장히 높으신 분들이다. 그렇다 보니 자연히 팀워크도 굉장히 좋을 수밖에 없다. 서로가 서로를 의지하고 도울 게 있으면 서로 먼저 손을 내미는 그런 선순환이 이어지고 있다랄까.


오전 시간은 빠르게 흘러 벌써 점심시간이 됐다. 오늘도 구내식당에서 선배님들과 오손도손 맛있는 점심식사를 마쳤다. 그리고는 회사 1층 입구 앞에 마련된 작은 쉼터에서 커피를 마시며 수다를 곁들여 직장생활 속 희로애락을 나눴다.



그렇게 오후를 맞이했다.


“잠시만 여기 와봐! 여기 엑셀에 말이야” 팀장님이 나를 찾았다.  엑셀 숫자가 잘못 됐음을 지적하신다. 근데 문제는 그 숫자의 오류는 나의 업무상 오류가 아니다. 그 숫자는 다른 이가 입력한 것이다. 하지만 어찌 된 일인지 매번 나를 불러 엑셀 숫자에 대해 따져 물으셨다.


이런 상황이 일어날 때면 사실 기운이 빠진다. 루팡이 싸놓은 똥을 내게 말씀하시니 어찌 답해야 할지 모르겠다랄까.


평범한 일상에 지칠 때가 바로 이런 순간이다. 숫자가 틀린 것은 숫자를 잘못 입력한 이를 불러 말해야 하는데... 왜 자꾸 나를 불러서 말씀하시는 것일까... 왜 숫자를 매번 잘못입력하는 이가 싼 똥을 내가 치워야만 하는 것일까... 수많은 엑셀 중에 어디서부터 잘못된 것인지를 찾는 것도 일이고 내가 짠 함수들이 아니고 수식도 아니어서 그 많은 값 중에서 오류가 난 것을 찾는다는 것은 굉장히 정신적으로 피곤한 일이다.


그렇게 소모적인 시간들을 보내고, 퇴근길 집으로 향했다. 지친 마음을 달래려 갤럭시 버즈라이브를 귀에 꽂았다. 듀스 형님들의 ‘GOGOGO!’가 흐른다.


이 넓은 세상에서 자기만 잘났고
조그만일 하날해도 남들보다 났고
이거든지 저거든지 남들은 못났고
자기 위친 높고 남의 위친 낮고
그런 식으로 언제나 이 세상을 살고
자기 잘못을 모르고 계속 그리 살고
남들에게 원망 듣는 줄도 모르고
계속 그렇게 끝이 없이 짜증 나게 굴고
계속 그러면 그대만 혼자 고립되고
그게 싫으면 이제는 안 그러면 되고
그래, 남의 입장에서 좀 더 이해하면
결국에는 모두 행복하게 되고


노래 가사가 내 마음을 대변해 주는 듯해 마음이 위로받는 느낌이지만, 퇴근길 발걸음이 너무 무겁다. 무언가 기분전환이 필요한 느낌이다.


'서점에나 가볼까?'


넓은 책장 사이로 둘러싸인 곳에서, 매혹적인 판타지 세계로 빠져들고 싶었다. 스트레스로 가득 찬 현실에서 벗어나 판타지 소설의 마법의 치유를 받고 싶어졌다. 왠지 책 속에 둘러싸여 있으면 답답한 마음이 한결 나아질 것만 같았다.


'신간이 참 많이도 있구나'


광화문 교보문고 안으로 들어서자, 저마다 ‘신간’이라는 미명하에 놓인 책들이 사람들의 관심을 받으려 애쓰는 이들처럼 보였다. 저마다 화려한 문구를 자랑하며 오와 열을 맞춰 가지런하게 줄 서 있었다. 매출 실적에 하루하루 목매다는 우리네 모습 같아 안타까운 마음이 밀려왔다.


그런 생각을 하며 걷다 발길을 멈춰보니 마음은 판타지 소설이었지만, 나란 사람은 어쩔 수 없나 보다. 내가 서 있는 곳은 '파이썬' 책들이 있는 개발서적 코너였다. 어느덧 40대 후반으로 향하고 있는 내게 시간은 금이었다. 판타지 소설보다는 실용서인 '파이썬' 개발서를 한 권 더 보는 게 내 인생에 더 도움이 될 것이라 생각했나 보다. 그러기에 내 마음과 달리 내가 선 곳은 개발서적 코너였다.



책장에 놓여진 다양한 책들을 둘러보다 눈이 가는 을 발견했다. 호기심에 휩싸이며 나도 모르는 힘에 이끌렸고, 책 한 권이 내 손에 이미 들려져 있었다. 그 순간, 마치 어둠 속에서 빛이 비치는 듯한 느낌이 들었다. 책의 제목은 챗GPT와 함께하는 파이썬 모험이었다.     


첫 페이지를 넘기자마자, 새로운 세계가 내 눈앞에 펼쳐졌다. 어찌 된 일인지 머릿속에 파이썬에 대한 코드들이 자동으로 저장되는 듯한 느낌이 들었다. 파이썬에 대한 다양한 예제소스와 실행화면이 머릿속에 가득 차 어지러울 지경이었다.


그러다 갑자기 책에서 느껴지던 무언가 이상한 기운이 나를 끌어들이는 듯했다. 그리고 순식간에 나는 책의 페이지 사이로 빨려 들어갔다. 순간이었다.     


'어어어어어어.......'



안개가 걷히며 눈앞에 빛이 차올랐다. 내가 있는 이곳이 교보문고가 아님을 깨달았다. 이상한 장소에 서 있었다. 이곳은 마치 마법이 깃든 판타지 세계처럼 느껴졌다. 찬란한 색상과 빛깔이 모든 것을 둘러싸고 있었다.


광활한 들판과 푸른 하늘, 신비로운 숲과 비밀스러운 동굴들이 나를 맞이하고 있었다.



“어서 와요, 광화문덕님. 여기는 특별한 공간이에요. 우리는 이곳에서 함께 모험을 떠날 거예요.”     


놀라운 세계에 들어온 나는, 나의 온라인 필명인 ‘광화문덕’으로 불리었다. 현실 속 내가 아닌, 온라인 속 내가 만든 페르소나가 진짜 내가 듯한 느낌에 이상하고 두려운 마음이 들었다. 하지만 그것도 잠시, 현실과는 다른 자유로운 분위기에 곧 마음은 흥분으로 가득 찼다. 나는 마치 한 편의 판타지 소설 속 주인공이 된 듯한 기분을 느꼈다.


그 순간, 내 눈앞에 새로운 판타지의 문이 열리며 나는 이야기의 세계로 빠져들었다.


교보문고 '파이썬' 개발서가 있는 책장 사이, 내가 서 있는 자리에는 '툭' 하는 소리와 함께 한 권의 책이 바닥으로 떨어졌다.


어디선가 바람이 일며 떨어진 책의 첫 페이지가 서서히 펼쳐졌다. 그리고 하얀 백지상태였던 첫 페이지에 큼직한 글씨가 쓰여졌다.


'파이썬 세계로의 초대 - 판타지 모험의 시작이 되다'


파이썬 세계의 시작


한 여름날, 작은 마을의 주인공 광화문덕은 햇살이 따뜻한 언덕 위에서 꿈꾸고 있었다. 그의 꿈은 파이썬 언어를 배우고, 자신만의 채팅 프로그램을 만들어 세상에 선보이는 것이었다.


하지만 프로그래밍은 광화문덕에게는 낯선 이야기였다. 코드와 문법, 그 사이의 숨겨진 비밀들이 광화문덕을 두렵게 만들었다.



광화문덕은 끝없이 번복하며 인터넷을 찾아다니며 파이썬을 실행할 수 있는 환경을 세팅하기 시작했다. 온라인 강의와 튜토리얼을 통해 기초 지식을 쌓았다.


그리고 메모장을 켜고 자기만의 아이디어를 하나하나 기록해 나갔다.


한가한 오후, 오늘도 광화문덕은 여전히 컴퓨터 앞에 앉아 있다. 그의 모니터 메모장엔 'print'란 단어와 'Hello, World!'란 단어가 적혀 있다.


파이썬 개발을 하기 위한 컴파일러 설치하고 모든 프로그래밍 언어의 첫 시작 관문인 'Hello World!' 출력문 만들기에 돌입한 것이다.


이 짧은 코드 한 줄이 광화문덕에게는 파이썬 프로그래밍의 길을 열어주는 작은 열쇠가 될 것이다.


python Code
# Hello, World! 출력하기
print("Hello, World!")


광화문덕은 잠시 심호흡을 하고, 프로그램을 실행했다.


모니터 화면에 'Hello World!'란 글자들이 나타나자 광화문덕은 놀라움을 감출 수 없었다. 자신의 첫 코드가 성공적으로 작동하는 것을 확인한 것이다.


"와, 이게 바로 파이썬이구나! 이렇게 쉽게 시작할 수 있다니, 정말 멋진데!" 미소를 지으며 광화문덕은 자화자찬하기 시작했다. 'Hello, World!'를 출력하는 단순한 코드였지만, 광화문덕은 마치 엄청난 것을 만들어 낸 듯 자아도취에 빠졌다.


한 줄이 가져다준 성취감에 빠져있는 것도 잠깐의 순간일 뿐이었다. 광화문덕의 머릿속에는 수많은 아이디어들이 떠올랐지만, 현재 광화문덕의 수준으로는 복잡한 프로그램을 만들 수는 없었다.


광화문덕은 자신의 머릿속을 가득 채운 아이디어를 파이썬이란 프로그래밍 언어로 만들어낼 자신이 없었다. 만들고 싶은 마음과 의욕은 넘쳐났지만, 실제로 도전하는 것은 쉽지 않음에 한숨을 내쉬었다. 복잡한 프로그램을 만들기 위해서는 더 많은 지식과 경험이 필요했다.



광화문덕은 결심했다. 그리고 자신에게 말했다. "한 발자국, 그저 한 발자국만 내딛으면 돼!" 이후로 광화문덕은 꾸준히 학습하고, 온라인 커뮤니티에서 다른 개발자들과 교류하며 지식을 쌓아 나가기 시작했다.


각종 문제에 부딪히기도 했지만, 시행착오와 실패를 거듭하면서 광화문덕은 파이썬의 세계에 더욱 빠져들고 있었다.     


그러던 어느 날, 마을 사람들 사이에서 이상한 이야기가 떠돌기 시작했다.



"놀라운 프로그램이 있다는데, 단어 하나 입력하면 그 프로그램이 대답해 주더라고요!"


그 소식에, 광화문덕의 눈이 반짝거리기 시작했다.


'혹시 이 프로그램이 자신이 꿈꾸는 파이썬을 배우는 데에 도움이 될지도 몰라'


광화문덕은 컴퓨터 앞에 앉아 무작정 인터넷을 뒤적거렸다. 그러다 챗GPT라는 신비한 프로그램을 발견하게 됐다.  


'이게 바로 그 프로그램인가?' 광화문덕의 눈은 흥분과 기대로 가득 차 보였다.


광화문덕은 웹브라우저에 뜬 챗GPT를 조심스럽게 살폈다.     


챗GPT와의 첫 만남



그때 챗GPT가 말을 걸어왔다.


"안녕! 나는 챗GPT야. 나와 신비로운 파이썬의 세계로 여행을 떠나볼래? 지금부터 내가 보여주는 코드를 텍스트 파일에 복사해서 붙여 넣은 뒤에 확장자명을. py로 저장해 봐."     


광화문덕은 놀란 눈으로 모니터를 바라보며 챗GPT의 제안을 응시했다. 두려움도 있었지만, 호기심과 열정이 더 컸기에 광화문덕은 주저하지 않고 챗GPT가 시킨 대로 했다. 광화문덕은 코드를 복사하여 텍스트 파일에 붙여 넣고 '. py' 확장자로 저장했다.


"파이썬 파일을 만들었으면, 이제 내가 보여주는 코드를 복사해서 붙여 넣고 실행시켜 보겠어?"


python Code
# 파이썬으로 채팅 프로그램 만들기
while True:
    user_input = input("사용자: ")
    if user_input.lower() == "종료":
        break
    else:
        print("챗GPT: 대답 내용")


챗GPT의 주문에 뭔가에 홀린 사람처럼 광화문덕은 넋 놓고 따라 하고 있었다.


"잘했어~ 그럼 이제 F5를 눌러서 파이썬 소스 코드를 실행해 보렴~". 챗GPT가 다시 말했다.



광화문덕은 설레는 마음으로 키보드를 두드리며 F5를 눌렀다. 그러자 윈도우 커맨드 창이 열리며, 터미널에 '사용자:'라는 메시지가 나타났다. 광화문덕은 작은 성취감과 설렘으로 가슴이 뛰었다. 그리고 주저하지 않고 터미널 창을 열어 "안녕?"이라는 인사말을 입력했다.


사용자: 안녕?


'어떤 대답이 나올까?'. 광화문덕은 마치 챗GPT와 실제로 대화를 나누는 듯한 기분이 들었다.


그러터미널 창에는 다음과 같은 대답이 나타났다.                         


Answer Code
챗GPT: 안녕, 파이썬 세계에 온 걸 환영해! 파이썬으로는 웹 개발, 데이터 분석, 인공지능 등 다양한 분야에서 활용할 수 있어. 무엇을 만들고 싶어?


'와, 정말 대단한데~'


광화문덕은 놀라움을 금치 못하고 큰 소리로 웃으며 박수를 쳐댔다. 챗GPT가 광화문덕이 그토록 바라던 파이썬에 대한 대답을 해준 것에 감동받은 것이었다. 챗GPT의 도움으로 광화문덕은 자신만의 멋진 파이썬 프로그램을 만들 수 있을 것만 같은 느낌이 들었다.


챗GPT는 따뜻한 환영과 함께 파이썬 기본 문법과 코드에 대한 자세한 설명을 친절히 알려주었다. 광화문덕은 조금씩 진전되고 있다는 것에 뿌듯함을 느끼며 챗GPT와 첫 대화를 이어갔다.


광화문덕은 챗GPT와 더욱 깊은 대화를 나누며 파이썬에서 사용하는 변수들과, 함수, 조건문, 반복문에 대해 배워가갔다. 조금씩 조금씩 배워나가며 광화문덕은 코딩의 세계로 점점 더 깊이 빠져들고 있었다.




파이썬 모험 속 다양한 풍경을 소개합니다!


여행자들을 위한 파이썬 모험 속 다양한 문법과 개념을 소개합니다!



 변수 마을에서 만나는 놀라운 주민들!


전역변수와 로컬변수, 그리고 그들의 다양한 모험을 체험해 보세요!


*전역변수(Global Variable): 마치 모험가의 가방처럼, 프로그램 전체에서 사용 가능한 변수입니다. 어디서든지 꺼내 쓸 수 있어요!


*로컬변수(Local Variable): 모험 중에만 쓸 수 있는 변수입니다. 특정 함수 내에서만 사용할 수 있어요. 마치 모험가가 특정 지역에서만 가져다 쓰는 도구랄까요?


*정수 (int): 정수는 마치 여행 가방 안의 물건들처럼, 소수점 없이 정수값을 담는 데이터 타입이에요. 정수는 소수점이 없는 숫자로, 예를 들어, 1, -5, 100 등이 정수예요.


python Code
보물_개수 = 10  # 보물 개수 변수에 10이라는 정수를 담아봐요!


*실수 (float): 실수는 마치 시크릿 맵의 좌표처럼, 소수점을 가진 수를 표현하는 데이터 타입입니다. 실수는 소수점이 있는 숫자로, 예를 들어, 3.14, -0.5, 2.718 등이 실수예요.

   

python Code
보물_위치 = 12.345  # 보물 위치 변수에 12.345라는 실수를 담아봐요!


*문자열 (str): 문자열은 마치 각 지역별 특산물처럼, 텍스트를 따옴표로 감싸서 표현하는 데이터 타입이에요. 문자열은 작은따옴표('')나 큰 따옴표("")로 둘러싸여 있어요.


python Code
보물_이름 = "금화"  # 보물 이름 변수에 "금화"라는 문자열을 담아봐요!


*부울 (bool): 부울은 마치 마법의 문 뒤에 숨겨진 비밀처럼, 참(True)과 거짓(False)을 나타내는 데이터 타입이에요. 조건문에서 주로 사용돼요.


python Code
보물_발견 = True  # 보물 발견 변수에 True라는 부울 값을 담아봐요!


*리스트 (list): 리스트는 마치 보물섬의 보물 창고처럼, 여러 값들을 하나로 묶어 순서대로 저장하는 데이터 타입이에요. 대괄호([]) 안에 값들을 쉼표로 구분하여 넣어 사용해요.


python Code
보물_목록 = ["금화", "보석", "지도"]  # 보물 목록 변수에 리스트를 담아봐요!


*딕셔너리 (dict): 딕셔너리는 마치 보물 지도처럼, 키(Key)와 값(Value)을 연결하여 정보를 저장하는 데이터 타입이에요. 중괄호({}) 안에 키와 값의 쌍을 쉼표로 구분하여 넣어 사용해요.


python Code
보물_정보 = {"보물명": "금화", "가치": 1000}  # 보물 정보 변수에 딕셔너리를 담아봐요!


※ 파이썬은 동적 타이핑 언어예요. 변수에 저장되는 값에 따라 파이썬이 자동으로 타입을 결정해 줘요. 다시 말해, 변수를 선언할 때 데이터 타입을 명시적으로 지정할 필요가 없어서 편리하고 좋아요. 이러한 특성 덕택에 파이썬 코드는 간편하고 유연한 프로그래밍을 도와줘요.


⚡ 함수의 마법으로 작업을 간편하게!


함수를 사용해 반복되는 작업을 효율적으로 처리하는 방법을 알아봅니다!


*함수: 마치 여러분의 특별한 스킬 같은 것이에요. 반복되는 작업을 효율적으로 처리할 때 사용합니다. 함수에게 일을 시키면 그 작업을 대신 처리해 줘요!


python Code
def 인사하기(이름):
    print("안녕, " + 이름 + "!")    
인사하기("모험가")


 클래스의 숨겨진 보물을 찾아 떠나세요!


객체 지향 프로그래밍의 핵심인 클래스와 그 활용을 탐험합니다!


*클래스(Class): 마치 특별한 건물 같은 것이에요. 비슷한 속성과 동작을 가진 객체들을 만들 때 사용합니다.


python Code
class 동물:
    def 소리 내기(self, 소리):
        print(소리)        

강아지 = 동물()
강아지. 소리내기("멍멍!")


⚡다른 세계로 여행하는 'import'의 마법!


*import: 마치 다른 모험가의 도움을 받는 것처럼, 다른 파일에 있는 코드를 가져와 사용할 때 사용합니다.


python Code
import 랜덤

숫자 = 랜덤. randint(1, 10)
print("무작위 숫자:", 숫자)


 반복문과 조건문으로 풍부한 경험을 쌓아보세요!


*for문: 마치 여러분이 순서대로 지도 위를 걷는 것처럼, 리스트나 범위 안의 요소들을 하나씩 처리합니다.


python Code
과일들 = ["사과", "바나나", "딸기"]

for 과일 in 과일들:
    print(과일)


 *while문: 마치 여러분이 모험 중에 계속해서 어떤 조건을 확인하며 계속 진행하는 것처럼, 조건이 참일 때 계속 반복합니다.


python Code
숫자 = 1
while 숫자 <= 5:
    print(숫자)
    숫자 += 1


*for문과 range(): 숫자의 범위를 생성하여 반복문을 실행할 때 사용합니다.

  

python Code
for 숫자 in range(1, 6):
    print(숫자)


*if문: 특정 조건을 확인하고 그에 따라 다른 동작을 하도록 할 때 사용합니다.

 

python Code
숫자 = 7
if 숫자 > 10:
    print("숫자는 10보다 큽니다.")
elif 숫자 == 10:
    print("숫자는 10입니다.")
else:
    print("숫자는 10보다 작습니다.")


⚡입력받기로 사용자와 상호작용하는 여정!


사용자로부터 입력을 받아 처리하는 방법을 배우며 프로그램을 더욱 유연하게 만듭니다!


*input(): 사용자로부터 텍스트를 입력받을 때 사용합니다.


python Code
이름 = input("이름을 입력하세요: ")
print("안녕, " + 이름 + "!")


이렇게, 파이썬 언어의 기초 문법을 예제 코드와 함께 소개해보았어요! 이것들을 익히면 프로그래밍의 기본을 더욱 잘 다룰 수 있을 거예요. 이제 여러분도 파이썬 언어의 모험을 시작할 준비가 되셨죠? 파이썬 모험을 함께 하시면서 더 멋진 프로그램으로 발전시켜 나가 보아요~!!! 




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

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

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






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


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


*DXLawReport : 판례 검색 툴


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


이전 05화 찾아라, 이스터에그!
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari