[멋쟁이사자처럼 데이터분석] 파이썬 개요, 개발환경 구축

블체·2025년 4월 6일

Notion에서 정리한 내용을 공유용으로 옮긴 내용입니다.
양식과 구성의 어색함이 있을 수 있습니다.

03/31(월) 학습내용을 바탕으로, 당일이 아닌 추후 업로드하였음

OT를 소요시간 착각으로 앞부분만 듣고
다음 일정을 위해 차를 타러 급하게 가느라 첫날 눈치를 좀 봤다...
그리고 하필 강사님이 자리 비우지 말아라 하시면서 출석 어쩌구 얘기를 꽤 하셨음ㅋㅋㅋ아 찔려

그래도 처음 시작하는 과목인 파이썬은 기존에 유튜브로 공부를 좀 했던 파트라 조금 손쉽게 들을 수 있어 다행이었다. (응 백준 브론즈)

목표는 진짜 꾸준히 출석하기


Python 개요

프로그래밍 언어의 발전

  • 프로그래밍 언어의 시초
    • 포트란 : 수학 계산 최적화
    • Algol : 최초의 프로그래밍 언어. 포트란에 대항하여 만들어짐 = A 언어
    • B 언어 = Bell 언어
    • 그 후 C 언어 → C++ → C#
      ++에 ++이 아래로 더 붙어서 # 모양. 아이디어 미쳤
  • C 언어
    • OS를 만들기 위해서 만든 언어
  • OS 종류
    • 유닉스 : 최초의 OS - 슈퍼,워크스테이션 / IOS 등
    • 리눅스 : 라이트 유닉스 - 웹서버/안드로이드에서 사용
    • Window

플랫폼

  • 플랫폼이란?
    • ex) 배민 → 고객과 식당과 배달원을 연결해줌
      but 그냥 연결하는 것이 아니라 각각을 위한 어플을 만들어서 그 어플에 맞춰 주문/배달/음식 제공
    • 즉, 이미 만들어진 곳에서 들어와서 돌아가는 것
    • 규칙, 규격에 맞춰서 작업하면 언제든 사람들이 더 들어오고 확장할 수 있음 이래서 초반에 플랫폼 시장에서 잘 만들어 놓으면 독과점이 쉬워지는…
    • 기차들을 '플랫폼'에 맞춰서 만들었기 때문에 승객이 KTX를 타든 1호선을 타든 타고 내릴 수 있음

독립성

개념

  • ‘플랫폼 독립적’에서 플랫폼은 'OS'를 말함
  • 독립적 ↔ 종속적
  • 만약 Window에서 만들어서 Window에서만 돌아간다면 → 플랫폼에 종속적

독립성/종속성 비교

플랫폼에 독립적이냐 종속적이냐를 잘 알고 있어야 함

  • 독립적인 소프트웨어
    • 느림, 메모리 많음
    • 개발자가 만든 코드를 윈도우/맥/리눅스 모두에서 실행 가능
    • 결과물이 실행 파일로 나오는 것이 아님. 바이트 코드나 스크립트 형태로 도출되며, 인터프리터나 가상 머신을 통해 실행 (by GPT)
    • JAVA, Python : 플랫폼 독립적
  • 종속적인 소프트웨어
    • 장점 : 메모리 덜 사용, 처리속도 빠름

      OS에서만 되게 만들면, 그냥 그 OS에서 지원하는 기능?을 갖다 쓰면 되기 때문에 실행파일로 결과물 도출

      실행파일 용량이 적고, 속도가 빠름

      그 OS에 최적화되면 메모리, 처리속도에 여유가 있으므로, 그래픽에 더 투자할 수 있음

    • 단점 : 각각 OS에 맞춰서 개발자가 여러 개를 만들어야 함

    • C 언어 계열 : 플랫폼 종속적

    • 게임은 주로 종속적 ← 속도가 매우 중요

독립성의 이해/비유

ex) 라틴어 책을 읽고 싶다면 취할 수 있는 방법

  • 여기서 "출판사 = 개발자"
  1. 한국 버전 번역서 읽기 = 플랫폼에 종속적

    • 출판사 → 한국 번역서 출간, 중국 번역서 출간, 일본 번역서 출간…

      • 출판사 : 나라별로 여러 개 각각 판매. 한 번역서는 그 나라에서만 가능
      • 어느 나라에서 많이 읽힐지 고려하여 출간
      • 많은 돈, 많은 시간
      • 독자 : 쉽게 읽을 수 있음. 자신에게 편한 언어. 독자 친화적

      → 개발자가 여러 OS로 만들기와 동일

      • 어느 나라(플랫폼)에서 많이 쓰일지 고려하여 개발

      • 많은 비용/시간 소요

      • 개발사의 어려움

  • 번역가가 읽어주기 = 플랫폼에 독립적

    • 출판사는 라틴어로 된 책만 출간

    • 라틴어를 한국어로 실시간으로 통역하는 사람 고용

      라틴어를 일본어로 실시간으로 통역하는 사람 고용

      → 라틴어로 된 책을 사면 → 그 나라의 통역가 보내서 읽어줌

    • 책은 1번만 쓰임

      통역가 미리 대기시키면 됨

    • 초기 투자/비용만 들이면 됨

    • 매번 실시간으로 한 명 한 명 배당하므로 메모리 많이 사용, 처리속도 느림

    • but 프로그래밍 개발에 주류로 쓰임. Why?

      • 하드웨어의 발전 → 속도 차이 현저히 감소

파이썬

  • 플랫폼에 독립적
    • OS에 맞는 언어 형태로 번역해 줌
    • VM(python virtual machine) : 인터프리터 내장 → 파이썬 코드를 win/mac 등등으로 번역해줌
  • 어떤 코드를 만들어도 그 OS에 맞춰서 동작함 (윈도우용 파이썬/맥용 파이썬을 설치한다면)
  • GPL 라이센스 : 수정/배포에 자유로움
  • 개방형 언어 : 여러 개발자가 다같이 발전시킬 수 있음
  • 수치 연산 빠르게 가능 : Torch - Numpy
    • AI/ML에서 학습/추론이 중요
    • 추론은 금방 가능
    • but 학습에는 많은 시간이 소요
      • 대규모 연산은 시간이 오래 걸림
      • Numpy → 빠른 배열 연산 가능
      • 계산 단축을 위해 GPU 연산 필요 → Torch : GPU 연산 지원
      • 파이썬에 이미 PyTorch 내장, Numpy와 변환도 쉬움

개발도구

방식

  • 일반 코딩 방식 : 실행하면 쭉 실행
    컴퓨터에서 동작하는 프로그램 만들 때 용이
    웹서버, 데몬, 사용자가 사용하는 컴퓨터용 프로그램 등
  • 노트북 방식 : 원하는 부분 원할 때 실행
    실행 결과가 바로바로 코드 아래에 삽입
    데이터 분석 등등

→ 수업에서는 노트북 방식 사용
vscode로 해보긴 하고 그 후 아나콘다 이용

종류

  • VS Code : 마이크로소프트 개발. 다양한 개발 분야 지원. 가벼움
    • 단점
      플러그인 많음
      모르면 쓰기 힘듦
      프로젝트 폴더 관리의 호불호 (강사님의 불호ㅎㅎ)
  • PyCharm : Jet Brains 개발. 파이썬용 개발 도구
    • 단점 : 무거움. 기능이 많아서 용량이 큼
  • jupyter : notebook 방식, 웹브라우저 사용. (데이터 분야에서 많이 사용)
    • 단점 : ai 어시스턴스 없음

개발환경 구축

1. python 설치

  • python.org
  • 다운로드
  • 설치시 '반드시' add python x.x to PATH 체크

2. vscode 설치

그냥 설치-쭉 하고

Extention에서 python 설치

3. 아나콘다 설치

  • anaconda 사이트
  • Free Download → Skip 후 OS 맞춰 설치
  • 업데이트 하면 느리므로 하지 말자!

jupyter notebook 실행방법

  • anaconda navigator → jupyter notebook
  • anaconda prompt → jupyter notebook
  • 프롬프트에서 ‘인터넷 주소 부분’ 컨트롤+클릭 or 복붙

4. 주피터 노트북 사용

  • PDF 만드는 법
    1. Save as 에서 HTML 로 변환
    2. HTML 켜서 인쇄-PDF로 저장
  • 만약 ipynb 너무 길어서 안 열리면 txt로 떠서 빼서 저장하기 너무 많이 출력하면 그럴 수 있음
  • 안드로이드 뷰어 : ipynb viewer pro (200원)

기타 : 빅데이터 관련 추천

강사님이 봤으면 좋겠다고 추천해 주신 목록들

  • Morgan AI로 만든 예고
  • 시사기획 창, 빅데이터 세상을 바꾸다
    빅데이터, 비지니스를 바꾸다
  • 스타트업 마녀(드라마)

아 벨로그 어렵네...양식 엉망이다 진짜

공부 후기라기에는 오늘은 개발환경 구축이 메인이었던 느낌이다
역시 제일 어려운 건 설치...

이게 제일 어렵고 제일 귀찮아
그래도 같이 공유해주는 사람이 있으니까 다들 편하게 하실 수 있었던 듯
(부럽)

profile
벨로그 적응할 수 있을까

0개의 댓글