클래스 변수

  • C++/Java에서 static 멤버 변수와 같은 역할
  • 정의 방법
    class ClassName1:
      var1 = None
      ...
    
  • 사용 방법 : [클래스명].[변수명], [인스턴스명].[변수명] 모두 가능


인스턴스 변수

  • C++/Java에서 비 static 멤버 변수와 같은 역할
  • 정의 방법
    class ClassName2:
      def __init__(self):
        self.var2 = None
        ...
    
  • 사용 방법 : [인스턴스명].[변수명] 만 가능
  • 같은 이름일 경우, 인스턴스 변수에서 먼저 찾고 클래스 변수에서 찾는다


<테스트 환경> 
- OS : Windows 10 
- Python 버전 : 3.7.5
,

Prettier는 javascript(+ 약간의 기타언어)의 소스 코드를 일정한 형식에 맞게 정리해주는 툴로 단독으로도 사용될 수 있지만 여기서는 Emacs에 연동하여 사용하는 방법에 대해 정리해보겠다. 물론 Emacs 외 다른 편집기들도 지원한다. (자세한 사항은 홈페이지 참조)


설치 방법

  1. DiffUtils for Windows를 설치한다. (Emacs에서만 사용시 Path 환경변수는 굳이 잡아줄 필요없다)
  2. Prettier-js for Emacs 홈페이지에서 prettier-js.el 파일을 다운받아 Emacs의 site-lisp 폴더에 복사한다.
  3. .emacs 파일에서 exe-path에 Diff Util의 bin폴더에 대한 경로를 추가한다. (정슬래시 사용)

  4. (setq exec-path (append exec-path '("/path/to/diffutils")))
  5. .emacs 파일에서 Javascript Hook으로 prettier mode를 설정한다.

  6. (require 'prettier-js)
    (dolist (hook '(js2-mode-hook js-mode-hook json-mode-hook))
      (add-hook hook 'prettier-js-mode))
  7. [옵션] 들여쓰기에 탭 문자가 아닌 스페이스를 사용하기 위해서는 아래와 같이 prettier-js-arg를 설정한다. 혹은 추가로 필요한 옵션이 있으면 설정한다. 아래 옵션 페이지 중 CLI용 옵션을 사용하면된다.
    (setq prettier-js-args '(
      "--use-tabs" "false"
      "--tab-width" "4"
    ))
    • Prettier 옵션 페이지 : https://prettier.io/docs/en/options.html
    • 들여쓰기로 탭 문자 사용으로 설정할 경우, 여기서 설정한 탭 사이즈가 아닌 Emacs 기본 탭 사이즈가 적용된다.


동작 방식

  • 일반 다른 모드들과 같이 Tab키를 누르거나 Enter키로 줄바꿈을 하였을 때 조정되는 방식이 아니라, 1) 저장시와 그리고 2) M-x를 누른후 명시적으로 prettier-js를 입력하였을 때 정리가 일어난다. 단순이 들여쓰기만 정리되는 것이 아닌 코딩 스타일 전반에 걸쳐 정리가 된다.
  • 저장시에 적용되는 것은 빼고 명시적으로 커맨드를 입력하였을 때만 적용하려면 .emacs 파일 설정시 아래와 같이 hook 부분은 빼고 설정해도 된다.
    (require 'prettier-js)
    


참고사항


<테스트 환경>
- OS : Windows 10
- Emacs 버전 : Emacs 24.5.1 윈도우
,
윈도우 10에서 RNDIS/Ethernet Gadget 장치로 인식안 될 경우가 있다. 이 경우 알림창에 드라이버 설치 중이 나온 후 완료가 되지 않으며 일반 USB 장치로 인식된다. 해결 방법은 아래 링크에서 드라이버를 받은 후, 일반 USB 장치를 선택하여 수동으로 드라이버를 업데이트해야한다.

출처: https://devnauts.tistory.com/133?category=536861 [devnauts]

윈도우 10에서 RNDIS/Ethernet Gadget 장치로 인식안 될 경우가 있다. 이 경우 알림창에 드라이버 설치 중이 나온 후 완료가 되지 않으며 일반 USB 장치로 인식된다. 해결 방법은 아래 링크에서 드라이버를 받은 후, 일반 USB 장치를 선택하여 수동으로 드라이버를 업데이트해야한다.



참고 사이트 (TMI)


,
  1. MySQL 콘솔을 실행한다.
  2. 다음 명령을 입력하여 쿼리 프로파일링을 시작한다.
mysql>SET profiling = 1;
  1. 테스트하기 원하는 데이터베이스 테이블에 대해 쿼리를 실행한다.
mysql>SELECT * FROM Example
  1. 다음 명령을 입력하여 최근에 실행한 쿼리에 대한 프로파일 정보를 확인할 수 있다.
mysql>SHOW profiles;



참고 사이트

,

>> [HTML] 테이블 태그에 Single Line 스타일 추가

  • table-st : 샘플1 스타일로 테이블 스타일 추가
  • table-st-ts : 샘플2(티스토리) 스타일로 테이블 스타일 추가
  • table-st-mw : 샘플3(미디어위키) 스타일로 테이블 스타일 추가


함수 정의


(defun table-st ()
  (interactive)
  (setf table-tag "<table>")
  (setf td-tag "<td>")
  (setf th-tag "<th>")
  (setf table-st-tag "<table style=\"border-collapse:collapse;\" border=\"1\">")
  (setf td-st-tag "<td style=\"padding:5px 5px\">")
  (setf th-st-tag "<th style=\"padding:5px 5px\">")

  (my-rewind)
  (my-replace table-tag table-st-tag nil)
  (my-rewind)
  (my-replace th-tag th-st-tag nil)
  (my-rewind)
  (my-replace td-tag td-st-tag nil)
  )

(defun table-st-ts ()
  (interactive)
  (setf table-tag "<table>")
  (setf td-tag "<td>")
  (setf th-tag "<th>")
  (setf table-st-tag "<table style=\"border-collapse:collapse;border:1px solid #ccc;\">")
  (setf td-st-tag "<td style=\"border:1px solid #ccc;padding:5px 5px\">")
  (setf th-st-tag "<th style=\"border:1px solid #ccc;padding:5px 5px\">")

  (my-rewind)
  (my-replace table-tag table-st-tag nil)
  (my-rewind)
  (my-replace th-tag th-st-tag nil)
  (my-rewind)
  (my-replace td-tag td-st-tag nil)
  )

(defun table-st-mw ()
  (interactive)
  (setf table-tag "<table>")
  (setf td-tag "<td>")
  (setf th-tag "<th>")
  (setf table-st-tag "<table style=\"background-color: #f8f9fa;color: #222;border-collapse:collapse;border: 1px solid #a2a9b1;\">")
  (setf td-st-tag "<td style=\"border: 1px solid #a2a9b1;padding:5px 5px\">")
  (setf th-st-tag "<th style=\"border: 1px solid #a2a9b1;padding:5px 5px\">")

  (my-rewind)
  (my-replace table-tag table-st-tag nil)
  (my-rewind)
  (my-replace th-tag th-st-tag nil)
  (my-rewind)
  (my-replace td-tag td-st-tag nil)
  )



참고사항


다음의 함수 정의를 사용합니다.


,