Programmer
-
러스트에서 문자열을 효과적으로 연결하기Programmer/Programming 2019. 2. 8. 17:41
러스트(rust)에서 문자열을(&String or &str)을 연결(concatenation)하는 방법에는 여러가지가 있다. SliceConcatExt::concat() -> String SliceConcatExt::join(sep: &str) -> String Add::add(rhs: &str) -> String String::push_str(string: &str) -> String write! and writteln! macros SliceConcatExt::concat() -> String 문자열의 슬라이스(slice)에서 concat() 메서드를 호출하면 각 요소를 연결한 문자열을 생성한다. SliceConcatExt::join(sep: &str) -> String 각 문자열 요소 사이에 지정된..
-
'ps aux'와 'ps -ef'의 차이Programmer/Computer Skills 2018. 2. 13. 17:28
ps -e와 ps ax를 모든 프로세스를 보여준다는 의미에서 같다. ps -f와 ps u는 보여주는 필드를 정하는데 아래와 같은 소소한 차이가 있다. ps -f 프로세스의 식별 정보를 더 잘 보여준다. PPID : 부모 PID ps u 프로세스의 상태 정보를 더 잘 보여준다. %CPU : CPU 사용율 %MEM : 메모리 사용율 VSZ : 가상 메모리 크기 RSS : 실제 메모리 크기 STAT : 프로세스 상태 부모 프로세스와 자식 프로세스의 관계를 보려면 ps -ef가 프로세스 상태를 보는 용도로는 ps aux가 더 적당하다.
-
Ubuntu 16.04에서 Python 3.6 사용하기Programmer/Computer Skills 2018. 2. 12. 11:45
Ubuntu 18.04를 설치 또는 업그레이드 하라. Python 3.6이 기본 버전이다. 쉽고 편한 길을 놔두고 굳이 삽질한다면 말리진 않겠다. Python 3.6 설치하기 Ubuntu 16.04에는 써드파티 PPA를 추가해야 python 3.6을 설치할 수 있다. sudo add-apt-repository ppa:jonathonf/python-3.6 Python 3.6을 설치한다. sudo apt-get update sudo apt-get install python3.6 Python 3.6 설치 후 gnome-terminal 외 다수 프로그램이 동작하지 않는 문제 해결하기 Ubuntu 16.04의 몇몇 프로그램은 python 2.7, python 3.5 이외의 버전에서 동작을 보장하지 않는다. 이런 ..
-
파이썬 프러퍼티 사용하여 일관되게 속성에 접근하라Programmer/Programming 2018. 1. 17. 11:56
파이썬의 프러퍼티(property)를 설명한 책과 글은 많음으로 필요성만 살짝 언급하고 지나가겠다. 파이썬에서는 공개 애트리뷰트(public attribute)을 직접 접근(access)하는 것이 관례이다. class A: def __init__(self): self.x = 0 a = A() a.x = 1 print('{}'.format(a.x)) 그런데, 비공개(private) 애트리뷰트가 필요한 경우가 있다. 이들을 외부에서 접근하기 위해서는 엑세스 함수-예를 들면, get_xxx(), set_xxx()와 같은 것-을 사용해야 한다. 문제는 접근 형식이 관례와 달라지는데 있다. 즉, 애트리뷰트가 공개인지 비공개인지 일일이 신경써야 한다. 이럴 때, 프러퍼티를 사용하면 동일한 표현 형식으로 접근이 가능..
-
기본 값(default value)을 언제 사용할까?Programmer/Programming 2018. 1. 2. 18:57
매번 값을 특정하는 것은 꽤 귀찮은 일이다. 가령, ssh 접속할 때 포트 번호 22를 항상 입력하는 것은 불편하다. 기본 값은 이런 불편함을 덜어준다. 이는 곧 개발의 생산성과 사용의 편의성으로 이어진다. 반면, 사용의 편의성은 대게 위험성을 불러들인다. 임의로 기본값을 남발하면 낭패를 볼 수 있다. 컴파일이나 실행 직후 문제없이 돌아가는 코드가 기본값 때문에 문제를 일으키곤 한다. 기본 값에는 명백하고 합리적인 이유가 반드시 있어야 한다. 예를 들면, HTTP 클라이언트를 개발한다면, HTTP 프로토콜의 기본 포트인 80을 기본 값으로 사용할 수 있다. 여기서는 스펙이 합리적인 이유가 된다. 그런데, HTTP 프로토콜의 기본 포트인 80이 아닐 수도 있다. 사내 HTTP API 서버들의 포트가 다양할..
-
Emacs의 Python3 개발 환경Programmer/Emacs 2017. 12. 14. 15:10
emacs의 python 개발 환경은 크게 두 가지가 유명하다. 하나는 elpy 나머지 하나는 anaconda이다. 이 두가지 중에 하나를 선택해서 사용한다. elpy 한마디로, emacs에서 python 개발을 위한 all in one 패키지이다. 설치와 설정이 매우 쉬운면서 여느 IDE와 견주어도 꿀리지 않는 강력함이 있다. (use-package elpy :ensure t :config (elpy-enable) (setq elpy-rpc-python-command "python3") (setq elpy-rpc-backend "jedi") (elpy-use-cpython (or (executable-find "python3") (executable-find "/usr/bin/python3") (exe..
-
Emacs의 Programming 관련 공통 설정Programmer/Emacs 2017. 12. 14. 13:50
elpa (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (add-to-list 'package-archives '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/")) (setq package-enable-at-startup nil) (setq package-archive-priorities '(("melpa-stable" . 1))) (package-initialize) use-package (unless (package-installed-p 'use-package) (package-refresh-contents) (pack..
-
Emacs의 Scala 개발 환경Programmer/Emacs 2017. 12. 14. 11:25
sbt 설치 Ubuntu에서 sbt 0.13.15 설치하기 curl -L -o sbt.deb http://dl.bintray.com/sbt/debian/sbt-0.13.15.deb sudo dpkg -i sbt.deb sudo apt-get update sudo apt-get install sbt sbt 설정하기 ~/.sbt/0.13/plugins/plugins.sbt 파일을 편집한다. addSbtPlugin("org.ensime" % "sbt-ensime" % "1.12.14") 프로젝트 만들기 편의상, 프로젝트 디렉토리를 '~/my-project'로 가정한다. '~/my-project/project/build.properties' 파일에 프로젝트에 sbt 버젼을 명시한다. sbt.version=0.1..