RStudio 1.1 릴리즈

지난 10월 9일 RStudio 1.1이 릴리즈되었습니다.

설치를 하고 나면 다크테마로 설정된 달라진 분위기의 애플리케이션 모습을 볼 수 있습니다.

RStudio v1.1

공식 내용은 RStudio blog에서 확인할 수 있습니다.

https://blog.rstudio.com/2017/10/09/rstudio-v1.1-released/

업데이트 내용은

  • 다크테마 지원
  • 데이터베이스 컨넥터 지원 및 탐색 기능
  • 오브젝트 탐색 기능 강화
  • 터미널 탭 지원
  • 기타 소소한 업데이트

입니다.

당연한 것이겠지만 Rstudio server 1.1도 몇가지 기능 개선과 더불어 릴리즈 되었습니다.

 

Ubuntu에 Go 1.8.x 설치하기

Ubuntu에서 다음과 같은 명령으로 go 언어를 설치할 수 있습니다.

sudo apt-get install golang-go

하지만 현재의 최신 버전은 1.8 이상인데 1.6 정도의 조금 오래된 버전이 설치됩니다.
일반적인 작업을 할 때는 1.6도 큰 문제는 없지만 Go 최신 패키지이나 애플리케이션 중에는 1.8 이상에서만 작동하게 제작된 것이 생겨서 반드시 1.8 이상으로 버전업을 해야 할 수 있습니다.
Go언어를 설치할 때 1.6을 설치했다 나중에 업그레이드하면서 속썪이느니 애초에 높은 버전을 설치하는 것이 좋습니다.
Go언어의 최선 버전은 다음과 같이 설치합니다.

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go

설치된 버전은 go version 명령으로 확인할 수 있습니다.

go version

위의 결과는 제 환경에서는 다음과 같이 보입니다.
go version go1.8.3 linux/amd64
1.8.3이 설치된 것을 확인했으니 이제 사용하면 됩니다.

sudo: unable to resolve host xxxxxx 에러 메세지 해결 방법

VPS(클라우드나 가상시스템) 을 사용하는 경우가 이미 생성된 이미지를 그대로 복구했을 때 hostname이 제대로 설정되어 있지 않으면 sudo 명령을 사용할 때 보안 문제로 에러가 발생하며 정상작동하지 않습니다.
아래의 명령어로 현재 Linux에 설정되어 있는 hostname을 알아냅니다.

cat /etc/hostsname

그리고 /etc/hosts 를 열어서 줄을 추가해줍니다.
만약 위의  /etc/hostname에서 알아낸 hostname이 yourhostname 이라면 아래와 같이 합니다.

127.0.0.1 yourhostname

 

MySQL 사용자 권한 설정 방법

MySQL에서 사용자의 권한을 모두 열어주는 query입니다.

  1. 먼저 host에 terminal로 접속합니다. 또는 권한이 있는 사용자의 계정으로 원격으로 접속합니다.
  2. mysql 데이터베이스를 현재 디렉토리로 변경합니다.
  3. 다음의 query를 실행합니다.
  4. root 계정으로 localhost를 제외한 모든 host로부터 접속하는 계정에 대해서 전체 권한을 열어주려면 그대로 실행하면 됩니다.
    1. 만약 특정 계정과 특정 호스트를 지정하려면 ON *.* TO root@’%’에서 root와 ‘%’ 부분을 원하는 것으로 변경하면 됩니다.
GRANT EXECUTE
    , PROCESS
    , SELECT
    , SHOW DATABASES
    , SHOW VIEW
    , ALTER
    , ALTER ROUTINE
    , CREATE
    , CREATE ROUTINE
    , CREATE TEMPORARY TABLES
    , CREATE VIEW
    , DELETE
    , DROP
    , EVENT
    , INDEX
    , INSERT
    , REFERENCES
    , TRIGGER
    , UPDATE
    , CREATE USER
    , FILE
    , LOCK TABLES
    , RELOAD
    , REPLICATION CLIENT
    , REPLICATION SLAVE
    , SHUTDOWN
    , SUPER
ON *.* TO root@'%'
WITH GRANT OPTION
;
FLUSH PRIVILEGES
;

 
참고로 사용자를 추가하는 query는 MariaDB를 기준으로 다음과 같습니다.

CREATE USER OR REPLACE 'root'@'%' IDENTIFIED BY 'YOUR-PASSWORD';

 

포항공대 POSTECHX AI 및 데이트사이언스 관련 온라인 무료 강의

포항공대에서 개설한 MOOC(온라인 오픈 강의) 가 있습니다.

http://www.postechx.kr/ko/school/gsit

2017-10-13 기준으로 총 6개의 온라인 강의가 개설되서 진행중입니다. 밑에 강의 정보가 간단히 있습니다. 관심이 있으시면 직접 사이트에 접근해서 수강신청하시면 됩니다. 무료입니다.

Big Data
컴퓨터공학
2017-09-04 ~ 2017-12-03
Big Data
컴퓨터공학
빅데이터의 개념, 기술적인 챌리지와 다양한 접근 방법에 대한 이해를 토대로 빅데이터 문제를 직접 실습하고…

컴퓨터 공학 입문 (SPOC)
컴퓨터공학
2017-09-22 ~ 2017-11-30
컴퓨터 공학 입문 (SPOC)
컴퓨터공학
본 강좌는 포스텍 및 포항제철고 재학생 대상 SPOC (Small Private Online Course…

SDN – NFV
컴퓨터공학
2017-09-04 ~ 2017-12-10
SDN – NFV
컴퓨터공학
SDN 및 NFV 기술을 소개하고 오픈 네트워킹 에코시스템을 구성하는 다양한 오픈소스 프로젝트의 사용방법에…

Software Development Process
컴퓨터공학
2017-09-04 ~ 2017-11-26
Software Development Process
컴퓨터공학
소프트웨어가 개발되는 방법을 공학적인 관점에서 살펴보고 개발 방법론이 시대의 요구에 따라서 어떻게 변해왔고…

Advanced Computer Architecture
컴퓨터공학
2017-09-04 ~ 2017-12-10
Advanced Computer Architecture
컴퓨터공학
컴퓨터 구조 개념들을 깊이 있게 이해하는 것을 목표로 하는 강좌입니다.

Internet of Things
컴퓨터공학
2017-09-04 ~ 2017-12-10
Internet of Things
컴퓨터공학
This course aims at introducing the general concepts and…

Google Cloud Engine IP 대역 알아내기

Google Cloud Engine (줄여서 이하 GCE)로부터 회사의 서비스에 발생시키는 기계적인 트래픽을 알아내기 위해서 GCE의 전체 IP대역을 알아내서 확인해 보려고 했는데 여기저기 검색해 본 결과 DNS lookup을 하면 되는 것을 알아냈습니다.

이렇게 하시면 됩니다.

for LINE in `dig txt _cloud-netblocks.googleusercontent.com +short | tr " " "\n" | grep include | cut -f 2 -d :`
do
	dig txt ${LINE} +short
done | tr " " "\n" | grep ip4  | cut -f 2 -d : | sort -n

명령의 결과는 밑에 있습니다.

8.34.208.0/20
8.35.192.0/21
8.35.200.0/23
23.236.48.0/20
23.251.128.0/19
35.184.0.0/14
35.188.0.0/15
35.190.0.0/17
35.190.128.0/18
35.190.192.0/19
35.190.224.0/20
35.192.0.0/14
35.196.0.0/15
35.198.0.0/16
35.199.0.0/17
35.199.128.0/18
35.200.0.0/15
35.202.0.0/16
35.203.0.0/17
35.203.128.0/18
35.203.240.0/20
35.204.0.0/16
35.206.64.0/18
104.154.0.0/15
104.196.0.0/14
107.167.160.0/19
107.178.192.0/18
108.170.192.0/20
108.170.208.0/21
108.170.216.0/22
108.170.220.0/23
108.170.222.0/24
108.59.80.0/20
130.211.128.0/17
130.211.16.0/20
130.211.32.0/19
130.211.4.0/22
130.211.64.0/18
130.211.8.0/21
146.148.16.0/20
146.148.2.0/23
146.148.32.0/19
146.148.4.0/22
146.148.64.0/18
146.148.8.0/21
162.216.148.0/22
162.222.176.0/21
173.255.112.0/20
192.158.28.0/22
199.192.112.0/22
199.223.232.0/22
199.223.236.0/23
208.68.108.0/23

많지 않은 것 처럼 보이지만 CIDR를 모두 풀어서 IP주소로 바꿔 놓으면 무지하게 많습니다. (구글 스케일. ‘ㅡ’;)

CIDR 형식으로 리턴되기 때문에 start, end 형식으로 바꾸시려면 Python을 사용하던지 해서 CIDR에서 Start IP와 End ip를 추출하면 됩니다. 시간이 되면 간단한 예제를 업데이트 해보겠습니다.