해당 포스팅은 네이버 부스트캠프 AI Tech 학습 정리 자료임을 알려드립니다.
1. 강의 정리
최성철 교수님 - Basic computer class for newbies
컴퓨터 시스템, 파일시스템, 터미널 환경에 대해서 소개하는 강의입니다.
1) 컴퓨터 OS
컴퓨터 OS(Operating System)은 운영체제로 우리의 프로그램이 동작할 수 있는 구동 환경을 말합니다. 예를 들면, MacOS, Windows 등이 운영체제에 해당됩니다. 보통의 프로그램은 OS에 의존적이기 때문에 OS에 맞춰서 개발을 해야 합니다. 예를 들면, exe파일의 경우 윈도우 실행파일이기 때문에 MacOS에서는 바로 실행이 되지 않습니다. 우리가 사용하게 될 파이썬은 플랫폼 독립적인 언어로 어떤 운영체제에서 상관없이 사용할 수 있는 장점이 있습니다. 추후, 파이썬의 장점은 더 자세하게 알아볼 것입니다.
2) 파일 시스템
파일 시스템(File System)은 OS에서 파일을 저장하는 트리구조 저장 체계를 말합니다. 윈도우는 폴더 안에 다른 파일과 폴더들이 들어있는 형태를 본 적이 있을 것입니다. root를 중심으로 각각의 폴더는 가지가 뻗어나가는 것처럼 구성되어 있습니다. 이러한 형태를 트리구조라고 합니다.
파일의 기본 체계는 파일과 디렉토리로 구성되어 있습니다. 여기서, 파일은 컴퓨터에서 정보를 저장하는 논리적인 단위라고 표현하고 있으며, 파일명과 확장자로 구분됩니다. 또한 실행, 쓰기, 읽기 등을 할 수 있습니다. 디렉토리는 폴더라고 부르기도 하는데, 파일과 다른 디렉토리를 포함하는 기능을 가지고 있습니다.
우리는 컴퓨터 명령어를 통해서 파일의 위치에 접근하게 됩니다. 그때마다 경로를 알려줘야 컴퓨터가 해당 파일을 잘 꺼내올 수 있습니다. 여기서 우리가 사용할 수 있는 경로에는 2가지가 존재합니다. 첫 번째, 절대 경로는 루트 디렉토리부터 파일 위치까지의 경로를 전부 표현하는 형태입니다. 두 번째, 상대 경로는 현재 있는 디렉토리를 기준으로 원하는 파일까지의 경로를 표현하는 형태입니다.
위의 cmd창을 설명하면, 빨간 네모 박스는 절대경로를 활용해서 현재 directory의 위치를 변경하였고, 파란색 네모 박스는 상대 경로를 활용해서 현재 directory의 위치를 변경했습니다. 여기서 .과 ..의 차이가 있는데 .은 현재 directory를 말하는 것이고 ..은 현재 디렉토리를 기준으로 이전 디렉토리를 말하는 것입니다.
3) 터미널
터미널(Terminal)은 마우스가 아닌 키보드로 명령을 입력하는 프로그램입니다. 보통 마우스를 이용해서 클릭하는 GUI(Graphical User Interface), 키보드로 명령어를 입력하는 CLI(Command Line Interface)가 있습니다. 터미널에서는 프로그램을 작동하는 shell이 존재하는 데, shell마다 다른 명령어를 사용하기 때문에 환경에 따라 명령어를 알고 있어야 합니다.
최성철 교수님 - Python Overview
앞으로 사용하게 될 프로그래밍 언어 파이썬의 기초적인 내용에 대해서 다룹니다.
1) 파이썬의 시작
파이썬은 1991년 귀도 반 로섬이 발표하였는데 초기에는 C언어로 구현되었으며, 1989년 크리스마스에 할 일이 없어서 파이썬을 개발했다고 합니다. 파이썬은 그리스 신화 속의 괴물 뱀과 코미디 그룹 이름에서 유래했고, 로고를 보시면 뱀의 모양을 볼 수 있습니다.
2) 파이썬의 특징
첫 번째, 파이썬은 플랫폼 독립적인 인터프리터 언어입니다. 여기서 플랫폼이란 위에서 말했던 것처럼 OS(운영체제)를 말합니다. 그렇다면 플랫폼 독립적이다라는 말은 OS 상관없이 사용이 가능하다는 것을 뜻합니다. 그렇다면 여기서 인터프리터는 무엇일까요? 인터프리터는 소스코드를 바로 프로그램을 실행할 수 있게 지원하는 방법입니다. 인터프리터와 대조적인 것은 컴파일러가 있습니다. 두 가지를 아래에서 비교하겠습니다.
-
컴파일러
-
소스코드를 기계어로 먼저 번역하고, 해당 플랫폼에 최적화되어 프로그램을 실행합니다.
-
장점 : 실행 속도가 빠릅니다.
-
단점 : 한 번에 저장할 많은 메모리가 필요합니다.
-
주요 언어 : C, Java, C++, C#
-
-
인터프리터
-
별도의 번역 과정 없이 소스코드를 실행 시점에 해석하여 컴퓨터가 처리할 수 있도록 합니다.
-
장점 : 간단히 작성, 메모리가 적게 필요합니다.
-
주요 언어 : 파이썬, 스칼라
-
위에서 처럼 비교하고 있지만, 기본적으로 인터프리터 언어와 컴파일러 언어는 비슷합니다. 컴파일러 언어는 컴파일러가 OS에 맞춰서 만들어진 프로그램을 다시 한번 실행하는 과정을 거치는 것입니다. 인터프리터 언어나 컴파일러 언어 둘 다 기계어로 변환되는 과정을 거치게 됩니다. 다만, 우리 눈에는 인터프리터 언어는 바로 되는 것처럼 보이고, 컴파일러 언어는 한번 변환 과정을 거친 뒤에 작동하는 것처럼 보이는 차이가 있을 뿐입니다.
두 번째, 파이썬은 객체 지향 동적 타이핑 언어입니다. 여기서 객체 지향이라는 것은 실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램을 작성하는 방식입니다. 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있습니다. 동적 타이핑 언어란 프로그램이 실행하는 시점에 프로그램이 사용해야 할 데이터에 대한 타입을 결정하는 것을 말합니다. Java의 경우 최초에 변수를 지정할 때, int인지 설정해줘야 하지만 파이썬은 그런 설정 없이 알아서 인식하게 되어 있습니다.
2. 피어 세션 정리
자기소개 및 피어세션 규칙, 계획 설정
1) 피어세션 규칙
-
매주 모더레이터 변경
-
지각 금지
-
사정이 있을 경우 사전 공지(slack)
-
'님' 호칭 사용, 서로 존중하기
-
질문이 있을 경우 slack에 올려서 공유하고 피드백해주기
-
좋은 컨텐츠가 있다면 공유하기
2) 피어세션 플랜
-
학습 정리한 것 slack에 업로드하고 궁금한 것 질문하기
-
다양한 공부 피드백
-
1주 차 : 알고리즘 공부(파이썬 다지기)
-
3. 피드백
인터프리터와 컴파일러 언어에 대한 내용을 잘 모르고 있었는데, 오늘 수업을 통해서 이 부분에 대해서 조금은 더 알 수 있었던 것 같습니다. 부스트캠프 피어 모임은 처음이라 그런지 다들 조심스러운 느낌이었지만 그래도 앞으로 8주가 더 기대가 되는 것 같습니다. 오늘은 내일 피어 모임에서 리뷰할 알고리즘 문제를 풀고 마무리해야겠습니다. 앞으로 어떤 변화가 있을지 기대가 됩니다. 부스트캠퍼들 모두 화이팅입니다!