AIFFEL FD #01 개발 환경

이재준·2021년 7월 3일
0

AIFFEL Fundamental

목록 보기
1/25

AIFFEL 에서는 교육생들의 편의를 위해 클라운드 컨테이너를 제공하고 있다. 즉, PC 에 GPU가 장착이 되어있지 않더라도 클라우드를 통해 GPU 등의 가상의 컴퓨터 자원을 사용할 수 있는 것이다.

클라우드 컨테이너에 설치된 개발 환경은 다음과 같다.

  • Ubuntu 18.04
  • Python 3.7.9
  • TensorFlow 2.4.1

❓ 운영체제(Operating System : OS)

An Operating System is a program that manages a computer's hardware
운영 체재란, 컴퓨터 하드웨어를 관리하는 프로그램이다.

즉, 운영체제는 컴퓨터가 처리해야 하는 공통적인 기능들을 알아서 처리하여 사용자가 일일이 신경쓰지 않아도 되도록 만들어주는 프로그램이다.

가장 많이 쓰이는 운영체제로는 마이크로소프트에서 만든 Windows, 애플에서 만든 MacOS, 리눅스 토발즈가 만든 Linux 등이 있다.

Ubuntu 18.04

우분투는 Linux 를 기반으로 만들어진 운영체제이다.

Windows와 MacOS와 달리 Linux 는 자유롭게 수정 및 재배포가 될 수 있는 오픈소스 이다. Linux 는 특히 서버에서 가장 많이 사용되는 운영체제이다.
오픈소스라는 특성 때문에 Linux로 부터 파생된 운영체제 중 개인용 또는 데스크탑 환경에 최적화 된 버전이 우분투 이다.

Ubuntu 18.04에서 18.04는 버전 번호로, 2018년 4월에 배포되었다는 의미를 가진다.

Python 3.7.9

프로그래밍을 처음 접할 때 가장 먼저 선택하는 것이 주로 프로그래밍 언어이다. Python 은 여러 프로그래밍 언어 중 하나 이다. 파이썬은 특정한 문제를 풀기 위한 목적이기 보다는 범용적으로 만들어진 언어이다. 따라서 다양한 분야에서 활발히 사용 되고 있다.

특히, 머신러닝, 딥러닝과 관련된 다양한 라이브러리들이 파이썬으로 개발되며 AI 분야에서 파이썬은 매우 활발히 사용되고있다.
파이썬 뒤에 붙은 3.7.9 는 버전을 뜻한다.

TensorFlow 2.4.1

TensorFlow 는 인공지능에 관심 있는 사람이라면 한번쯤은 꼭 들어봤을 머신러닝, 딥러닝에 특화된 라이브러리이다.

라이브러리(Library) 란?
다른 프로그램의 구성 요소로 사용하기 위해 미리 만들어 둔 프로그램 조각이다. 즉, 자주 사용하는 기능을 모듈·패키지로 만들어 둔 것이다

즉, 텐서플로우는 머신러닝, 딥러닝을 위해서 공통적으로 많이 쓰이는 함수 또는 클래스들을 모아놓은 보따리라고 할 수 있다. 또한, 텐서플로우는

  • 구글에서 만든 오픈소스 라이브러리
  • 데이터 흐름(Data Flow Graph) 를 사용하여 수치 연산을 해주는 라이브러리
  • 기계 학습 분야의 프로그램을 만들기 위한 라이브러리

로써 머신러닝을 위한 다양한 오픈소스 라이브러리들 중 웹상으로 가장 많은 정보가 존재하여 압도적으로 많이 사용되고 있다.

이렇게 앞으로 AIFFEL에서 진행되는 교육은 우분투 라는 운영체제 안에서 파이썬 이라는 프로그래밍 언어로 텐서플로우 라는 딥러닝 프레임워크를 써서 진행될 것이다.


❓ 터미널(Terminal),CLI, IDE


개인 PC에 우분투 운영체제를 설치했다면 위와 같은 터미널 환경을 CLI 라고 한다.

CLI (Command Line Interface) 란?
명령어를 통해 파일 또는 폴더를 관리, 실행하는 장치

우분투에서는 Ctrl+Alt+T 로 터미널을 실행시킬 수 있다. Windows 에서는 마우스를 통해 관리하지만, 우분투에서는 명령어를 통해 수행하므로 터미널과 명령어에 익숙해져야한다.

터미널 상에서 파이썬을 사용하면 코드가 한 줄 씩 실행되기 때문에, 길고 복잡한 코드를 다루는 데에 불편함이 있다. 이러한 불편함을 극복하기 위해 다양한 IDE 가 존재한다.

IDE (Integrated Development Environment) 란?
통합 개발 환경으로써 다양한 코드 편집 기능을 통해 코드 작성을 편리하게 해주고, 디버깅 등의 기능 등을 할 수 있는 프로그램

파이썬에는 다양한 IDE 가 존재하며 (Pycharm, Spyder, PyDev, Idle, Wing 등) 나는 그 중에서 Visual Studio Code 를 사용한다.


❓ 가상환경 (Virtual environment)

가상환경은 프로젝트마다 특정 패키지의 서로 다른 버전이 필요하거나 패키지간 충돌 위험이 있을때, 각 프로젝트를 독립된 공간에서 사용할 수 있도록 하는 기능이다.

패키지 (Package) 란?
특정 기능을 위한 여러 함수 또는 클래스를 담고 있는 보따리, 라이브러리 나 모듈과 비슷한 개념

파이썬 가상환경을 관리하는 툴은 다양하지만 이 중에서 아나콘다(Anaconda) 가상환경 관리자를 사용할 것이다. 아나콘다는 데이터 사이언스와 관련된 여러 라이브러리를 포함하여 사용하기 편리하다는 특징을 가지고 있다.

profile
🏫 𝑲𝒚𝒖𝒏𝒈 𝑯𝒆𝒆 𝑼𝒏𝒊𝒗. / 👨‍🎓 𝑪𝒐𝒍𝒍𝒆𝒈𝒆 𝒐𝒇 𝑬𝒏𝒈𝒊𝒏𝒆𝒆𝒓𝒊𝒏𝒈

0개의 댓글