본문 바로가기
Python/Do it! 점프 투 파이썬

[Do it! 파이썬] 0. 프로그래밍과 파이썬

by Couldi 2023. 9. 7.
반응형

23. 9. 7.

- Could -

 

이 글은 막연히 python을 공부해야하나 라는 불안감으로 python으로 프로그래밍을 입문하는 사람들을 위한 글입니다.
python을 시작하는 많은 분들이 보는 '점프 투 파이썬' 책을 중심으로 '필자의 주관'이 잔뜩 담긴 설명을 추가하여, 파이썬 공부에 흥미를 붙이고 책 완주 후의 계획을 수립할 수 있도록 쓰여졌습니다.
'점프 투 파이썬'은 wikidoc(https://wikidocs.net/book/1)으로 무료로도 확인 가능합니다.
0. 글의 목적
1. 프로그래밍이란?
2. 프로그래밍 언어
    - 저급언어와 고급언어
    - 언어의 문법
3. 그렇다면 파이썬은?

0.  글의 목적

파이썬을 공부하기로 마음을 먹은 사람들은 대부분 프로그래밍을 공부해봐야지 라는 생각으로 시작한 경우가 많다. 프로그래밍 공부와 관련해 이것저것 알아보다보니, 파이썬이 쉬우니 처음 시작은 무조건 파이썬으로 하라는 글들도 많고, 다른 프로그래밍언어인 Java, JavaScript, C, C++, C# 등을 공부하며 고통받고 있다는 이야기들을 보기도 했을 것이다. 먼저 프로그래밍을 공부하기에 앞서, 그 목적의 식이 뚜렷하지 않다면 아래 글을 참고해보자.

 

https://couldi.tistory.com/28  

 

[프로그래밍 공부법] 프로그래밍을 공부하는 방법

1. 공부목적을 확실히 하자. 2. 베이스가 될 프로그래밍 언어를 선택하자. 3. 강의 고르기 4. 강의 수강하기 5. 함께 공부하기. 6. 강의를 완주했다면? 프로그래밍을 공부를 시작하기로 마음 먹었다

couldi.tistory.com

 

사실 위와 같은 글을 보고도, 뚜렷하게 이거해야지 라는 생각이 안드는 사람들이 대부분일 것이다. 이 글은 그런 분들을 위해 작성하는 글이니, 파이썬을 공부해보며 프로그래밍이 어떤 개념을 가지고 어떤 형태로 이루어지는 알아보고, 추후 흥미가 생겼을 때, 해당 분야의 학습에 뛰어들수 있게 도와주는데 목적이 있다.

IT 직무를 꿈꾸는 다양한 친구들을 만나다 보면, 개발직무 이외의 직무를 희망하는 친구들이 항상 물어보는 질문이다. '프로그래밍 알아야하나요?'

프로그래밍 알아야 하나요?

이 질문을 하는 사람들의 마음 속에는 이미 정답이 정해져있는 경우가 많다. 프로그래밍을 공부해야 할것 같은데 과연 시간 투자를 할만한 일인지 확신이 안서서 물어보는 경우도 있고, 자기 생각에는 필요 없을것 같은데 주변에서 프로그래밍 프로그래밍 노래를 부르니까 괜한 불안감에 휩싸여서 물어보는 경우도 있다. 배워야할까? 안배워도 될까? 

나는 이런 질문이 들어오면 기본적으로 질문 하신 분에 생각에 맞추어서 대답을 드리는 편이다. 하지만 이 글을 보는 사람 하나하나 상황을 물어보고 답변을 해줄 수 없으니 조금 모호하지만 아래와 같은 답변을 해드리려고 한다.

먼저, 저런 고민이 있다면 '아직은' 프로그래밍을 알 필요는 없다. 진짜 프로그래밍이 필요해진 상황이라면 이미 공부하고 있을 거다. 고민 중이라는건 굳이 프로그래밍을 안해도 해결할 방법이 있을 것 같다는 생각을 하고 있는 중이고, 그런 생각을 가지고 프로그래밍을 공부한다 한들 크게 얻을 것이 없다. 프로그래밍을 알아야 하는가? 라는 부분에서 고민은 어쩌면 '비타민C'를 챙겨먹어야하나요? 라는 질문과 비슷하다.

사람에 따라 필요할 수도, 필요 없을 수도 있지만, 챙겨먹으면 좋다? 굳이 안챙겨먹더라도 사는데 크게 지장은 없다. 현재 그 고민을 하는 시점에서 프로그래밍의 위치는 딱 거기다.

하지만 개인적으로는 공부해보는걸 추천한다. 영어 말고 다른 제 2외국어를 공부해본다는 생각으로 한번쯤 맛보는것도 괜찮다. 프로그래밍 언어를 공부해보면 내가 몰랐던 세상이 보이고, 내가 몰랐던 글이 읽힌다. 결국 프로그래밍 '언어'니까 소통할 수 있는 분야가 더 많아 진다. 하지만 뭔갈 해야하는 뚜렷한 목적이 있다면, 강하게 몰입하거나 다른 방식을 찾아보는 걸 추천한다. 어디까지나 비타민을 챙겨먹고, 제2외국어를 하는 수준으로 생각하고 접근해야한다. 여태 몰랐던 프로그래밍 쪽의 재능이 발견되서 슈퍼 개발자로 거듭날 수도...?

 

1. 프로그래밍이란?

ChatGPT가 말한다

이렇게 저렇게 말해도 프로그래밍은 쉽게 이야기하면 아래와 같이 정리된다.

컴퓨터의 프로그램을 작성하는 일

결국은 '프로그래밍 언어'로 '프로그램'이라고 하는 글을 쓰는 일이다. 어떻게 보면 작가와 비슷하기도하다. '프로그래밍'과 '코딩'이라는 용어를 보통은 섞어서들 쓰는 편인데 각 단어가 풍기는 뉘앙스가 조금 다르다. 현업에서는 프로그래밍은 조금 복잡하고 의미 있는 일인 느낌으로, 코딩이라고 하면 단순하고 반복적인 느낌으로 받아들인다. 더나아가 프로그래밍을 하는 사람은 '프로그래머(Programmer)', 코딩을 하는 사람은 '코더(Coder)'라고 부르는데, 개발자들은 프로그래머라하면 개발자의 또다른 영어 표현으로 받아들이고, 코더라고하면 개발자를 낮춰부르는 표현으로 인식한다.

개발자 호칭하기
개발자들에게 프로그래머 라고하면 굉장히 중립적인 표현으로 받아들인다. '소프트웨어 엔지니어'라고 하면 부끄러워하거나 뿌듯해하는 모습을 볼 수 있다. 직무명 자체가 '소프트웨어 엔지니어'인 경우도 있지만, 저렇게 긴 이름으로 지칭해줄수록 개발자를 존중하고 있다는 의미가 강하다. 만약, 개발자를 향해 '코더'라고 지칭한다면 이건 흑인에게 '니거(Nigger)'라고 한 것과 같다. '코더'라는 말은 개발자들 끼리만 쓸 수 있는 말이다. 개발자가 아닌 사람이 개발자에게 '코더'라고 말했다? 이건 개발자에 대한 큰 모욕이다.

2. 프로그래밍 언어

프로그래밍을 작성하기 위해서 사용하는 언어. 그게 바로 프로그래밍 언어다. 사람들과 대화하기 위해서 '언어'를 알아야 하듯, 컴퓨터와 대화하기 위해서 알아야하는게 '프로그래밍 언어' 이다. 사람들이 사용하는 언어도 나라와 지역에 따라 다양하듯, 프로그래밍 세계에서도 프로그래밍 언어는 다양하다. 요즘은 프로그래밍에 대한 관심이 많아져서 python, JavaScript, Java, C, C++, C# 정도는 다들 한번쯤 들어봤을지도 모른다. 이 말고도 Go나 Rust, 내가 좋아하는 Dart 등 다양한 언어들이 많다. 각 언어들마다 다른 특징들을 가지고 있지만, 프로그래밍을 처음 공부하는 입장에서는 중요한 부분이 아니다.

중요한 부분은 다들 비슷한 구조와 문법을 가지고 있다는 사실이고, 한가지 언어를 잘 배워두면 다른 언어를 배우는 것은 첫 언어를 배우는 것보다 덜 힘들다는 점이다.

프로그래밍 언어가 다양하기 때문에, 이 언어를 구분짓는 다양한 방식들이 존재하지만, 우리는 가장 기본적인 '고급언어'와 '저급언어'의 차이부터 알아보자. (예전에는 이 부분을 짚지도 않고 다짜고짜 프로그래밍 언어를 때려박는 강의와 책들이 많았던것 같은데.. 비교적 최근에 나오는 강의와 책들은 이부분을 언급해줘서 얼마나 다행인지 모른다.)

저급언어(low-level language)와 고급언어(high-level language)

저급언어와 고급언어는 프로그래밍 언어를 구분하는 방식으로, 상대적인 개념이다. 사람이 이해하기 쉬우면 고급언어, 컴퓨터가 이해하기 쉬우면 저급언어라고 부른다. '프로그래밍 언어'는 컴퓨터와 사람이 소통할 수 있게 만들어 주는 매개체이고, 사람과 컴퓨터 사이 중 어느쪽에 가깝냐에 따라 저급과 고급의 구분이 나뉜다.

일반적으로 우리가 공부하는 프로그래밍 언어들은 사람들이 이해하기 쉽게 쓰여진 언어로 고급언어로 분류된다. 어셈블리어, 기계어와 같이 사람이 이해하기 어렵다면 저급언어로 분류된다. 하지만 '상대적인' 개념이기 때문에 사람에 따라서 어셈블리어 정도면 고급언어라고 주장하는 사람도 있고, C언어는 저급언어라고 주장하는 분들도 있다. 일반적으로는 C 언어는 고급언어로 치고, C언어보다 row-level로 넘어가는 언어들을 저급언어로 부른다.

 

언어의 문법

언어를 사용하기 위해서는 단순한 단어의 나열만으로는 부족하다. 특정 규칙을 가지고 단어를 배열해야만 서로 의사소통이 원활하게 이루어진다. 프로그래밍 언어가 가지는 문법도 동일한 개념이다. 컴퓨터와 사람 사이의 소통을 위해 프로그래밍 언어를 규칙에 맞게 사용하는 것이다. 대부분의 프로그래밍 언어는 비슷한 문법 구조를 가지고 있고, 문법을 엄격하게 지키라고 강요하는 언어도 있는 한편, 조금 느슨하게 적용해주는 언어도 존재한다. 각자 장단이 있지만, 최근에는 문법을 엄격하게 지키는 언어에 대한 선호가 커지고 있는 중이다.

 

3. 그렇다면 파이썬은?

파이썬은 사람이 이해하기 쉬운 고급 언어로 분류된다. 언어의 문법도 엄격하게 지키라고 강요하지 않는다. 그렇기에 초보자들이 입문하기 좋은 언어라는 평가가 지배적이다. 입문이 쉬운만큼 많은 사람들이 배웠고, 사용하는 사람들도 많다. 다양한 사람들이 사용하는 만큼 사용하는 방식도 제각각이기 때문에, 어떻게 배우느냐가 정말 중요한 언어라는 생각이 든다.

'Do it! 점프 투 파이썬' 에서도 파이썬이 왜 좋고 훌륭한 언어인지, 배워서 어떻게 쓸 수 있는지 첫 장을 할애해서 자세하게 서술하고 있다. 저자에 의견에 일부 동의하는 부분도 있고, 동의하지 않는 부분도 있기에 본 블로그에 글을 읽을 때는 책과 함께 읽어보면서 독자 스스로가 나름의 생각을 갖추어 나가면 좋겠다.

반응형

댓글