Python 23

[guard clause] 간결한 코드 로직을 위한 guard clause 패턴

프로그램을 작성하다 보면 특정 기능을 실행할 때 여러 조건을 검증해야하는 경우가 있다. 이런 경우에 nested if 문을 사용해 각 조건을 검증할 수 있는데, 이런 경우에 indentation의 영향 등으로 가독성이 떨어지는 비효율이 존재한다. Guard guard는 프로그램에서 특정 기능을 수행하기 위해 True로 유지되어야 하는 bool type 변수다. 쉽게 말하면 프로그램을 진행하기 위해 만족해야하는 조건을 guard라고 한다. 다음과 같은 방식으로 로그인 기능이 있다고 하자. line4의 guard 1에서 check_username으로 존재하는 username인지 여부를 True 혹은 False로 확인한다. 다음 단계인 암호 확인 단계로 넘어간다. line5의 guard 2 조건을 만족할 때 ..

[python 환경 구축 0] Miniconda와 VS CODE로 시작하는 python

Miniconda는 Anaconda의 무료 버전의 subset이다. Anaconda는 numpy, pandas 등등 데이터 사이언스나 과학 연산에 필요한 모든 패키지를 포함하는 종합 솔루션이다. Miniconda는 Anaconda의 최소 기능을 포함한 light한 버전의 패키지 관리 툴이라고 볼 수 있다. 좀 더 가벼운 패키지를 설치하기 위해서 혹은 기업용으로 사용하기 위해서 Miniconda 사용이 필요한 경우가 있다. VS code는 Microsoft에서 제공하는 무료 고성능 코드 편집기다. 매우 가볍고 커스터마이징의 편리함으로 가장 인기있는 개발 환경 중 하나다. Python 외에도 C++, Matlab, TypeScript 등의 언어를 사용하는 많은 개발자들 사이에서 사랑 받고 있다. Minico..

[python 기초 7] pandas 시작하기

pandas는 python에서 기본적으로 제공하는 라이브러리는 아니다. 하지만 프로그램을 통해 데이터를 불러오고, 처리하고, 시각화하는 과정에서 거의 모든 경우에 사용하게 되는 open-source 라이브러리다. pandas는 Series와 DataFrame 두 종류의 데이터 구조를 제공하고 Series는 index로 접근할 수 있는 1차원 형태의 데이터를, DataFrame은 index와 column으로 접근할 수 있는 2차원 데이터를 다룬다. DataFrame으로 excel, DB에 존재하는 데이터를 불러와 python에서 편리하게 정렬, 분류, 연산, 분석을 할 수 있다. 이번 포스팅에서는 pandas의 DataFrame 자료 구조와 iloc과 loc으로 일부 데이터에 접근하는 방법에 대해 학습한다..

[python 기초 6] python libraries

파이썬이 인기있는 이유 중 하나는 파이썬의 인기 그 자체다. 다양한 application에서 python을 사용하는 많은 사람들 덕분에 다른 사람의 결과물을 가져와 쉽게 사용할 수 있다. Library라고 하는 미리 정의된 코드들 덕분에 개발자들은 일반적인 task를 쉽고 빠르게 수행할 수 있다. 이번 포스팅에서는 python의 라이브러리를 생성하고 불러오는 방법에 대해 배우고, 유명한 라이브러들 몇 가지를 소개한다. 라이브러리 정의 Defining a Custom Library 단순히 미리 정의된 함수나 클래스의 집합 스크립트를 모듈이라고 하는데, 라이브러리는 비슷한 기능들을 하는 모듈의 집합이라고 이해할 수 있다. 라이브러리를 생성한다는 것은 하나의 파일 안에 한개 이상의 .py 스크립트를 작성하는 ..

[python 기초 5] Class

파이썬은 객체 지향(object-oriented) 프로그래밍 언어로 모든 것이 객체로 구성된다. class는 이러한 객체를 만드는 틀이라고 볼 수 있다. class는 데이터와 특정 행동을 모두 포함(encapsulate)하는데 이것은 함수만 사용하는 것에 비해 재사용성이 좋고, 현실의 많은 것들은 데이터와 기능이 함께 존재하기에 현실을 더 현실스럽게 모델링할 수 있다. built-in data type인 int, string 등도 모두 class다. 우리가 필요한 새로운 class를 만든다는 것은 새로운 type을 만든다는 것과 동일한 의미이다. 이러한 설명은 초보자에게 와닿지 않는 것을 알고있다. 모델링 관점에서 class를 이해하면 비슷한 성질과 행동을 하는 객체에 대한 설계도 정도로 이해하고 넘어가..

[python 기초 4] 함수

함수는 프로그래밍의 key concept 중 하나로 반복 사용 될 코드 블럭을 미리 정의해 프로그램에서 반복해 사용할 수 있도록 하는 concept이다. 모든 프로그래밍 언어에도 존재하는 개념으로 python에서는 def 키워드를 사용해 함수를 정의한다. 함수는 입력을 받을 수 있고, 함수 내에 작성된 코드를 수행해 입력에 따른 결과를 반환한다. 경우에 따라 입력, 출력이 없는 경우도 있다. 이번 포스팅에서는 함수를 정의하고 사용하는 방법과 variable scope의 개념에 대해 설명한다. 함수 정의 Defining Functions 아래의 add_number 함수는 두 매개변수(parameter)를 받아 두 값을 더한 결과를 반환하는 예시이다. def add_number(x,y = 3): return..

[python 기초 3] List, Tuple, Set, Dictionary

python 기초 1 변수와 연산자에서 정수형, 실수형, 문자열, boolean의 자료형에 대해 설명했다. 이번 포스팅에서는 list, tuple과 dictionary 자료 구조에 대해 학습한다. 이 자료 구조는 데이터를 저장하는 python의 built-in 자료 구조이지만 활용도는 매우 높다. 리스트 Lists list는 순서가 있는 object의 집합이다. object는 python에서 변수가 지시하는(할당할 수 있는) 모든 것이라고 이해할 수 있다. 리스트는 대괄호([])로 정의해 사용할 수 있다. 정수, 실수 등 기본 자료형, 다른 list, tuple, dictionary, 특정 라이브러리에서 제공하는 numpy array, pandas DataFrame 등 특수한 데이터, 머신러닝 모델 등 ..

[python 기초 2] 프로그램 제어 문법

python뿐만 아니라 다른 프로그래밍 언어에서도 계산기 수준 이상으로 사용하기 위해서 반드시 숙달해야 하는 내용이 이번 포스팅에서 다룰 프로그램 제어 문법이다. 여기서 말하는 제어 문법은 1)조건문과 2)반복문이다. 적절한 조건문을 활용해 수행할 작업을 구분할 수 있고, 반복문을 통해 동일하거나 유사한 작업을 짧은 코드로 처리할 수 있다. 이 포스팅에서는 같은 indent 단계를 가진 몇 줄의 코드를 코드 블럭이라고 하겠다. 조건문 Conditional Statements 조건문은 조건에 따라 수행할 코드 블럭을 설정하는 역할을 한다. python에서는 if, elif와 else가 있다. C 언어 등에서 존재하는 switch - case문은 최초 개발시부터 이후 python 개선 프로젝트에서도 논의가 ..

[python 기초 1] 변수와 연산자

python은 이전 포스팅에서 설명했던 것과 같이 다양한 application에서 사용되고 배우기 쉬운 언어이다. 프로그래밍 언어를 배우는 것은 데이터를 저장하는 변수의 개념을 익히는 것에서 시작된다. 이번 포스팅에서 변수의 개념과 자료형의 종류에 대해 설명한다. 변수 Variable python에서 변수는 데이터를 저장하는데 사용된다. 등호(=)가 변수에 값을 할당하는데 사용이 된다. C나 JAVA와 같은 언어와 달리 사전에 자료형을 선언할 필요 없이 할당하는 순간 자동으로 데이터의 타입(자료형)이 결정된다. x = 5 위의 한줄의 코드로 x라는 변수에 5라는 정수값을 할당했다. 자료형 Data Type python은 몇 가지 built-in data type을 가진다. 그 종류는 정수형, 실수형, 문..

[python의 쓸모] 5가지 유명한 Application: Web 개발부터 AI까지

python는 표현의 간결함, 사용의 편리함과 다양한 역할을 수행할 수 있는 다재다능함으로 가장 인기있는 프로그래밍 언어 중 하나이다. python은 웹 개발에서 머신러닝이나 과학적인 연산까지 다양한 application에서 사용되고 있다. python의 인기는 점차 증가하는 추세로 개발자나 연구자에게 사랑받는 최고의 언어다. 이번 포스팅을 통해 대표적인 python 언어를 활용한 application을 간략하게 소개하고자 한다. 기존에 머신러닝/딥러닝 등 AI나 과학 연산, 통계 시뮬레이션에 활용한 경험이 있는데, 이번 기회에 다른 분야에 조사한 내용을 정리했다. Web Development python은 web 기반 application이나 동적 website를 개발하는데 사용됨다. Django나 F..