본문 바로가기

전체 글112

#1. staticmethod, classmethod, instancemethod 이번에는 파이썬의 메소드 3종류를 알아보겠다. @staticmethod, @classmethod 데코레이터를 메소드위에 작성하면 해당 메소드는 정적메소드로 분류된다. 데코레이터를 사용하지 않으면 instancemethod에 해당된다. 정적메소드는 인스턴스를 생성하지 않아도(않아야)호출이 가능하다. 반대로 인스턴스메소드는 인스턴스 생성이 필수이다. 자세한 내용은 코드를 보면서 이해하겠다. 1. @staticmethod class A: num = 10 @staticmethod def plus(x): return x + A.num plus() 메소드의 return 값을 확인해보면 해당 메소드는 자신의 멤버(속성 및 메소드)를 참조할 방법이 없기 때문에 직접 클래스명(A.num)을 명시하여 num이라는 속성을 .. 2020. 12. 9.
#0. args, kwargs 해당 카테고리에는 파이썬의 기초문법(반복문, 조건문, 변수, 클래스 등..)을 숙지하고 있다는 전재하에 작성한다. 파이썬 개발을 하면서 몰랐던 키워드나 개념등을 위주로 작성할 예정이다.. 개발을 하다보면 어떤 클래스의 정의를 찾아갈 때 Pycharm기준으로 Ctrl + B 단축키를 사용하면 된다. 메소드의 정의를 찾아간다고 가정할 때, 종종 *args 나 **kwargs 키워드를 본적이 있을 것이다. 필자는 무아지경상태에 빠졌다. 무아지경은 무지를 아무렇지 않게 받아들이는 경지를 의미한다. 그 경지를 넘어서고자 이 키워드들을 이해하기 위해 공부를 하고 이해한 내용을 포스트에 정성스레 적는다. 일단 args와 kwargs의 뜻부터 알아보자. args : arguments (복수형) 즉, 가변(여러개가 올 .. 2020. 12. 9.
#0. Django 시작하기 이번에는 django 웹 프레임워크를 설치하고 환경을 세팅하겠다. 우선, django를 사용하는 것은 "가상환경"에서 하는것을 추천한다. 왜? django의 버전에 대응하기 위함이다. 물론 django뿐만 아니라 다른 패키지들 또한 버전 대응에 용이하려면 가상환경에서 프로젝트를 수행하는 것이 용이하다. 가상환경 설치에 관련된 내용은 virtualenv에 관한 포스트를 보면된다. 많은 포스트들을 보면 커맨드창에서 가상환경을 활성화 시키고 서버를 키거나, 패키지를 관리(pip)하는 등.. 여러 작업을 하는데 필자는 Pycharm의 terminal기능을 애용한다. Pycharm에서는 애초에 프로젝트 단위로 이미 설치된 가상환경을 세팅할 수 있다. 터미널을 추가하자마자 해당 가상환경이 활성화되어 있는 상태이고,.. 2020. 12. 8.
#0. GoF 디자인 패턴 디자인 패턴을 배운적이 없는 신입사원.. 무지는 죄이기에 고생하고 있다. 스스로 정리해보고자 여러곳에서 찾아보고 이해한 내용을 정리하고자 한다. 틀린 내용은 언제나 지적환영. 디자인 패턴은 크게 3가지로 분류된다. 1. 생성패턴 (Creational Pattern)객체를 생성과 관련된 패턴.e.g) 추상팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글턴 2. 구조패턴 (Structural Pattern)클래스나 객체들을 조합하여 더 큰 구조를 만드는 패턴.e.g) 어댑터, 브릿지, 컴포지트, 데코레이터, 퍼사드, 플라이웨이트, 프록시 3. 행위패턴 (Behavioral Pattern)클래스나 객체 사이의 알고리즘이나 책임 분배에 관련된 패턴.e.g) 책임연쇄, 커맨드, 인터프리터, 이터레이터, 미디에이터.. 2020. 12. 7.