brunch

You can make anything
by writing

C.S.Lewis

파이썬만 배우면 데이터분석, 웹 프로그래밍 다 된다?

파이썬을 배우면서 들었던 의문을 문돌이 출신 전공자가 풀어드립니다.

목차

1. 파이썬만 배우면 된다고 말하는 교육업체들

2. 큰맘 먹고 파이썬을 배우면 생기는 일

    1) print('hello world')

   1) 숫자야구게임, 로또숫자 맞추기

3. 파이썬으로 데이터분석, 웹플로그래밍을 하려면 ..

   1) pandas, scikit-learn, tensorflow

   2) django, flask, 호스팅

4. 파이썬도 복잡한데... 다른 언어가 낫지 않을까?



1. 파이썬만 배우면 된다고 말하는 교육업체들

    병장을 달 때 쯤인 2018년 1월부터 인터넷강의로 파이썬을 공부하기 시작했다. 당시만 해도 한국인이 가르쳐주는 코딩 인강 업체가 많지 않았다. 나는 와디즈에서 펀딩으로 알게된 교육업체 강의로 코딩 공부를 시작했다. '파이썬만 배우면 데이터분석, 웹프로그래밍이 다 될 것'처럼 말하는 교육 업체들이 많다. 페이스북 광고로 많이 봤는데, 막상 찾으려니 없다...


    언론정보학도인 내가 파이썬을 첫 코딩 언어로 사용한 이유는 다음과 같다. '쉽다, 데이터분석에 쓰인다, 웹 프로그래밍도 된다'. C++, Java에 비해 쉬운데 기능도 많은데, 공부하지 않을 이유가 없었다. 하지만 파이썬을 공부할 때마다 늘 의문이 따랐다.


    파이썬이 쉬운 건 알겠는데, 어떻게 데이터 분석, 웹프로그래밍을 한다는 거지...?



2. 큰맘 먹고 파이썬을 배우면 생기는 일

    1) print('hello world!')

    파이썬을 시작하는 누구든 print('hello world!')로 시작했을 것이다. '생각보다 코딩 쉬운데?' 모두들 그랬을 것이다. 함수, 반복문, 조건문... 기본문법까지는 할 만하다. class를 만나기 전까지는. class는 파이썬 사용목적에 따라 몰라도 지장 없는 경우가 많다. 하지만 제대로 다루려면 class를 알긴 알아야 한다. 초보자 단계에서는 '이런게 있다고만 알아두세요'하고 넘어가는 경우가 많다. 일단은 넘어가자.


    2) 숫자야구 게임, 로또숫자 맞추기

    대부분 파이썬을 하면서 머리를 좀 써야하는 문제가 '숫자야구 게임, 로또숫자 맞추기' 둘 중 하나다. 조금 시간이 걸리지만 오랜만에 머리를 쓰는 느낌도 나고, 이런 게 코딩이구나 싶다. 이 때부터 약간의 불안감이 생길 것이다.

재밌긴 한데... 데이터분석, 웹사이트를 도대체 어떻게 만든다는 거지...




3. 파이썬으로 데이터분석, 웹프로그래밍을 하려면 ..

    파이썬 기본 문법으로는 데이터분석 절. 대 못한다. 'print, def, if, for, while, list, set, dict ...' 등으로 한 번 시도해보면, '....안되겟네' 싶을 거다. 웹 프로그래밍도 마찬가지이다. 피아노로 비유하자면 '건반 누르는 방법, 계이름'만 알려줘놓고 '체르니 30번, 학교종이 땡땡땡' 연주해보라는 꼴과 같다. '체르니, 학교종이 땡땡땡이'이 뭔지도 모른다. 근데 광고할 때는 건반누를 줄 알고, 계이름만 알면 다 연주할 수 있다고 한다.  

    

    택도 없다. 각종 음표와 장조, 연주기법 등 알아야 할 게 무수히 많다. 악보도 볼 줄 알아야 한다. 파이썬을 비롯한 모든 프로그래밍언어도 같다. 각종 라이브러리, 프레임워크를 알아야 데이터분석이니 웹프로그래밍이니 뭐든 할 수 있다. 파이썬 기본문법 + 라이브러리 기능(문법) + 프레임워크 기능(문법) 등 본인이 필요한 소프트웨어를 새로 배워야 한다. 파이썬 기본 문법을 알면 데이터분석툴, 웹프로그래밍툴 등 여러 기술을 활용할 수 있는 '첫 발걸음'을 내딛은 것이라 할 수 있다.


   1) pandas, scikit-learn, tensorflow

    데이터 분석을 하려면 알아야할 라이브러리들이 많지만 대표적으로 pandas, scikit-learn, tensorflow를 알아야 한다. pandas는 파이썬에서 엑셀처럼 표를 만지작거리는 기능을 하고 있다고 이해하면 된다. scikit-learn은 머신러닝 라이브러리, tensorflow는 딥러닝 라이브러리이다. 데이터 분석 상황, 보유 데이터 등에 따라 적합한 라이브러리를 선택하면 된다. 대부분은 다 해보고 결과가 가장 좋은 것을 선택한다고 한다.

판다스 기능


   2) flask, django, 호스팅 

    flask, django 모두 파이썬을 이용한 프레임워크이다. 라이브러리, 프레임워크가 다른 개념이지만 초보 단계에서는 구분 없이 프로그래밍 언어를 이용해 만든 특수한 목적을 위한 소프트웨어라고 생각하면 된다. flask는 기본적으로 기능이 구현되어 있지 않고, django는 모든 기능이 구현된 것이다. 모든 기능을 한 번씩 이용해보고 싶으면 django가 낫고, 내가 만든 모델을 웹사이트에 적용하고 싶으면 flask가 낫다.


    내가 만든 웹사이트를 나만 볼 수 있으면 의미가 없다. 나만 쓸 수 있는 커뮤니티, 검색엔진이 의미있을까? 없다. 이것을 다른 사람들도 이용할 수 있도록 해주는 과정이 호스팅이다. AWS-EC2, heroku, pythonanywhere을 보통 이용한다. 웹프로그래밍 배포까지 하려면 호스팅까지 해야한다.

https://www.zentut.com/jsp-tutorial/writing-the-first-jsp-page/



4. 파이썬도 복잡한데... 다른 언어가 낫지 않을까?

ㄴㄴ..

python : print('hello world!')

c++:     #include <iostream>

             int main() {
             std::cout << "Hello, World!" << std::endl;
             return 0;    
             }

파이썬에서 한 줄로 되는 것을 cpp(c++)에서는 4~5줄이 필요하다. cpp는 사람보다 컴퓨터가 이해하기 쉬운 언어다. 파이썬은 (사람한테) 쉽다. 그래서 같은 일을 하는 코드라도 파이썬이 더 짧은 반면 cpp는 더 긴 것이다. 파이썬을 배워보면 한 list 안에 string, integer, float, list 등 다양한 데이터 타입을 넣을 수 있다. cpp는 안된다. (cpp도 하려면 할 수 있다. 무지 복잡하다)


파이썬이 데이터분석하기 편한 이유가 이것이다. 어떤 데이터 타입이든 그냥 때려넣을 수 있기 때문이다. 당연히 cpp에 비해 코드가 실행되는 속도는 느리다. 하지만 분석가의 인건비, 코드 실행에 필요한 하드웨어 시설 및 유지비를 고려했을 때, 파이썬으로 코드를 짜는 것이 더 경제적이기 때문에 파이썬을 선호한다. 


굳이 데이터 사이언티스트가 아니더라도 아르바이트생보다 키오스크가 더 비용이 저렴하다는 것을 감안하면 체감하기 쉬울 것이다. 인건비보다 시설비가 싸게 먹힌다. 그래서 최근 파이썬의 인기가 치솟고 있다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari