C/C++ 빌드 속도를 줄이는 방법 Unity Build

데이터 프로세싱을 할 때 고속으로 파일을 읽어서 계산을 하거나 비정형 데이터를 처리할 때 Go lang, Rust, C/C++을 써야 할 때도 있습니다.

Python, R, Shell script 만으로는 해결이 안되는 것들이 있습니다.

데이터 작업을 할 때 컴파일러를 포함한 빌드 언어의 문제는 여러가지가 있지만 큰 문제는

  • 인터랙티브 모드로 실행이 되지 않아서
  • 복잡한 코드일 수록 빌드 시간이 너무 길어서

위의 두 가지입니다.

데이터 과학에서는 첫번째 문제가 더 큰 장벽이 됩니다만 가끔 계산속도가 빠른 코드로 집계를 하거나 기계학습, 수리적 계산을 해야 할 때는 속도만을 위해서 사용성을 포기하고 컴파일 랭귀지를 사용할 때가 있습니다.

어쨌든 C/C++을 사용할 때 빌드 시간이 길어서 생기는 문제를 해결하는 획기적이면서 간단한 방법을 알게되어 소개드립니다.

Unity Build라는 것입니다.

원리는 간단한데 소스 코드를 한 개의 파일로 만들어서 빌드하는 것입니다.

자세한 내용은 아래의 블로그에 잘 설명되어 있으니 참고해 보세요.

우분투 18.04 에서 Python3.6 제거하기 – Uninstall python3.6 from Ubuntu 18.04

우분투 18.04에서 Python3.6을 제거하는 방법입니다.

제거를 하고 싶은 이유는

우분투에 Python 새버전을 추가로 설치하다보면 구버전이 계속 남아서 패키지를 설치할때 혼동이 되거나 오류가 발생하기도 해서 꼭 구버전을 제거하고 싶을 때는 다은과 같이 합니다.

그런데 제대로 안되는 경우가 많아서 하지 않는 것이 좋습니다. 우분투가 기본 패키지 버전을 관리하거나 시스템을 관리하는데 파이썬을 설치하기 때문에 함부로 제거하면 이런 시스템에 문제가 발생합니다.

어쨌든 파이썬을 제거하려고 한다면 다음의 명령대로 하면 됩니다.

sudo add-apt-repository --remove ppa:fkrull/deadsnakes  # 레파지토리 제거. 선택사항
sudo apt-get update  # apt 업데이트
sudo apt-get remove --purge python3.6  # 패키지 퍼지

우분투 18.04에 R 설치하기 – Install R on Ubuntu 18.04

우분투 18.04에 R을 설치하는 방법입니다.

요점

  • apt로 설치하는 것입니다.
  • Ubuntu 20.04에 설치하는 방법과는 조금 다를 수 있습니다.
  • 시스테에 최소 1Gb 메모리가 필요합니다.

리눅스 필요 패키지 설치

필요한 리눅스 패키지를 먼저 설치합니다.

sudo apt install apt-transport-https software-properties-common

R패키지가 있는 CRAN 레파지토리를 등록하고 GPG 키도 등록

R패키지를 설치하려면 CRAN을 apt에 등록하고 gpg키도 등록해줘야 합니다.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'

R 설치

apt를 업데이트해주고 r-base를 설치하면 끝납니다.

sudo apt update
sudo apt install r-base

R버전 확인

다음의 명령어로 버전을 확인합니다.

R --version

최신버전인지 확인합니다.

R version 4.1.2 (2021-11-01) -- "Bird Hippie"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.

젠킨스 포트 변경 – Changing Jenkins HTTP port

젠킨스(Jenkins)의 웹서비스 포트는 8080입니다.

우분투 리눅스에서 젠킨스의 포트를 변경하려면 아래의 파일을 수정해야합니다.

sudo vim /etc/default/jenkins

8080이 기본 포트인데 다른 적당한 포트로 변경해 줍니다.

파일 안에서 아래의 줄을 찾아서 포트를 변경하면 됩니다.

# HTTP_PORT=8080
HTTP_PORT=9090

변경했으면 젠킨스를 재시작합니다.

sudo /etc/init.d/jenkins restart

초간단 Node.js 업그레이드 방법

Linux 서버에 설치된 Node.js를 버전업하는 방법입니다.

요약

  • npm으로 n 이라는 영어 1글자 짜리 이름의 패키지를 설치
  • n으로 stable, lastest 등을 선택해서 원하는 버전으로 업그레이드

stable(안정판), latest(최신판)중에서는 안전하게 stable을 선택하는 것이 좋습니다.

명령어

아래에 적어둔 명령어를 따라서 순서대로 하면 됩니다.
root 권한이 있어야 합니다.

node -v  # node.js 버전 확인
sudo npm cache clean -f  # npm 캐시 삭제
sudo npm install n  # n패키지 설치
sudo n stable  # stable로 설치
# 결과는 아래와 같음
# installed : v16.13.1 (with npm 8.1.2

R언어 Windows에서 한글 메세지가 깨져 보일때

R과 Rstudio를 Windows에서 사용하다보면 한글로 나와야 할 메세지가 깨져 보일 때가 있습니다. 특히 에러메시지나 경고메세지가 보일 때 그렇습니다.

아래 그림에서 보이는 것 처럼 마름모꼴 도형으로 깨져 보입니다.

언어설정을 영어로 변경한다

언어 설정을 영어로 변경하면 영어로는 메세지를 볼 수 있습니다.

Sys.setenv(LANG = "en_US.UTF-8")

윈도우에서 경고 메세지를 한글로 보는 방법은 없다

깨진것을 고쳐서 한글로 보는 방법은 아직 없습니다. 영어로 바꿔서 봐야 합니다. 다음과 같이 모든 메세지를 영어로 변경해주면 됩니다.

원인은 R이 UTF-8을 쓰고 Windows가 euc-kr을 쓰기 때문이다

R은 멀티바이트 언어 즉, 로마 알파벳 계열을 사용하지 않는 언어인 한국어, 중국어, 일본어같은 것을 표현할 때 메세지를 모두 UTF-8을 사용하는데 윈도우는 내부에서 UTF-8을 처리할 수는 있지만 화면에 표현할 때는 무조건 euc-kr를 사용합니다. 애플리케이션에 따라서는 이 문제를 해결한 것들이 있지만 Rstudio는 그 처리를 해주지 않습니다.

그래서 영어로 봐야 합니다.