이 문서는 파이썬 데코레이터에 대해 간단히 요점정리와 예제를 제공합니다. 데코레이터 (=decorator) : - 다른함수를 인수로 받으면서 callable 을 리턴하는 callable - 데커레이터는 데커레이트되는 함수(인수로 받은 callable)에 어떤 처리를 수행한뒤, 인수로 받은 함수를 그대로 리턴하거나 다른 콜러블 객체를 리턴한다. - 런타임이 아닌 import 타임에 실행된다. # 간단 데코레이터 예제 def decorate(func): def decorated(): print("데코레이터 실행 전") func() print("데코레이터 실행 후") return decorated @decorate def target(): print('target 함수 실행중임') target() 콜러블 (=..
String (문자열) literal - 파이썬 3.0 부터는 자동으로 유니코드 문자열로 취급되며, 접두사 b 를 붙이면 바이트 리터럴로 취급된다 - 파이썬 2 에서는 기본 리터럴이 바이트 리터럴이며, 접두사 u 를 붙이면 유니코드 문자열로 취급된다 (파이썬 3와 약간 반대쥬?) - Escape sequence (백슬래시 문자열들, 개행문자... 같은거) 를 사용할 수 있다. - 그외 쓸만한 문자열 리터럴의 속성들을 적어봄 # Basic string # 문자열 기본 print("example1") print('example2') s = """ "example3" !!! '따옴표 있어도 그냥 출력됨' """ print(s) # 자동 접합 (concat) # 인접해 있으면 그냥 자동으로 붙는다 s = "he..
이 포스팅은 파이썬 3 기준으로 인스턴스 메소드에 대하여 이야기 합니다. 본 내용에 앞서 아래 2가지 용어를 먼저 짚고 넘어가는게 좋겠습니다. - 인스턴스: 클래스의 생성자가 실행되어 얻어진 클래스 객체 - 인스턴스 메소드: 인스턴스에 바인딩된 함수 모든 인스턴스 메소드의 생김새는 일단 아래와 비슷하게 생겼죠 class MyClass: def my_method(self, *args, **kwargs): # some code comes here ... pass 클래스 하위에 소속 되어있고, 공통적으로 암묵적 첫번째 positional argument 인 self 를 가지고 있습니다. 여기서 self 는 인스턴스 자체를 가리킵니다. 즉, 모든 인스턴스 메소드는 인스턴스 정보에 대한 접근이 가능하며, 이를 이..
이 포스팅에서는 파이썬에 클래스 메소드와 스태틱 메소드의 성격을 알아보고, 두가지 메소드의 차이점을 한번 비교해본다. --- 클래스 메소드 (= @classmethod 데코레이터 함수) - class 자체에 바인딩 된 메소드 (인스턴스에서 호출 불가) - class 자체를 암묵적인 첫번째 파라미터로 넘겨받는다. - 그로인해 함수 안에서 클래스 자체에서 들고있는 모든 정보에 접근이 가능하다. - 반대로 클래스 인스턴스 정보는 접근이 불가능하다 - 메소드 내에서 class state 를 변경할 수 있으며 이는 현재 메모리에 올라가 있는 해당 클래스의 모든 인스턴스에 영향을 줄 수 있다. 그래서 이 부분은 클래스 메소드 생성 시, 매우 주의해야 함. - 일반적으로 클래스의 factory method (cls ..
1. 하이라이팅 필요없고 그냥 간단하게 그냥 넣고 싶을때 티스토리 기본 에디팅 화면에서 상단에 "..." 버튼 눌러보면 거기에 "코드블럭" 이라고 있다. 그거 사용하면 됨. ---------- 2. 하이라이팅 X, 줄번호 O Line number 필요 없으면 심플하게 여길 이용해도 좋다. Django Template Language syntax 까지 제공하는 것으로 봐서 꽤 커버리지 넓어 보임. 그냥 코드 넣고 스타일 고르고 (나는 Zenbrun 이 좋더라) HIGHLIGHT!! 버튼 누르면 왼쪽 하단에 하이라이팅 된 html 코드가 쫙 나온다. 그거 편집기> HTML 모드에서 복붙하면 됨. https://pinetools.com/syntax-highlighter Online Syntax highligh..
나는 평소에 JQuery 에 익숙해져 있다가, 최근 들어서 pure javascript (=Vanila JS) 를 되도록 사용하기 위해 노력하고 있다. 왜냐? ES6 이후로 js 가 많이 좋아졌다고도 하고... Vue.js 를 앞으로 사용할일이 좀 있는데.. 거기서도 JQuery를 같이 쓸거 같지도 않고... 여튼, 그래서 최근에는 Vanila JS로 엥간한 자바스크립트 코딩을 하려고 한다. 그래서, 어제 일을하다가 평소에 JQuery 로 내가 아주 즐겨쓰던 함수인 append() 를 어떻게 하면 Vanila JS 로 짤 수 있을까 생각하다가, 그냥 생각없이 element 의 innerHTML 에다가 다른 html string 을 덧붙여보았다. 얼추 UI 상으로 보았을때는 크게 문제가 없어보이는데... ..
이 포스팅에서는 파이썬의 Garbage collection 이 어떻게 이루어 지는지, 간단히 설명한다. Garbage collection: 프로그램이 자동으로 메모리 공간을 비워주는 것. (=Memory recycling) Reference: 참조, 특정 메모리 공간을 다른 곳에서 포인터 형식으로 가져다 쓸때 그것을 "참조 하고 있다" 고 표현한다. 파이썬은 아래의 2가지 방식을 활용하여 Garbage Collection 을 수행한다. 1. Reference counting - 모든 파이썬 object 는 reference count 라는 것을 가지고 있다. - 이것은 다른 곳에서 이 object 를 참조하는 개수로서, 0보다 크다면 어디선가 이 object 를 사용중이라는 것을 뜻한다. - 그래서 Ga..
1. 중첩된 쿼리 (Nested Query) : SELECT 되는 컬럼에 사용된 서브쿼리 2. 서브 쿼리 (Sub Query) : WHERE 절에 사용되는 경우. 3. 파생 테이블 (Derived) : FROM 절에 사용된 서브쿼리, 일반적으로 RDBMS 전체적으로 인라인뷰(Inline View) 또는 서브셀렉트(Sub Select) 라 부르기도 한다. 1. 스칼라 서브쿼리 (Scalar Sub Query) : 하나의 값(하나의 레코드)만 반환하는 쿼리 2. 로우 서브쿼리 (Row Sub Query) : 컬럼개수에는 상관 없이 단 하나의 레코드(Row)만 반환하는 쿼리.
아래의 예제는 모델별로 원하는 정보를 id 와 text 라는 키로 프로세싱 하여 되돌려주는 API 이다. annotate() 로 리턴필드명을 지정하고,Concat() 를 사용하여 model 의 필드 값들을 붙일 수 있으며, output_field 값을 지정하여 필드 타입도 지정할 수 있다.필드값 사이사이에 일반 문자열을 넣고 싶다면 Value 라는 Object 를 활용할 수 있다. class MyAPIView(APIView): def get(self, req): ret = APIResult() ret_dic = dict() if ('key' not in req.GET): ret_dic['error'] = "키 정보가 없습니다." else: if ('search' in req.GET) and (req.GE..
이 글은, [네트워크 더 쉽게, 더 깊게] 라는 책을 읽고 중요하다 싶은 내용을 정리한 것입니다 ^^ 용어 ISP : Internet Service Provider, 통신사업자와 비슷. LAN : Local Area Network. 작은 범위의 컴퓨터 네트워크. WAN : Wide Area Network. LAN 과 LAN 을 연결하는 대규모 네트워크 MAN : Metropoliysn Area Network, LAN 과 WAN 의 중간범위 네트워크. 인트라넷(=Intranet) : 독립적인 사내 네트워크. 인터넷은 제공 X, 주로 인사, 재무회계, 고객정보관리, 사내 문서 및 정보 관리, 사내 포털, 사내 시설 예약 등에 사용. 기밀성이 중요한 데이터가 이곳에서 관리 됨. 네트워크 이중화 : 장애를 고려..