python

[python] OOP
코드를 작성하다보면 자신의 코드가 어떻게 구성되어가는지 파악하기 어려울 때가 있다. 코드를 작성하다보면 그 길이가 점점 길어지고 의존관계가 복잡하게 얽히게 되는 경우가 존재하기 때문이다. 이런 상황이 누적된다면 코드 관리가 심히 어렵다. 복잡한 프로젝트를 코딩할때도 단순한 관계를 위지하기 위해서 우리는 OOP (Object Oriented Promramming) , 즉 객체지향 프로그래밍이 필요하다. 나무위키에서는 OOP를 아래처럼 설명한다. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 '메소드와 변수'를 가지며, 특정 역할을 수행하도록 인간이 정의한, 추상적인 개념이다. 이해..

[python] session과 cursor
우리는 python 코드를 이용해서 DB서버와 소통을 해야할 일이 종종있다. 코드를 이용해서 DB에 데이터를 읽거나 쓰려면은 ①session과 ②cursor에 대한 개념을 이해할 필요가 있다. 아래 코드에서 두 개념을 살펴보고자 한다. DB는 postgres를 이용한다. 먼저, python에서 postgres DB에 접속해서 sql을 수행하고, 그 결과를 가지고 올수있도록하기위해서 psycopg2 라이브러리를 불러와야한다. 해당 라이브러리를 이용해서, psgcopg2.connect() 내에 ip정보, db명, user명, password, 포트번호를 입력해주면 DB서버와의 연결을 만들수 있다. 그리고 이 DB서버와의 연결을 'session' 이라고 부른다. import psycopg2 from conte..
[python] decorator
파이썬에는 decorator라는 기능이 있으며, 이 기능을 이용하면 기존에 존재하는 함수를 감싸서 추가기능을 덧붙여줄수있다. decorator라는 이름처럼 함수를 꾸며주는 기능이라고 보면 되겠다. 이 기능을 이해하기위해서는 파이썬 함수의 3가지 특징을 이해해야한다. ① 함수안에 함수를 선언하는 것이 가능하다. ② 함수의 인자로 함수를 전달하는것이 가능하다. ③ 함수 자체를 리턴하는것이 가능하다. 아래 outer_func 함수가 위 세가지 사례가 모두 담겨있는 예시이다. ① outer_func 함수는 target_func 이라는 함수를 인자로 전달받고 있고, ② 함수안에 inner_func이라는 함수를 선언하고있으며, ③ inner_func 함수를 리턴한다. def outer_func(target_func..