Programming Language
-
[Python] 비동기 프로그래밍을 돕는 asyncio 라이브러리Programming Language/Python 2021. 5. 29. 00:31
비동기 프로그래밍을 돕는 asyncio 라이브러리 asyncio(Asynchronous I/O) 파이썬은 인터프리터 언어의 특성과 함께 속도가 느린 언어로 알려져있습니다. 그렇기에 비동기로 처리해 속도를 높이는 방법은 파이썬의 단점을 극복하는 하나의 해답이 됩니다. 다만, 파이썬에는 멀티스레드에서 발생하는 복잡한 문제들을 막기 위한 GIL(Global Interpreter Lock)이 존재하고, 이로 인해 항상 한 번에 하나의 스레드만 작업을 수행할 수 있어 진정한 의미의 멀티스레딩은 실현되기 어렵습니다. GIL은 보다 복잡한 문제를 막기 위한 심플하고 효과적인 방법이지만, 파이썬의 한계점이자 파이썬이 태생적으로는 비동기 프로그래밍에 적합하지 않은 언어임을 보여주죠. 한계가 뚜렷함에도 파일 읽기 및 쓰기..
-
[Python] 데코레이터(Decorator) - 효과적 프로그래밍을 위하여Programming Language/Python 2021. 5. 18. 02:42
파이썬 데코레이터 (Decorator) 파이썬의 함수는 일급 시민이자 일급 객체 일급 객체(First-class object)란 다음과 같은 몇 가지 조건을 갖춤으로 인해서, 해당 객체를 사용할 때 다른 요소들과 아무런 차별이 없는 객체를 의미합니다. 다음은 Robin Popplestone이 정의한 일급 객체의 일반적인 조건입니다. 모든 일급 객체는 함수의 실질적인 매개변수가 될 수 있다. 모든 일급 객체는 함수의 반환값이 될 수 있다. 모든 일급 객체는 할당의 대상이 될 수 있다. (변수 대입) 모든 일급 객체는 비교 연산(==, equal)을 적용할 수 있다. 일급 객체는 자바스크립트에서 파생된 개념이지만 지금은 대다수 프로그래밍 언어에 적용되는 개념입니다. 파이썬에서는 모든 것이 객체이자 일급객체여..
-
[Python] Call by assignmentProgramming Language/Python 2021. 4. 16. 17:15
파이썬과 다른 언어의 차이점은 함수 인자 전달 방식에서도 나타납니다. 파이썬의 인자 전달 방식은 Call by assignment라고 하는데, 먼저 기존의 Call by value와 Call by reference를 간단히 짚고 Call by assignment를 살펴보겠습니다. Call by value VS Call by reference 1. Call by value 함수 호출 시 전달되는 인자의 값을 복사해서 함수의 매개변수에 담아 함수 내부에서 사용하는 방식을 말합니다. 따라서, 함수 내부에서 인자로 들어온 값을 변경해도 값을 전달한 외부 변수의 값은 변경되지 않습니다. 2. Call by reference 함수 호출 시 전달되는 인자의 레퍼런스(=메모리 주소)를 매개변수에 담아 함수 내부에서 사..
-
[Python] 놓치기 쉬운 개념들 정리Programming Language/Python 2021. 4. 15. 15:29
# 2진수, 8진수, 16진수로 정수 표현하기 >>> 0b110 # 2진수 6 >>> 0o10 # 8진수 8 >>> 0xF # 16진수 15 # 보다 정교한 계산으로 부동소수점 오류를 피하는 자료형 Decimal from decimal import Decimal cost_of_gum = Deciaml('0.10') cost_of_gumdrop = Decimal('0.35') cost_of_transaction = cost_of_gum + cost_of_gumdrop print(cost_of_transaction) # Returns 0.45 instead of 0.44999999999999996 # 빈 변수 만들기 >>> x = None # 다른 언어의 null 값 >>> print(x) None # de..
-
[Python] 얼핏 헷갈리는 소소한 용어들Programming Language/Python 2021. 4. 15. 15:14
# IDLE vs IDE vs Text Editor 1. IDLE(통합 개발 학습 환경, Integrated Development and Learning Environment) 간단한 학습 목적용 IDE이며 파이썬용 통합 개발 및 학습 환경입니다. 2. IDE(통합 개발 환경, Integrated Development Environment) 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어를 말합니다. 3. Text Editor(≒ 경량 에디터, 코드 에디터) IDE만큼 많은 기능을 제공하진 않지만, 속도가 빠르고 단순해 파일을 열고 바로 수정하고자 할 때 주로 사용됩니다. # 파이썬 셸(Python Shell) = 대화형 셸..
-
[Python Programming 기초] # Class(클래스)와 Object(객체) : 개념Programming Language/Python 2020. 11. 18. 00:35
# Class(클래스)와 Object(객체) 1. 개념 ex) - Class란? : 새로운 타입을 정의 · 실세계의 것을 모델링하여 속성(attribute)와 동작(method)를 갖는 데이터 타입 · Python에서의 string, int, list, dict... 모두가 다 클래스로 존재 - Object란? · 클래스로 생성되어 구체화된 객체 (=인스턴스) · Python의 모든 것 (int, str, list...)은 객체 (=인스턴스) · Class가 인스턴스화 되어 메모리에 상주하는 상태 본 포스팅은 Fast Campus 머신러닝과 데이터 분석 A-Z 강의를 듣고 정리한 내용을 담고 있습니다.
-
[Python Programming 기초] # 모듈의 이해 및 사용Programming Language/Python 2020. 11. 18. 00:33
# 모듈(=외부 라이브러리)의 이해 및 사용 : 다양한 기능들이 미리 함수로 구현되어 모듈 형태로 제공 ex) requests, numpy, pandas - import : 모듈 전체를 가져올 때 사용 ex) import math math.pi - from 모듈 import 값, 함수, 클래스 : 해당 모듈에서 특정한 값, 함수, 클래스만 가져올 때 ex) from math import pi pi - * import (star import) : 해당 모듈내에 정의된 모든 것을 import → 권장 X ex) from math import * - as : 모듈 import 시, alias(별명) 지정 가능 ex) import math as m m.exp(3) 본 포스팅은 Fast Campus 머신러닝과 데..
-
[Python Programming 기초] # 함수의 이해 및 사용 2 : lambda 함수Programming Language/Python 2020. 11. 18. 00:31
# 함수의 이해 및 사용 2. lambda 함수 : 한 줄로 표현되는 함수, return을 쓰면 X ex) square = lambda x:x**2 def square2(x): square(5) return x**2 => 25 square2(5) => 25 ex) add = lambda x,y:x+y add(10, 20) => 30 - lambda가 유용하게 사용되는 대표적 3가지 함수 (1) filter : 특정 조건을 만족하는 요소만 남기고 필터링 → filter(함수, 리스트) ex) nums = [1, 2, 3, 6, 8, 9, 10, 11, 13, 15] list(filter(lambda n:n%2==0, nums)) => [2, 6, 8, 10] (2) map : 각 원소를 주어진 수식에 따라..