본문 바로가기

전체 글240

매직메소드 매직 메소드 클래스 안에 정의된 함수 ( 리스트, 튜플, 딕셔너리, 정수, 실수, 문자열 등과 같은 타입 역시 클래스를 통해 만들어진 기본 데이터 타입 ) ex 직접 만든 타입도 인덱싱 기능을 제공하려 할때 매직메소드 사용 class Notebook: def __init__(self, name, price): # 객체의 초기화를 위해 클래스 생성시 호출될때 동작 self._name = name self._price = price def __str__(self): # 클래스의 인스턴스에서 str()이 호출될 때의 동작 return f'{self.__class__.name} Class Info : {self._name}, {self._price}' def __add__(self, x): # 사용하기 쉽게 +.. 2021. 7. 18.
Class , Object , Method ( OOP ) Object-Oriented Programming 객체 지향 프로그래밍 클래스를 사용해서 프로그래밍 하는 방법 ( 프로그램을 수많은 '객체'라는 단위로 구분하고, 이 객체들의 상호작용하는 방식 ) ==> 객체를 우선으로 생각하는 언어 ==> 객체를 효율적으로 만들고 사용하는 것이 목적 클래스는 어떤 물건을 찍어내기 위한 일종의 틀 class 객체는 그 틀을 이용해서 찍어내는 실제 물건 object 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점 일반적으로 프로그램을 만들때 항상 염두에 둬야할 2가지 1. 같은 코드를 반복하지 않는다. 2. 코.. 2021. 7. 18.
Python 함수 Python - 다른 언어에 비해 구현상의 복잡합이 적은 편이지만 데이터 처리량이 많을 때는 꼭 메모리 제한을 고려해야한다. But 코테에서 이러한 문제는 드물다. 데이터의 개수(리스트의 길이) 메모리 사용량 1,000 약 4 KB 1,000,000 약 4 MB 10,000,000 약 40MB 기본 자료형(문자열, 숫자, bool) 등은 특정 하나의 값을 사용한다. 컬렉션은 말 그대로 여러 개의 값을 저장할 수 있음 * 리스트는 동적이다. 동적이라 함은 메소드를 사용해 값을 추가하거나 제거가능 튜플과의 차이점 : 리스트는 메소드를 활용하여 값 수정가능. 딕셔너리와 차이점 : 인덱스를 기반으로 값을 저장하고 수정할 수 있다. 파이썬 리스트는 탐색, 삽입, 삭제와 같은 연산에 대한 메소드를 갖고 있으므로 단.. 2021. 7. 18.
SQL과 NoSQL 차이점 관계형 데이터베이스에서는 데이터를 쓸 때 스키마에 맞춘다면, 반면에 NoSQL에서는 데이터를 읽어올 때 스키마에 따라 읽어옵니다 =schema on read 데이터 저장(Storage) 관계형 데이터베이스는 SQL을 이용해서 데이터를 테이블에 저장합니다. 미리 작성된 스키마를 기반으로 정해진 형식에 맞게 데이터를 저장해야 합니다. SQL NoSQL은 위에서 설명된 것처럼, key-value, document, graph, wide-column 형식등의 방식으로 데이터를 저장할 수 있습니다. NoSQL 문서들은 BSON(Binary json JSON형태의 문서를 바이너리 형태로 인코딩한 바이트 문자열) 형태로 저장이 되고 정해진 틀이나 데이터 타입이 없습니다. 따라서 자유롭게 문자, 숫자, 객체, 배열 등.. 2021. 7. 14.
SQLite3 / DBeaver / ElephantSQL / NoSQL SQL 특징을 설명할 수 있어야 합니다. 데이터베이스 관계를 설정할 수 있어야 합니다. SQL 싱글 테이블 관련 문법을 활용할 수 있어야 합니다. Database의 필요성 1. In-Memory 제일 먼저 파이썬에서 데이터를 다룰 때에는 프로그램이 실행될 때에만 존재하는 데이터가 있습니다. 파이썬에서 변수를 만들어 저장한다고 해도 프로그램 실행이 종료가 되는 순간 해당 프로그램이 사용하던 데이터도 같이 없어짐. 그 뜻은 데이터가 프로그램에 의존한다는 것입니다. 이렇게 된다면 원하는 데이터를 원하는 시간에 꺼내오기가 힘들어지고 데이터의 수명이 프로그램의 수명에 의존하게 됩니다. Data가 Program에 의존 프로그램 실행 종료 --> 해당 프로그램 데이터 없어짐 2. File I/O ( Input / O.. 2021. 7. 14.
Docker CLI 가 무엇인지 말할 수 있다 Docker Hub에서 Docker Image 를 검색한 뒤 사용할 수 있다. 한 개의 Docker Image를 이용해서 Container 를 구축할 수 있다. 두 개 이상의 Docker Container를 이용해서 Container 를 구축할 수 있다. Docker LifeCycle 을 통해 오늘 배우지 않은 부분이 무엇인지를 알 수 있다. Docker 다른 장치에서 동작하는 게임을 PC 에서 동작시킨다는 것 ==> 프로그램 실행을 위해 Linux 환경을 쉽게 구성하기 위한 도구 == docker #어플리케이션 실행 환경을 코드로 작성할 수 있고 OS를 격리화하여 관리하는 기술# image = container 실행에 필요한 파일과 설정값들을 포함 ( 변하지않는 파일 .. 2021. 7. 14.
git , 가상환경 터미널 등 CLI 를 접근하고 사용할 수 있다. 파이썬 가상환경을 만들고 사용할 수 있다. 파이썬 가상환경이 왜 필요한지 설명할 수 있다. 깃에 대한 설명을 할 수 있다. 깃을 사용해 프로젝트 관리를 할 수 있다. 깃헙과 같은 사이트를 통해 깃 레포 관리를 할 수 있다. Anaconda 가상환경 프로그램 -개발 당시에 작동이 되었다면 배포 환경에서도 개발 환경과 비슷하게 만들어 최대한 잘 작동을 할 수 있도록 도와주는 역할 *많은 언어들과 동일하게 파이썬도 패키지, 모듈 등을 저장하고 불러오는 방식이 존재 패키지들이 저장되는 방법 (HOW) 패키지들이 저장되는 장소 (WHERE) - standard library, system packages, site packages 파이썬을 설치하게 될 때 같이 설치.. 2021. 7. 14.
Train / Validation / Test Train / Test - > 답지를 보고 훈련을 하게되면 다른 학습데이터가 들어와도 제대로 맞출 수가 없다, train_test_split 함수는 데이터를 랜덤하게 섞은 후, 인덱스 기반으로 train set과 validation set으로 나누는 함수 - 배열의 형태가 들어갈 수 없음 * training set중 몇개를 따로 빼내서(hold out) test error를 직접적으로 추정하는 방법. hold-out은 데이터셋을 훈련셋과 테스트셋으로 분리 예를들어, 데이터셋의 80%를 훈련셋으로 삼아 모델을 훈련시키고, 나머지 20%를 테스트셋으로 이용해서 성능을 평가 그런데 훈련셋과 테스트셋으로만 나눠서 모델의 성능을 평가하다보면, 테스트셋이 모델의 파라미터 설정에 큰 영향 ==> 모델이 테스트셋에 오.. 2021. 7. 7.
정규화( Normalization, Standardization, Regularization ) Generalization : 통계에서 말하는 일반화를 말한다. 기계학습에서는 일반화 성능을 향상시킨다는 말이 많이 나오는데, Train data에 너무 overfitting 되지 않고, 좀 더 일반적인 모델을 만드는 것을 의미한다 == 학습된 모델이 새로운 데이터에서 얼마나 좋은 실행이 일어나는지의 정도 출처: https://jkook.tistory.com/23 [JinKook] Normalization 값의 범위(scale)를 0~1 사이의 값으로 바꾸는 것 학습 전에 scaling하는 것 머신러닝에서 scale이 큰 feature의 영향이 비대해지는 것을 방지 딥러닝에서 Local Minima에 빠질 위험 감소(학습 속도 향상) ==> normalization 하지 않으면 중요한 특성임에도 다른 특.. 2021. 7. 4.