[부스트캠프][WK-01 / Day1] 파이썬 기초
네이버 부스트캠프/LEVEL-1

[부스트캠프][WK-01 / Day1] 파이썬 기초

1. 강의 내용

Basic computer class for newbis (최성철 교수님)

1) 컴퓨터 OS

OS(Operating System)는 운영체제로, 우리의 프로그램이 동작할 수 있는 구동 환경이며 그 예시로 MacOS, Windows 등이 있습니다. 프로그램은OS에 의존적이기 때문에 OS에 맞춰서 개발해야 합니다. 하지만 파이썬은 플랫폼 독립적인 언어로 운영체제에 상관없이 사용할 수 있습니다.

2) 파일 시스템

파일 시스템(File system)은 OS에서 파일을 저장하는 트리구조 저장 체계 입니다. 여기서 트리구조란, 폴더 안에 다른 폴더와 파일들이 들어가 있는 형태를 말합니다.

파일의 기본 체계는 파일(File)과 디렉토리(Directory)로 구성되어 있습니다. 여기서 디렉토리는 폴더로 불리기도 하며 파일과 다른 디렉토리를 포함할 수 있습니다. 파일은 컴퓨터에서 정보를 저장하는 논리적인 단위로, 파일명과 확장자로 식별되며 실행, 쓰기, 읽기 등을 할 수 있습니다.

컴퓨터 파일의 고유한 위치를 경로라고 하는데, 경로에는 절대 경로와 상대 경로 2가지가 존재합니다. 절대 경로는 루트 디렉토리부터 파일위치까지의 경로이며 상대 경로는 현재 있는 디렉토리로부터 타깃 파일까지의 경로입니다.


-> 절대 경로 예시


-> 상대 경로 예시

3) 터미널

터미널은 마우스가 아닌 키보드로 명령을 입력하는 프로그램으로, Text를 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계인 CLI(Command Line Interface)에 해당됩니다. Windows에는 CMD window, Mac과 Linux에는 Terminal이 있으며 Windows의 경우 cmder도 권장됩니다.

각 터미널에서는 프로그램을 작동하는 shell이 존재하는데, shell 마다 다른 명령어를 사용합니다.


파이썬 개요 (최성철 교수님)

1) 파이썬의 시작

 

1991년 귀도 반 로섬이 발표했는데 처음에는 C언어로 구현되었습니다. 그리스 신화속의 괴물 뱀과 몬티 파이썬이라는 코메디 그룹의 이름에서 유래되었습니다.

 

2) 파이썬의 특징

 

1. 플랫폼 독립적인 인터프리터 언어

플랫폼은 OS를 말하는데 플랫폼 독립적이라는 것은 OS에 상관없이 사용 가능하다는 뜻입니다. 인터프리터는 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법입니다.

 컴파일러

  • 작동방식: 소스코드를 기계어로 번역, 해당 플랫폼에 최적화
  • 장점: 실행속도가 빠름
  • 단점: 한번에 많은 기억장소 필요
  • 주요 언어: C,자바, C++, C#

 인터프리터

  • 작동방식: 별도의 번역과정 없이 소스코드를 실행시점에 해석.
  • 장점: 간단히 작성, 메모리가 적게 필요
  • 단점: 실행속도가 느림
  • 주요 언어: 파이썬, 스칼라

2. 객체 지향 동적 타이핑 언어

객체 지향은 실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램을 작성하는 것으로 하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있습니다. 동적 타이핑 언어란 프로그램이 실행하는 시점에 프로그램이 사용해야할 데이터에 대한 타입을 결정하는 것입니다.


Variables (최성철 교수님)

1) Variable & Memory

 

가장 기초적인 프로그래밍 문법 개념으로 데이터를 저장하기 위한 메모리 공간의 프로그래밍상 이름.

값을 저장하는 장소로 변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 메모리 주소에 할당됨.

 

2) Basic Operations

 

간단한 연산에는 간단한 사칙연산과 문자열 처리 등이 있음.

유형설명

수치자료형 정수형 integer 양/음의 정수
  실수형 float 소수점이 포함된 실수
문자형   string 따옴표('/")에 들어가 있는 문자형
논리/불린 자료형   boolean 참 또는 거짓

파이썬은 데이터의 Type을 따로 선언할 필요가 없습니다. 따로 선언해주지 않아 판단하는 시간 때문에 더 느리기는 하지만 그만큼 동적이고 편합니다.

 

+, -, *, / 같은 기호들을 연산자라고 칭합니다. 해당 연산자에 의해 계산 되는 숫자들을 피연산자라 칭하며 문자간에도 +연산이 가능합니다.

 

int(), float(), str() 등을 이용하여 데이터의 타입을 변경해 줄 수 있으며 type() 함수를 통해 변수의 데이터 타입을 확인할 수 있습니다.

 

3) List

List 또는 Array는 시퀀스 자료형으로 여러 데이터들의 집합입니다.

 

  • List의 특징
  1. 인덱싱 (indexing)
    : list에 있는 값들은 주소(offset)을 가지는데, 해당 주소를 사용해 할당된 값을 호출
  2. 슬라이싱(Slicing)
    : list의 값을 잘라서 쓰는 것으로, 주소 값을 기반으로 부분 값을 반환합니다.
  3. 리스트의 연산
    : concatenation, is_in, append(리스트에 추가), extend(리스트에 새로운 리스트 추가), insert(원하는 주소에 값 추가), remove(값 제거), del(주소로 값 제거) 등 활용
  4. 메모리 저장 방식
    : 해당 리스트 변수에는 리스트 주소값이 저장됨. '='는 같다가 아닌 메모리 주소에 해당 값을 할당한다는 의미
  5. 패킹과 언패킹
    • 패킹: 한 변수에 여러 개의 데이터를 넣는 것
    • 언패킹: 한 변수의 데이터를 각각의 변수로 반환
  6. 이차원 리스트
    : 리스트 안에 리스트를 만들어 행렬(Matrix) 생성. 이차원 리스트 복사 시 copy.deepcopy()를 사용해 복사해야 원본이 바뀌어도 따라 바뀌지 않습니다.

Function and Console I/O (최성철 교수님)

1) Function

 

function은 어떤 일을 수행하는 코드의 덩어리로 코드를 논리적인 단위로 분리합니다. 반복적인 수행을 1회만 작성 후 호출할 경우 사용합니다. 캡슐화를 통해 인터페이스만 알면 타인의 코드를 사용하기 쉽게 도와줍니다.

  • 함수 선언 문법
    구성요소: 함수 이름, parameter, indentation, return value(optional)
def 함수이름(parameter):
    수행문 #1(statements)
    수행문 #2(statements)
    return <반환값>

parameter 유무, 반환 값(return value) 유무에 따라 함수의 형태가 다릅니다.

 

2) Console in/out

 

input() 함수는 콘솔창에서 문자열을 입력 받는 함수로 str 타입만 받을 수 있습니다. 숫자가 필요할 땐 float, int 등을 사용하여 바로 형 변환이 가능합니다.

 

3) print formatting

 

(1) % string
– ex) print(‘%s %s’ % (‘one, ‘two))
(2) format 함수
– ex) print(’{} {}’ % (‘one, ‘two))
(3) fstring
– ex) print(f’{one} {two}’})

2. 과제 수행 과정 / 결과물 정리

필수 과제 1,2,3 완료
numpy, re 패키지를 활용해 문제 해결
strip(), lower(), split(), join() 등의 함수를 사용해 텍스트 데이터를 처리

3. 피어세션 정리

조이름 정하기
그라운드 룰 정하기
주차 계획 세우기
협업 툴 정하기

4. 학습 회고

첫 강의라 기초적인 내용들을 강의로 다뤘습니다. 기존에 놓치고 지나가 제대로 알지 못했던 부분을 복습하여 유익했습니다.