[패스트캠퍼스 환급챌린지]딥러닝 42

[패스트캠퍼스]Chapter 3. 딥러닝을 위한 파이썬 03-05 문자열 자료형

03-05 문자열 자료형 저번 포스트에서 수 자료형을 언급할 때 정말 간략하게 문자열 자료형이 언급되었는데, 이 문자형 자료형은 여러 프로그래밍 언어에서 널리 사용되고, 사용자 친화적인 프로그램을 만들 때 기본적인 조건입니다. 파이썬의 문자열은 작은따옴표 또는 큰따옴표를 사용합니다. 둘 중 아무거나 써도 상관 없지만, 작은따옴표로 시작했다면 반드시 작은따옴표로 마무리되어야 하며 큰따옴표의 경우도 마찬가지입니다. a = "Hello" b = 'Python' print(a) print(b) 파이썬 문자열의 특징 중 하나로 문자열끼리의 덧셈이 가능합니다. 문자열끼리 덧셈을 수행하면, 여러 문자열이 연결되어 하나로 통합된 문자열을 반환합니다. 다만, 실무에서 파이썬을 쓸 때는 그렇게까지 권장되는 방법은 아닙니다..

[패스트캠퍼스][환급 챌린지]Chapter 3. 딥러닝을 위한 파이썬 03-04 수 자료형

이틀 쉬다가 왔습니다. 다시 시작해보죠! 03-04 수 자료형 모든 프로그래밍 언어가 그렇듯 파이썬도 여러 가지 다양한 수 데이터를 처리하기 위한 문법을 제공합니다. 앞선 포스트들의 예제에서도, 오늘 정리할 정수형, 실수형 예제들을 (설명하지 않고 넘어갔을 뿐) 처리하는 방법들을 사용해왔습니다. 이번 포스트에서는 변수와 상수의 개념을 이해한 뒤에 파이썬에서 수 데이터를 어떻게 처리하는 지를 알아보고, 사칙연산을 비롯한 간단한 연산을 어떻게 수행하는지 알아보겠습니다. 변수와 상수 가장 보편적인 개념부터 시작해보겠습니다. 프로그래밍 언어에서의 변수와 상수는 수학에서의 그것들과 유사합니다. 먼저 수학에서의 정의를 해보면... 변수 (Variable): 정해지지 않은 값을 표현하기 위해 사용하는 기호, 변하는 ..

[패스트캠퍼스][환급 챌린지]Chapter 3. 딥러닝을 위한 파이썬 03-03 파이썬 기본 입출력

03-03 파이썬 기본 입출력 파이썬을 비롯한 모든 프로그래밍 언어는 기본적으로 입출력 함수를 가지고 있습니다. 우리가 어떤 연산을 했다고 하면, 이 연산 결과는 아직 컴퓨터만 가지고 있고, 사용자가 그걸 확인할 수는 없습니다. 출력 명령을 내리지 않았기 때문이죠. 인질 그래서 연산 결과를 우리가 확인해야 한다면 출력 함수를 필히 따로 써줘야 합니다. 반대로, 계산기 프로그램을 만든다고 했을 때, 우리가 원하는 수를 매번 코드에 변수 값을 바꿔가면서 연산하는 건 불편하겠죠. 따라서 이미 GUI까지 완성된 프로그램에 입력하기 위해서는 이러한 데이터 입력을 받아주는 함수도 필요합니다. 파이썬의 입출력 방식 파이썬의 입출력 방식은 크게 두 가지로 구분됩니다. 표준 입출력 (a.k.a 기본 입출력) 프로그램이 ..

[패스트캠퍼스][환급 챌린지]Chapter 3. 딥러닝을 위한 파이썬 03-02 파이썬 로컬 개발 환경

03-02 파이썬 로컬 개발 환경 이전 포스트에서 소개한 온라인 개발 환경은 편리하긴 하지만 한계점도 있었습니다. 가령 우리가 인터넷에 접속할 수 없는 오프라인 환경에서 개발을 해야 한다면 온라인 개발 환경을 전혀 사용할 수 없겠죠. 또는 본격적인 딥러닝 소프트웨어와 같이 며칠 동안 24시간 내내 돌아가야 하는 코드를 개발해야 하는 경우, 온라인 개발 환경에 따라 사용 제한 시간이 걸려 있는 경우가 있으므로 지속적으로 사용하는 데 한계가 존재합니다. 따라서 본격적인 개발을 위해서는 로컬 개발 환경을 구축할 필요가 있습니다. 여기서 로컬은 사용자가 직접 사용하는 컴퓨터를 의미하며, 반대되는 개념으로 리모트 또는 서버 등과 비교되고는 용어입니다. 들어가기에 앞서: 이번 포스트에서 소개할 프로그램의 설치는 모..

[패스트캠퍼스][환급 챌린지]Chapter 3. 딥러닝을 위한 파이썬 03-01 파이썬 온라인 개발 환경

Chapter 3. 딥러닝을 위한 파이썬 자, 드디어 본격적으로 파이썬을 파는 날이 되겠습니다. 하지만 본격적으로 파이썬의 문법과 사용 방법을 알기에 앞서서, 파이썬을 쓸 수 있는 환경을 어떻게 만드는지를 알아야 합니다. 소위 말하는 '개발 환경'은 프로그램을 개발하는 일련의 과정을 한 프로그램 안에서 수행할 수 있도록 해주는 환경을 말합니다. 오늘은 먼저 별도의 프로그램을 설치하지 않더라도 곧바로 개발을 할 수 있는 온라인 개발 환경부터 설명하겠습니다. 03-01 파이썬(Python) 온라인 개발 환경 온라인 개발 환경은 별도의 프로그램 설치 없이, 웹 브라우저(크롬, 엣지, 사파리 등)만 있으면 사용할 수 있는 장점이 있습니다. 간단한 프로그램의 작성과 디버깅, 테스트에 유용하지만, 프로그램 실행 결..

[패스트캠퍼스][환급 챌린지]Chapter 2. 딥러닝을 위한 자료구조 02-10 그래프의 표현

02-10 그래프의 표현 드디어 자료구조의 마지막 파트입니다. 자료구조 이야기하다가 뜬금없이 그래프 얘기가 나와서 처음엔 '....?' 싶었습니다. 그게 우리가 아는 그래프랑 조금 다른 개념까지 포괄하는 것을 깨닫는 데는 단 5분도 걸리지 않았습니다... 애초에 그래프 자료구조를 얘기하기는 것이기도 했고 말이죠. 딥러닝 분야에는 GCN(Graph Convolutional Network)라는 학습 알고리즘이 따로 존재할 정도니 이번 파트도 잘 배워보죠. 그래프 def) 그래프 (Graph): 사물을 정점(vertex 또는 node)과 간선(edge)으로 나타내기 위한 도구 그래프를 수치적으로 나타나는 데에는 크게 2가지 방식이 있습니다. 인접 행렬(adjacency matrix): 2차원 배열을 사용하는 ..

[패스트캠퍼스][환급 챌린지]Chapter 2. 딥러닝을 위한 자료구조 02-09 우선순위 큐

02-09 우선순위 큐 우선순위 큐는 다양한 알고리즘 및 프로그램에서 사용 빈도가 높은 중요한 구조입니다. 이번 포스트에서는 우선순위 큐에 대한 일반적인 얘기를 먼저 한 뒤, 우선순위 큐의 가장 대표적인 예시인 힙(heap)을 알아보겠습니다. 우선순위 큐 def) 우선순위 큐 (Priority Queue): 우선순위에 따라서 데이터를 추출하는 자료구조 우선순위 큐는 큐(queue) 자료구조의 변형 형태로 볼 수 있으며, 컴퓨터 운영체제(OS)나 온라인 게임 매칭 등에 사용되는 구조입니다. 운영체제의 경우, 우리가 음악을 들으면서 문서 작업을 하는 등 한 컴퓨터에서 여러 작업을 동시에 작동시키는 경우가 많습니다. 당장 저만 해도 블로그 정리할 때 항상 유튜브 브금을 깔아놓습니다 이 때 프로그램의 우선순위를..

[패스트캠퍼스][환급 챌린지]Chapter 2. 딥러닝을 위한 자료 구조 02-08 이진 탐색 트리

02-08 이진 탐색 트리 이진 탐색 트리는 다수의 데이터를 관리하는 데 적합한 트리(tree) 자료구조의 기본이 되는 구조이기 때문에 반드시 짚고 넘어가야 합니다. 트리 def) 트리 (tree): 계층적인 구조를 표현할 때 사용할 수 있는 자료구조 루트 노드 (root node): 부모가 없는 최상위 노드 리프 노드 (leaf node): 자식이 없는 노드 깊이 (depth): 루트 노드에서의 길이(length, 출발 노드에서 목적지 노드까지 거쳐야 하는 간선의 수) 높이 (height): 루트 노드에서 가장 깊은 리프 노드까지의 길이 그럼 먼저 트리 구조가 뭔지 간단하게 알아보겠습니다. 다음과 같이 나무를 뒤집어놓은 듯한 자료구조인 트리는 최상위 노드인 루트와 더 이상 자식이 없는 리프(단말) 노드..

[패스트캠퍼스][환급 챌린지]Chapter 2. 딥러닝을 위한 자료구조 02-07 덱

02-07 덱 덱은 스택과 큐의 장점만 버무려놓은 자료구조로, 스택과 큐 대신에 덱만 사용해도 괜찮을 정도라고 합니다. 이번 포스트에서는 덱의 특성을 알아보고 파이썬에서의 구현을 해보겠습니다. 덱의 특성 def) 덱 (deque, double-ended queue의 약자): 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조 덱의 특성이라 하면 스택과 큐의 기능을 모두 가지고 있다는 점입니다. 다만, 스택이나 큐와 달리 포인터 변수가 더 많이 필요하기 때문에, 메모리는 상대적으로 더 많이 필요로 합니다. 파이썬에서는 큐의 기능이 필요할 때 간단히 덱 라이브러리를 사용하곤 합니다(다만, 큐 라이브러리도 따로 구현되어 있기는 합니다). 이에 대해서는 아래에서 다시 알아보겠습니다. 덱 연산 예제 덱에 여러 개의 ..

[패스트캠퍼스][환급 챌린지]Chapter 2. 딥러닝을 위한 자료구조 02-06 큐

02-06 큐 def) 큐 (Queue): 먼저 삽입된 데이터가 먼저 추출되는 자료구조 선입선출 스택이 먼저 삽입된 데이터가 나중에 추출되는 자료구조였다면, 큐는 반대로 먼저 들어온 데이터가 먼저 추출되는 구조입니다. 큐도 게임 좋아하시는 분들이, 특히 온라인 게임을 즐겨하시는 분들이 많이 들어보셨을 용어입니다. 게임에서 큐라고 하면 흔히 매칭 대기 순서를 뜻하고, 먼저 대기한 사람이 먼저 매칭되는 구조를 갖는 거죠. 큐의 예시 스택에서와 마찬가지로 큐에 여러 개의 데이터를 삽입, 삭제하는 예시를 보겠습니다. 전체 연산은 아래와 같고, 지난 포스트에서 다룬 스택에서 썼던 예시 연산과 동일합니다. 삽입 3 - 삽입 5 - 삭제 - 삽입 7 - 삭제 - 삽입 8 - 삭제 - 삽입 2 - 삽입 9 큐와 다른 ..