SQL

[2강] 개발환경 세팅 및 Jupyter Notebook 기초 실습

사과 반쪽 2024. 3. 13. 21:03

한국기술교육대학교 온라인 평생교육원 - Python 기반 SQL 프로그래밍 두 번째 강의를 듣고 정리한 내용입니다

요약

  • 본 강의에서는 Anaconda 환경에서 Jupyter 노트북을 사용한 실습환경을 세팅했다.
  • 그렇지만 MacOS를 사용하는 나로서는 조금 다른 방식으로 실습 환경을 세팅했다. (Miniconda, conda env, vscode)
  • Jupyter notebook에서 셀 실행, 복사, 붙여넣기, 되돌리기, 셀 삭제 및 셀 추가, 모드변경 등을 위해 사용하는 단축키가 있다.

실습 환경 세팅

  • 강의에서는 윈도우 기준으로 설명하고 있다.
    • Win 7 64bit 이상
    • Win 10 64bit 권장
    • 안정된 버전의 Anaconda3 2021.05 버전 사용 여기에서 해당 버전을 다운로드할 수 있다.
    • 설치할 때 환경변수 추가하기.

내가 따라갔던 방법

  • 강의와 다르게 나는 맥OS와 visual studio code라는 통합 개발환경을 사용한다. vscode는 여기서 다운받을 수 있다. 설치 가이드는 여기서 확인
  • 조금 오래 된 컴퓨터라, 그리고 메모리가 넉넉하지 않은 상황이라 miniconda를 설치해서 사용하기로 했다.
  1. Anaconda 말고 Miniconda 설치 및 초기화 (설치 및 초기화 가이드는 여기에서!)
  2. miniconda를 설치하고 나서 가상환경 만들기 (1번에 이어 터미널에서 진행하면 된다.) python 3.11을 고집(?)하는 이유는 에러 메시지를 조금 더 자세히 잘 가리켜줘서. 다른 이유는 없다. 권장 버전은 3.8이었던 것 같다. 그래도 실습 진행하면서 버전 때문에 에러가 난 건 없었다.
    이후로 뭔가를 진행할지 물어보면 y라고 말해준다. (옛날 옛적 프로그램 설치할 때 모든 질문에 '예' 버튼만 누르던 기억을 되살리면 된다.)
  3. conda create -n <가상환경 이름> python=3.11
  4. 가상환경 활성화 시키기
    우선 가상환경이 어떤 게 있는지 확인하기 위해서는 아래와 같이 입력한 후 확인하면 된다.그 다음 새로 만든 가상환경을 활성화시킨다.
  5. conda activate <가상환경 이름>
  6. conda env list
  7. 패키지 설치
    가상환경이 활성화된 상태에서 추가 패키지를 설치한다. 패키지 버전을 고집할 것이 아니라면 그냥 conda install로 해도 충분하다. 여기까지 진행하면 conda 설치는 끝!
  8. conda install pandas numpy matplotlib

주피터 노트북 사용법

  • 주피터 노트북에서는 코드 일부를 실행하며 결과를 확인할 수 있고, 결과 자체를 저장해 다른 사람에게도 공유할 수 있다.
  • 일단 vscode에서 작업 가능한 폴더를 만들어두면, 그곳에서 ipynb 확장자의 파일을 하나 만들어서 사용하면 된다.
  • 주피터 노트북에서는 셀이라는 단위로 구성되는데, 각 셀에 텍스트, 코드 등의 내용을 포함할 수 있다.
    이미지
  • 현재 셀 실행하기 - cmd + enter 또는 ctrl + enter: 선택된 셀을 실행한 후 밑에 새로운 셀 추가하기.
  • 현재 셀 실행한 후 아래 셀로 넘어가기 - shift + enter: 선택된 셀을 실행한 후 밑에 있는 셀로 이동한다.
  • 편집모드 진입하기 - Enter: 특정 셀을 한 번 클릭한 후 엔터를 누르면 편집모드로 진입한다.
  • 현재 셀 위에 셀 삽입하기: A
  • 현재 셀 밑에 셀 삽입하기: B
  • 현재 셀 복사하기: C
  • 현재 셀 잘라내기: X
  • 현재 셀 밑에 복사한 셀 붙여넣기: V
  • 선택한 셀 지우기: DD (D 두번 누르기)
  • 지운 셀 되돌리기: Z
  • 코드 모드로 바꾸기: Y
  • 마크다운 모드로 바꾸기: M
  • 저장하기: cmd + S 또는 윈도우에서는 ctrl + S

이외에도 다양한 내용 참고는 vscode 가이드주피터 노트북 단축키를 참고해볼 수 있다.

키워드 정리

  • 가상환경: 목적별로 독립된 프로그래밍 언어 실행환경. 실습에서 사용한 conda는 Anaconda 배포판에 포함되며 패키지 및 환경 관리 도구로 사용된다.
    예를 들어 집에 들어있는 여러 개의 방이 각각의 목적에 따라 부엌, 침실, 서재 등으로 분리되어 있듯 프로그램이나 프로젝트를 수행할 때에도 독립된 공간을 사용하면 효율적으로 진행할 수 있다. 가상환경의 장점은 다음과 같다.
    • 패키지 격리: 각각의 가상환경은 독립된 인터프리터와 라이브러리를 가지기 때문에, 프로젝트마다 필요한 버전을 달리 해 설치할 수 있다.
    • 의존성 관리: 프로젝트별로 필요한 패키지 및 라이브러리를 설치해 프로젝트 의존성을 관리할 수 있다. 다른 프로젝트와의 라이브러리 버전 충돌을 미연에 방지할 수 있다.
    • 환경 일관성: 여러 개발환경 간에 일관성을 확보해 프로젝트의 동작을 일관되게 유지할 수 있음.
  • Anaconda: 파이썬(및 R)의 패키지와 버전 관리를 돕는 오픈소스 패키지 관리자 이름. 스타터팩 같은 느낌이다. 주요 특장점은 다음과 같다.
    • 파이썬의 주요 패키지들을 설치하고 관리를 간편하게 해준다.
    • 데이터과학과 기계학습 등에서 사용되는 다양한 라이브러리와 패키지를 제공한다.
    • Anaconda 설치 시 python, jupyter notebook spyder 등의 통합 개발 환경도 제공된다.
  • miniconda: anaconda처럼 conda 패키지 관리자를 기반으로 하지만, anaconda에 비해 가볍고 간편하다는 장점이 있다.
    • 경량화된 설치: 단순히 conda 패키지 관리자와 몇 가지 기본 패키지만 포함됨
    • 효율적인 자원관리: miniconda로 시스템에 필요한 최소한의 패키지만 설치하고, 필요에 따라 패키지 추가 설치 가능. 사용자가 시스템 자원을 더욱 효율적으로 관리할 수 있도록 해줌
  • Jupyter notebook: 대화형 컴퓨팅 및 데이터 시각화를 지원하는 웹 기반 인터페이스. 여러모로 R-studio와 비슷하다.
    • 코드, 텍스트, 수식, 시각화 결과를 포함하는 문서를 작성하고 공유할 수 있음.
    • 구성: JSON 형식의 문서로 구성된다. 자세한 부분은 사이트 참고.
      • Metadata: 노트북 제목, 작성자, 생성시간 등
      • Cell: 주피터 노트북의 구성단위. 코드나 텍스트의 내용을 포함함
      • cell type: 코드 셀과 텍스트 셀로 구성. 코드셀은 프로그래밍 언어 코드, 텍스트셀은 마크다운 형식으로 작성함
      • 실행 결과: 코드 셀을 실행하면 셀 아래에 해당 결과가 출력됨
      • 실행 순서: 실행 순서에 따라 번호가 부여되며 셀 왼쪽의 대괄호에 표시됨
  • Python: 네덜란드 프로그래머 귀도 반 로섬이 크리스마스 휴가 기간에 개발한 언어. 배우기 쉽고 확장성이나 모듈성이 뛰어나다. 데이터과학, 웹 개발, 인공지능 등 다양한 분야에서 사용된다. 사용자가 많은 오픈소스 프로그램
  • Visual Studio Code: Microsoft가 개발한 통합 개발환경(IDE; Individual Development Environment). 특장점은 다음과 같다.
    • 다양한 언어 지원: Python부터 시작해서 JS, Java, C++, C#, Ruby 등 다양한 언어의 코드 편집 지원
    • 쉬운 코드편집: 코드 하이라이트, 자동완성, 포맷팅, 리팩토링 등의 기능이 있어 코드의 유지 보수가 수월하다고.
    • 통합된 디버깅: 다양한 언어 및 프레임워크에 대한 디버깅 지원
    • 확장성: 필요할 경우 다양한 확장프로그램을 설치할 수 있음.
  • 인터프리터: 소스 코드를 읽고 실행하는 프로그램. 고수준 언어(프로그램 언어)를 기계어로 변환하고 실행하는 역할을 함.
  • 라이브러리: 재사용 가능한 코드의 집합으로, 특정 기능이나 목적을 수행하기 위해 작성된 코드 모음. 함수, 클래스, 모듈 등의 형태로 제공되며, 필요한 기능을 호출하여 사용할 수 있다.
  • 패키지: 관련된 코드, 리소스 및 설정 파일 등을 모아놓은 디렉터리 혹은 압축파일. 종종 여러 라이브러리를 포함하기 때문에 라이브러리의 상위개념으로도 볼 수 있다.
  • 의존성 관리: 소프트웨어 개발에서 사용되는 외부 라이브러리나 프레임워크의 의존성을 관리하는 것. 프로젝트에 필요한 라이브러리나 패키지의 버전이 다르기 때문에 의존성 관리가 필요해진다.

참고자료

'SQL' 카테고리의 다른 글

[1강] RDBMS와 데이터 모델링의 3단계  (1) 2024.03.03