전체 글 37

함수 인자값으로 사용하는 *args, **kwargs와 Hint 정리

1. *args와 **kwargs 파이썬에서 함수 인자값으로 *args, **kwargs를 사용하는 경우가 있습니다. 이 인자값에 대해 정리해보고자 합니다. 그리고 추가로 함수나 클래스를 정의할 때, 인자값의 type를 적는 hint 지정에 대해서도 함께 정리해보고자 합니다. *args, **kwargs는 각각 argument, key word argument로, 함수 인자값을 positional로 받거나 인자값을 유연하게 받기 위해 사용합니다. 좀더 알기 위해 예제 코드를 작성하고 그 결과값을 살펴보겠습니다. def test_func(x, y, z=None, *args, **kwargs): print('1st args is x:', x) print('2nd args is y:', y) print('3n..

Class와 관련된 용어 정리

Python이란 언어를 접한지는 꽤 오랜 시간이 지났지만, 용어와 용법은 늘 잊어버리고, 다른 분들의 글을 읽다보면 잘 이해를 못하는 경우가 많네요. 그래서 관련 용어들을 정리해놓고, 혼란스러울 때마다 찾아보고자 합니다. 제 개인적으로 혼란스러운 용어들은 attributes, method 등등의 용어인데, 이 용어들은 Object-oriented programming에서 사용하는 용어와 관련이 있는 것 같습니다. Object-oriented programming에서의 객체(Object)는 states와 behavior를 가진다고 합니다. 이를 Python에서 사용하는 용어와 맵핑해보면 다음처럼 정리해볼 수 있을 거 같습니다. ('같습니다'라고 적은 것은 저도 아직은 자신이 조금 없어서... 혹시 다른 고..

tab 문자를 space로 변경

vim을 통해 python 코드를 작성하다 보면, tab과 space가 혼재되어 있어서 indentation 에러가 발생하는 경우가 있습니다. 이 때, tab문자를 일괄 space로 변경하면 되는데, 그 방법을 정리해놓고자 합니다. 방법은 그리 대단하지는 않습니다. 먼저 Command모드에서 다음을 실행합니다. :set expandtab 그 다음에 다음을 실행합니다. retab 참 쉽죠?

R 코딩 스타일

코딩을 하다보면, 항상 함수명, 변수명을 어떻게 하는게 좋은지가 고민이 됩니다. 인터넷을 찾아보아도 마땅한 자료도 없고, 정답도 없다는 글들이 많아서 조금씩 저만의 코딩 스타일을 정의해보려고 합니다. 일단 시작은 구글 스타일로부터 시작하려고 합니다. https://google.github.io/styleguide/Rguide.xml 1. 데이터 / Plot에 대한 Naming rule 데이터는 dt(data)로 시작하고, Plot은 pl(plot)으로 시작한다. 의미는 .으로 구분하되, dt.의미.원본 또는 가공 목적(raw / ref(refined)).grp.그룹변수명(그룹된 경우, group by한 컬럼을 나열함) pt.plot종류(line, point, ...).데이터(dt. 동일하게)

Linux 디렉토리 의미

리눅스의 디렉토리별 의미를 정리한 사이트가 있어, 링크를 남겨둡니다. http://www.pathname.com/fhs/pub/fhs-2.3.html Filesystem Hierarchy Standard Filesystem Hierarchy Standard Group Edited by Rusty Russell Daniel Quinlan Christopher Yeoh Copyright © 1994-2004 Daniel Quinlan Copyright © 2001-2004 Paul 'Rusty' Russell Copyright © 2003-2004 Christopher Yeoh This standard consists of a set of requiremen www.pathname.com Root 파일 시스..

Git 사용을 위한 GUI 툴

윈도우에서 git를 설치하면, 제공되는 기본 Bash와 gui를 사용하다가 소스트리라는 것이 있는 것을 알게 되었습니다. 사용해보니, 그 명성만큼 정말 좋네요 https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac. www.sourcetreeapp.com Bitbucket를 제공해주는 Atlassian에서 개발한 툴이고 윈도우와 맥을 지원합니다. 사용하기 위해서는 bitbucket 아이디가 필요해서 계정을 생성해..

VIM에서 ^M 제거하기

유닉스와 도스 환경에서 같이 작업을 하다보면, VIM에서 개행문자가 ^M으로 보이는 경우가 발생합니다. 이를 치환해서 해결할 수 있는데, 윈도우 GVim과 리눅스에서 차이가 있어 이를 정리해두고자 합니다. 리눅스에서는 일반적으로 Ctrl+v, Ctrl+m으로 ^M를 vim 커멘드 모드에서 입력할 수 있습니다. :%s/^M//g 윈도우에서는 Ctrl+v대신 Ctrl+q를 사용하면 됩니다. Ctrl+v가 붙여넣기 단축키로 설정되어 있기 때문에 Ctrl+v가 리눅스의 그것과는 달라지게 됩니다.

Ubuntu night vision 사용하기

요새 스마트폰에서도 블루라이트 차단앱이 유행이라는 얘기를 듣고, PC에서는 문제가 없는지 궁금해졌습니다. 인터넷 검색을 해보니 아니나 다를까 PC에서도 블루라이트 차단이 필요하다고 하네요 저는 레노버 T480s를 사용하고 있는데, 레노버에서 제공해주는 윈도우즈용 앱에서는 이미 해당 기능을 제공해주고 있었습니다. 문제는 듀얼로 사용하고 있는 Ubuntu 18.04였습니다. 다행이 Ubuntu에서도 기본적으로 블루라이트 차단해주는 Night 비전 기능을 제공해주고 있어, 이에 대해 사용하고 설정하는 법을 정리해볼까 합니다. 1. 활성화하기 Ubuntu에서 Night 비전 기능을 활성화하는 것은 어렵지 않습니다. 우측 상단을 눌러서 설정 창으로 들어간 후 Settings > Devices > Display >..

리눅스에서 링크 만들기

윈도우에 바로가기와 유사하게 리눅스에는 링크라는 것이 있다. 링크에는 심볼릭링크와 하드링크 2종류가 있다. 심볼릭링크는 말 그대로 실제 원본파일이 존재하고, 해당 파일로의 연결하는 것을 의미한다. 심볼릭링크로 형성된 파일이나 폴더는 그 실체가 없다. 껍데기만 존재하고 그 안의 실질은 원본파일과 동일하다. 하드링크는 하나의 실질적인 파일 또는 폴더가 형성된다. C에서 포인터처럼 동작한다고 할 수 있다. 원본파일이 가르키는 내용이 존재하고, 하드링크로 형성된 경우에 동일한 내용을 가르키기 때문에 어느 하나를 수정하면 둘 다 수정된 것으로 보인다. 심볼릭과의 차이는 하드링크로 형성된 파일/폴더는 하나의 실체가 있기 때문에 원본파일을 지우더라도 그 내용을 가르키는 하드링크는 남아서 계속 그 내용을 확인하고 수정..

데이터 분석의 4가지 유형

데이터 분석에는 크게 4가지 유형이 있습니다. 설명/묘사을 위한 분석 (Descriptive Analytics) 진단을 위한 분석 (Diagnostic Analytics) 예측을 위한 분석 (Predictive Analytics) 처방을 위한 분석 (Prescriptive Analytics) 다음 URL에 잘 정리되어 있어, 인용합니다. https://www.kdnuggets.com/2017/07/4-types-data-analytics.html The 4 Types of Data Analytics By Thomas Maydon, Principa. We’ve covered a few fundamentals and pitfalls of data analytics in our past blog posts. ..

반응형