프로세스 프로세스(process): 각각의 프로그램이 메모리에 올라가 실행되는 과정. 멀티 프로세스 멀티 프로세스(mutil-process)는 여러 프로세스가 동시에 (빠르게 번갈아가며) 처리되는 과정이다. 예를 들어, 음악 재생 + 코드 에디터 + 브라우저를 실행했다면 3개의 프로세스가 동시에 동작하게 된다. 하지만 실제 컴퓨터는 프로세스를 동시에 작업하지 않는다. 아래 그림은 여러 개의 프로세스가 동작하는 과정을 시간에 따라 나타낸 것이다. 1번 프로세스와 2번 프로세스가 번갈아가며 실행된다. 이 과정이 매우 빠르게 실행되기 때문에 마치 동시에 두 작업이 진행되는 것처럼 보이는 것이다. 이 과정을 context switching이라 부르고, 동시성(concurrency)을 가진다고 표현한다. 그런데 ..
pymysql을 활용하면 python을 이용해 MySQL의 데이터베이스에 접근할 수 있다. > pip install pymysql DB 접근 import pymysql db = pymysql.connect( host="localhost", port=3306, user="root", passwd="1234", # 비밀번호 db="testdb", # DB 이름 charset="utf8", # 인코딩 방식 ) cursor = db.cursor() # cursor = db.cursor(pymysql.cursors.DictCursor) # Unbuffered: SSCursor, SSDictCursor connect 함수를 이용해 DB에 접근하려면, 위 내용을 인자로 전달해 주어야 한다. 로컬 DB일 경우, hos..
파이썬 프로그래밍에서 디자인 패턴(Design Pattern)은 객체지향을 설계하는 과정에서 발생하는 문제를 해결하기 위해 사용되는 패턴이다. 데코레이터 패턴 데코레이터(decorator) 패턴은 @를 사용해 함수나 메서드를 정의하는 방법이다. def decorator(func): def wrapper(*args, **kwargs): print("start") func(*args, **kwargs) # test(*args, **kwargs) print("end") return wrapper @decorator def test(): print("Test Decorator") test() >>> start >>> Test Decorator >>> end 위 예시의 경우, test라는 함수를 decorator..
객체 지향 객체 지향은 문제를 독립적인 객체 단위로 나누어 작업하는 방식으로, Object-Oriented Programming이라고 불린다. 대규모 작업에서 유지 보수가 유리하다는 장점이 있으며, Python은 대표적인 객체지향 언어이다. 클래스와 객체 객체(object)는 속성 값과 메서드를 가지는 실체를 뜻하며, 포괄적인 의미로 사용된다. 이러한 객체가 메모리에 할당되어 사용될 때 인스턴스(instance)라고 부른다. class ClassName: # 객체(object) pass instance = ClassName() # 인스턴스(instance) 생성자를 통해 인스턴스가 생성되면 __new__ 메서드가 호출되고 __init__ 메서드가 호출된다. 이때 객체를 새로운 변수에 할당하는 것을 바인딩..
return & yield return은 함수의 결과 값을 한 번만 반환한다. def test(): for i in range(100): return i print(test()) print(test()) >>> 0 >>> 0 반면, yield를 사용하면 generator를 쉽게 구현할 수 있다. (generator: iterator를 생성해주는 함수) def test(): for i in range(100): yield i result = test() print(next(result)) # test(): i == 0 print(next(result)) # test(): i == 1 print(next(result)) # test(): i == 2 >>> 0 >>> 1 >>> 2 함수가 yield를 만나면..