와미의 일상/AI 정복하기

노베이스 문과 기획자를 위한 파이썬 독학 - prologue (프로그래밍 언어와 철학)

와미쀼 2024. 9. 15. 12:21

나름 AI 관련된 일을 하고도 있고, 프롬프트 엔지니어링에 대해서도 또 공부하고 있지만, 그럴수록 개발지식에 대한 인풋이 강하게 느껴집니다.

 

그래서 이번엔 저같은 문돌이 기획자들을 위한 파이썬 컨텐츠를 만들어보려고 해요. 그중에서도 왜 파이썬인지? 함께 알아보는 포스팅입니다. 

 

 

프로그래밍 언어, 파이썬 소개


 

기획자를 위한 파이썬 독학 - prologue (프로그래밍 언어와 철학)

 

목차

 

1. 왜 하필 파이썬? 기획자라며?

2. The Zen of Python (영문)

3. 파이썬의 철학 (국문)

4. 정말 그렇게 쉽나?

이전글

 

왜 하필 파이썬? 기획자라며?

0.

회사에서 다양한 프로젝트를 해오면서, 간접적으로라도 개발자분들과 이야기할 일이 많아졌습니다.

 

그만큼 개발환경에 대한 이해가 많이 요구되는 상황이고, 특히 기획업무의 일을 할 때 더이상은 개발을 떼놓고 프로젝트의 진척을 빠르게 올리기가 어려운 요즘이에요.

 

1.

"파이썬"은 원래 뱀처럼 꿈틀꿈틀 기어가는 모습을 떠올리게 하는 이름이지만, 사실 가장 사랑받는 프로그래밍 언어 중 하나 라고 하네요.

 

프로그래밍과 거기에 사용되는 언어 자체를 어렵다라고 막연히 생각하는 사람들이 많지만, 파이썬은 "쉬운"과 "재밌는"을 동시에 잡은 똑똑한 언어이기 때문인데요. 

 

우리가 어렸을 떄 갖고 놀던 레고처럼, 간단한 명령어들을 조합해서 다양한 프로그램을 만드는 데에 최적화되어있다고 합니다. 

 

실제로 파이썬은 웹사이트 개발부터 데이터 분석, 인공지능 개발까지 다양한 분야에서 활용되고 있습니다.

 

초보자도 쉽게 배우고, 전문가도 즐겁게 사용할 수 있는 매력적인 언어이면서도 "개방적"인 속성을 가지고 있어서 누구나 무료로 사용하고, 개발에 참여할 수 있다는 특징이 있다는 데요.

 

2.

그래서 문돌이이자 기획자, 개발 문외한인 제가 간접적으로 개발지식을 쌓기에는 파이썬을 공부하는 것이 가장 효율적일거라고 생각했고, 실제로 스스로 어떤 결과물을 만들어내기에도 적합한 언어라고 생각했습니다.

 

파이썬을 사용하는 사람들이 끊임없이 새로운 기술과 자료를 공유하고, 서로 도와가면서 발전시킨다고 하는 것이 이쪽 문화라고하니, 벌써부터 진입장벽이 확 낮아진 느낌인데요.

 

3.

그럼 파이썬의 철학을 살펴보며 한번 시작해볼게요!

 

The Zen of Python 

기본적으로 파이썬을 구동한 뒤, import this라는 명령을 하면 나오는 The Zen of Python이라는 내용인데요. 파이썬의 철학을 담은 19개 구문입니다.

 

The Zen of Python, by Tim Peters 

Beautiful is better than ugly.   
Explicit is better than implicit.
Simple is better than complex.   
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

 

파이썬의 철학


1. 아름다운 것이 못생긴 것보다 낫다.

  • 코드는 마치 예술 작품처럼 아름다워야 해. 읽는 사람이 즐거움을 느낄 수 있도록 말이지.
  • 복잡하고 어려운 코드는 마치 엉성한 그림처럼 보기 싫잖아? 파이썬은 "아름다운" 코드를 만들도록 우리를 이끌어줘.

2. 명시적인 것이 암시적인 것보다 낫다.

  • 코드는 마치 이야기처럼 명확해야 해. 숨겨진 의미는 오해를 불러일으킬 수 있거든.
  • "이 코드는 무슨 일을 하는 걸까?"라는 의문이 들지 않도록, 명확하게 의도를 드러내야 해.

3. 단순한 것이 복잡한 것보다 낫다.

  • 불필요한 복잡성은 마치 쓸데없는 장식처럼 코드를 어지럽게 만들 뿐이야.
  • 코드는 간결하고 명료하게, 핵심만 담아야 해. 마치 시처럼 말이지.

4. 복잡한 것이 복잡스러운 것보다 낫다.

  • 단순함이 최고지만, 어쩔 수 없이 복잡해져야 할 때도 있잖아?
  • 그럴 땐 체계적으로 관리해서 코드를 깔끔하게 유지해야 해.
  • 엉성한 코드는 마치 낡은 건물처럼 보기 싫고, 유지 보수하기도 힘들어.

5. 평평한 것이 중첩된 것보다 낫다.

  • 코드가 너무 깊이 중첩되면, 마치 미로처럼 길을 잃어버리기 쉽지.
  • 가능한 한 평평하게, 한눈에 들어오도록 코드를 작성하는 게 중요해.

6. 희소한 것이 밀집된 것보다 낫다.

  • 불필요한 코드는 마치 잡초처럼 코드를 어지럽게 만들 뿐이야.
  • 필요한 정보만 담아서 간결하게 만들자.

7. 가독성이 중요하다.

  • 다른 사람이 이해할 수 있도록 코드는 명확하고 읽기 쉽게 작성해야 해.
  • 마치 좋은 글처럼, 누구나 쉽게 이해할 수 있도록 말이지.

8. 특수한 경우는 규칙을 깨기에 충분하지 않다.

  • 규칙은 일관성을 유지하기 위해 존재해.
  • 특수한 경우를 위해 규칙을 깨면, 코드 전체의 일관성이 깨지고, 유지 보수가 어려워질 수 있어.

9. 실용성이 순수성보다 중요하다.

  • 완벽한 코드보다, 현실적인 문제를 해결할 수 있는 코드가 더 중요해.
  • 마치 실용적인 도구처럼, 문제 해결에 도움이 되는 코드를 만들어야 해.

10. 오류는 절대 묵묵히 지나쳐서는 안 된다.

  • 오류는 마치 경고등처럼, 문제가 발생했음을 알려주는 신호야.
  • 오류를 무시하면, 더 큰 문제가 발생할 수 있어.

11. 명시적으로 억압되지 않는 한.

  • 개발자가 의도적으로 오류를 숨기고 싶은 경우는 제외할 수 있어.

12. 모호함에 직면했을 때, 추측하려는 유혹을 거부하라.

  • 코드의 의미가 모호하면 추측하지 말고, 명확하게 작성해야 해.
  • 마치 소설처럼, 독자가 추측하게 만드는 코드는 좋지 않아.

13. 어떤 일을 하는 데는 하나, 바람직하게는 오직 하나의 명확한 방법이 있어야 한다.

  • 코드는 하나의 명확한 방식으로 작성되어야 해.
  • 여러 가지 방법으로 작성할 수 있다면, 코드의 유지 보수가 어려워지고, 오류 발생 가능성이 높아질 수 있어.

14. 비록 그 방법이 처음에는 명확하지 않을 수도 있지만, 당신이 네덜란드 사람이 아니라면.

  • 파이썬 창시자인 귀도 반 로섬이 네덜란드 사람이기 때문에, 네덜란드 사람이 아니라면 처음에는 파이썬의 방식이 직관적이지 않을 수도 있어.

15. 지금이 없는 것보다 낫다.

  • 완벽한 코드를 만들려고 시간을 낭비하는 것보다, 지금 바로 코드를 작성하는 것이 더 중요해.
  • 마치 글쓰기처럼, 완벽한 문장을 만들려고 고민하기보다는, 일단 써 내려가는 것이 중요해.

16. 하지만 지금 당장 완벽하게 하는 것보다 없는 것이 나을 때도 많다.

  • 시간 제약이나 다른 요인 때문에 완벽한 코드를 만들 수 없는 경우에는 없는 것이 나을 수도 있어.

17. 구현을 설명하기 어렵다면, 나쁜 생각이다.

  • 코드가 복잡하고 이해하기 어렵다면, 좋은 코드가 아니야.
  • 간단하고 명확한 코드는 이해하기 쉽고, 유지 보수하기도 쉽지.

18. 구현을 설명하기 쉽다면, 좋은 생각일 수 있다.

  • 코드가 간단하고 명확하게 설명할 수 있다면, 좋은 코드일 가능성이 높아.

19. 네임스페이스는 정말 훌륭한 아이디어야 - 더 많이 사용하자!

  • 네임스페이스는 마치 서랍처럼, 변수와 함수를 깔끔하게 정리해 주는 역할을 해.
  • 파이썬은 네임스페이스를 적극적으로 활용해서 코드의 가독성과 유지 보수성을 높여.

 

정말 그렇게 쉽나?

 

1. "Hello, World!"를 5초 만에 출력해 보자!

 

파이썬에서 "Hello, World!"를 출력하는 코드는 이렇게 간단해요.

python
코드 복사
print("Hello, World!") 

 

단 한 줄로 세상과 인사를 나눌 수 있다니, 놀랍지 않나요?

 

이렇게 간단한 코드로 원하는 결과를 얻을 수 있다는 점이 파이썬의 가장 큰 장점입니다.

 

 

2. 숫자 맞추기 게임, 10분 만에 만들어 보자!

 

파이썬으로 간단한 숫자 맞추기 게임을 만들어 볼 수도 있는데요.

물론 아래의 게임은 AI의 도움을 받은 코드지만, 한번 

python
코드 복사
import random

secret_number = random.randint(1, 100)
guess_count = 0
max_guesses = 7

print("숫자 맞추기 게임에 오신 것을 환영합니다!")
print("1부터 100 사이의 숫자를 맞춰보세요.")

while guess_count < max_guesses:
    try:
        guess = int(input("숫자를 입력하세요: "))
        guess_count += 1
        if guess < secret_number:
            print("더 높은 숫자입니다.")
        elif guess > secret_number:
            print("더 낮은 숫자입니다.")
        else:
            print(f"정답입니다! {guess_count}번 만에 맞히셨습니다.")
            break
    except ValueError:
        print("숫자를 입력하세요.")

if guess_count == max_guesses:
    print(f"기회를 모두 사용했습니다. 정답은 {secret_number}입니다.")

 

이 코드는 컴퓨터가 1부터 100 사이의 숫자를 랜덤으로 정하고, 사용자가 7번 안에 맞추는 게임인데요.

 

실제로 실행하면 아래와 같은 미니게임을 할 수 있습니다.

 

파이썬으로 간단한 게임 만들기

 

 

3. 파이썬으로 그림 그려보기, 'turtle' 라이브러리 활용

파이썬은 'turtle' 라이브러리를 통해 그림을 그리는 것도 가능한데요.

python
코드 복사
import turtle

t = turtle.Turtle()
t.speed(0)  # 가장 빠른 속도로 설정

# 별 그리기
for i in range(5):
    t.forward(100)
    t.right(144)

turtle.done() 

 

 

실제 코드값은 위와 같고, 실행해 보면 아래와 같은 이미지를 그려줍니다.

 

파이썬으로 간단한 그림 그리기

 

 

이처럼 파이썬은 "쉬운"과 "재밌는"을 동시에 잡은 매력적인 프로그래밍 언어로, 우리 같은 기획업무를 하는 초보자부터, 실제 개발현업에 있는 전문가까지 폭넓은 개발자들에게 사랑받고 있다고 합니다. 앞으로의 여정을 함께 해요!

 

추천글

노베이스 문과아재의 프롬프트 엔지니어링 독학(1) - 기본 개념

 

노베이스 문과아재의 프롬프트 엔지니어링 독학(1) - 기본 개념

생성형 AI 들과 보다 원활하게 대화하기 위한 기술인 프롬프트 엔지니어링(prompt engineering)이라는 것이 있다고 알게 되었어요. 그래서 저는 그 당사자인 챗GPT로부터 도움을 받아, 오늘부터 프롬프

meant2b-wami.tistory.com

 

노베이스 문과아재인 내가 이 세계에선 AI 마스터..? (학습과 파인튜닝)

 

노베이스 문과아재인 내가 이 세계에선 AI 마스터..? (학습과 파인튜닝)

GPT는 그 자체로도 개발하는데 많은 비용이 들어가지만, 또 데이터를 학습시키는 것도 만만치 않은 일이라고 하는데요. 오늘은 챗GPT가 어떻게 데이터를 학습하는지, 그리고 특정 영역에 특화된 G

meant2b-wami.tistory.com

 

반응형