프로그래밍 Better Programming
윈도우즈 10 프로 도커 설치하기 Install Docker Desktop on Windows
2020. 12. 25.윈도우용 도커 데스크탑은 마이크로소프트 윈도우용 Community 버전이다. 도커 허브로부터 윈도우즈용 도커 데스크탑을 다운로드받을 수 있다. 본 튜토리얼은 Windows 10 프로, 엔터프라이즈에 도커를 설치하는 내용으로, 홈버전 사용자의 경우 Install Docker Desktop on Windows Home을 참고한다. Download from Docker Hub System Requirements 먼저 도커 설치전에 다음 사항을 만족하는지 확인하자 1. 윈도우즈 10 64비트 : 프로, 엔터프라이즈 (Build 16299 이상) 윈도우 빌드버전은 다음과 같이 확인가능하다. 윈도우키+R 을 눌러 실행 창을 실행한 뒤 "winver"을 입력하고 확인을 누르면 된다. 2. Hyper-V 와 컨테이너 ..
Windows 10 에서 사용자 계정 추가하는 방법 netplwiz
2020. 12. 24.윈도우 10 사용자 계정 추가하는 방법 Windows 로고키 + R키를 누른 후 netplwiz 입력하고 확인을 클릭한다. 아래와 사용자 계정 창이 나타나면 추가 버튼을 클릭한다. 기존에 Microsoft 계정을 사용중이므로, 'Microsoft 계정없이 로그인(권장하지 않음)' 을 클릭하고 이 후 로컬 계정 버튼을 클릭하여 로컬 계정을 생성한다. 사용자 이름, 암호 등을 입력하여 계정을 추가한다. 새 계정을 선택한 상태에서 속성을 클릭한 후 그룹 등록 탭에서 '관리자'에 체크하고 적용 - 확인 버튼을 누르면 추가 계정 생성이 끝난다.
Go 로 hello world 출력하기
2020. 11. 16.앞서 설치한 GO 언어로 hello world 를 출력해보자. 2020/11/16 - [프로그래밍 Better Programming/고 Go] - 우분투 18.04에 Go 1.15 설치하기 Install Go 1.15 on Ubuntu 18.04 LTS 작업디렉토리(/home/fossa/go)에 새파일 hello.go 생성한 후 다음의 코드를 입력한다. package main import "fmt" func main() { fmt.Println("Hello, World!") } 위의 코드를 하나씩 살펴보자. 메인 패키지를 선언한다(패키지는 함수를 모으는 일종의 방법이다). fmt package 를 임포트한다. 해당 패키지는 콘솔 출력 및 텍스트 포맷팅 관련 함수를 포함하고 있으며, Go 를 설치할 때 생..
우분투 18.04에 Go 1.15 설치하기 Install Go 1.15 on Ubuntu 18.04 LTS
2020. 11. 16.Ubuntu 18.04 LTS 에 현재 기준 최신 버전인 Go 1.15 버전을 설치하는 방법을 알아보자. 1. Install Go language 먼저 우분투 최신 업데이트를 적용한다. (quintic) fossa@fossa:~$ sudo apt-get update (quintic) fossa@fossa:~$ sudo apt-get -y upgrade 다음으로 Go 바이너리 파일을 다운로드 받아야 한다. 다음 링크에서 OS 별 다운로드 링크를 확인할 수 있다. golang.org/dl/ 위의 링크를 복사한 뒤 다음과 같이 tmp 디렉토리에 다운로드 받는다. (quintic) fossa@fossa:~$ cd /tmp (quintic) fossa@fossa:/tmp$ wget https://golang.or..
윈도우즈10 Antimalware Service Executable 메모리 점유 과다 문제
2020. 3. 25.Antimalware Service Executable 프로세스가 메모리를 과다하게 점유하여 정상적인 앱실행이 어려운 경우 해결 방법입니다. Antimalware Service Executable (MsMpEng)은 Windows Defender 관련 파일입니다. 위의 스크린샷을 보면, 전체 메모리의 16.5% 를 차지 하고 있음을 알 수 있습니다. 전체 메모리 사용량은 99% 이구요. 상기 프로세스가 CPU 혹은 디스크 리소스를 과도하게 점유하는 증상이 나타나는 경우, 다음의 방법들을 차례대로 진행해보시기 바랍니다. [방법 1] ▶ 윈도우즈키 + Q 를 눌러 검색창에 작업 스케줄러라고 입력한다. 검색결과에서 작업 스케줄러를 선택 후 관리자 권한으로 실행을 선택한다. 해당 앱이 로딩되면, 작업스케줄 라이..
초보자를 위한 리눅스 tree 명령어 사용법 Linux ‘tree Command’ Usage Examples for Beginners
2020. 3. 15.Photo by Johannes Plenio from Pexels tree 는 디렉토리를 리스팅하거나 컨텐츠 내용을 볼 때 사용할 수 있는 간단한 명령어이다. 디렉토리 경로와 서브디렉토리내의 파일, 그리고 서브디렉토리와 파일의 전체 갯수 등을 보여준다. tree 프로그램은 리눅스, 도스, 윈도우즈 등 다양한 운영체제에서 사용가능하지만 여기서는 리눅스 환경에서의 활용에 대해 살펴본다. 본격적인 사용에 앞서 해당 라이브러리부터 설치해보자. (AnnaM) founder@hilbert:~/annam/kaggle$ sudo apt install tree Reading package lists... Done Building dependency tree Reading state information... Done T..
우분투 18.04 에 아파치 스파크 설치하기 Install Apache Spark on Ubuntu 19.04/18.04 & Debian 10/9/8
2019. 11. 4.Ubuntu 19.04/18.04 그리고 Debian 9/8/10 에 Apache Spark 를 설치하는 방법에 대해 알아봅니다. 설치에 앞서 시스템 패키지를 업데이트합니다. (AnnaM) founder@hilbert:~$ sudo apt -y upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done (AnnaM) founder@hilbert:~$ sudo apt -y upgrade Step 1: Install Java Apache Spark 는 자바를 필요로 합니다. 어떤 버전의 자바가 설치되어 있는지 java -version 으로 확인해..
아파치 웹서버 버추얼 호스팅 설정 How To Set Up Virtual Hosts in the Apache Web Server on Ubuntu 18.04
2019. 10. 21.아파치 웹서버를 사용하는 경우, 하나 이상의 도메인을 호스팅하기 위해 버추얼 호스트(Nginx 의 server blocks 과 유사)를 설정할 수 있다. 도메인 설정과 관련해서 더욱 자세한 내용은 introduction to DigitalOcean DNS 을 참조하기 바란다. 1. antilibrary.org 라는 도메인 이름으로 디렉토리를 생성한다. mkdir -p 상위경로도 함께 생성하라는 의미이다. (parabellum) founder@hilbert:~$ sudo mkdir -p /var/www/antilibrary.org/public_html 로그 파일이 저장될 디렉토리도 생성 (parabellum) founder@hilbert:~$ sudo mkdir /var/www/antilibrary.org..
아파치 삭제 후 재설치 apache2.service is not active, cannot reload.
2019. 10. 18.아래와 같이 아파치 서비스가 제대로 작동하지 않는 경우 아파치를 삭제하고 재설치하는 방법을 알아보자. 다음의 순서대로 진행하면 된다. (base) founder@hilbert:/etc/nginx/sites-available$ sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: failed (Result: exit-code) since Fr..
Dynalist - best outlining app for your best work Help center 소개
2019. 8. 3.workflowy https://workflowy.com/ 를 지난 달까지 사용하다 이번 달 들어 dynalist https://dynalist.io/ 로 옮겨탔습니다. 한 달 정도 workflowy 를 사용해보니 유용한 앱이라는 생각은 들었습니다. 무료 버전은 쓸 수 있는 목록에 제한이 있어 유료로 사용하기로 마음먹은 상황에서 돈을 더 주더라도 괜찮은 걸 선택해야겠다는 생각이 들었습니다. 그래서 workflowy 외에 어떤 것이 있는지 찾아보던 중 dynalist 를 알게 되었습니다. 일단 써봐야 알겠지만 한 눈에 보기에도 workflowy 보다는 풍부한 기능을 가진 것으로 보였습니다. 물론 월사용료도 그만큼 더 비싸긴했지만요. 다음과 같이 가입을 합니다. 구글 계정을 통해서도 간편하게 가입이 가능합니..
워드프레스 관리자 로그인 오류 Redirect loop when trying to login to /wp-admin/
2019. 6. 16.워드프레스 설치형 사이트에서 관리자로 로그인한 후 다음의 현상이 나타나는 경우가 있다. 화면 상단의 Admin Bar가 노출되지 않는다 또는 mysite.com/wp-admin 경로를 통해 관리 페이지로 이동하고자 했으나 반복해서 mysite.com 페이지로 리다이렉트된다 이 경우 다음 순서대로 하나씩 진행해본다. 로컬 브라우저의 쿠키 삭제 전체 플러그인 비활성화 - /wp-content/plugins/ 디렉토리를 plugins_OLD 로 변경한다 sudo mv plugins plugins_OLD 기본 테마로 변경 /wp-content/themes/ 디렉토리로 이동하여 현재 테마 디렉토리 이름을 theme_OLD 와 같이 변경 .htaccess 파일 삭제 - .htaccess_OLD 와 같이 이 파일의 ..
터미널세션 녹화 및 공유기 asciinema
2019. 4. 20.asciinema 는 터미널 세션을 녹화하고 웹상으로 공유할 수 있게 해주는 오픈소스 솔루션이다. 간단히 녹화가 가능하고, 플레이어를 멈추고 터미널 상의 코드를 복사 및 붙여넣기가 가능하다. 손쉽게 블로그 등의 포스팅에 플레이어를 넣을 수도 있다. Installation pip 를 이용해 다음과 같이 설치할 수 있다. https://pypi.org/project/asciinema/ (cooke) founder@casey:~$ pip install asciinema Collecting asciinema Downloading https://files.pythonhosted.org/packages/a7/71/771c859795e02c71c187546f34f7535487b97425bc1dad1e5f6ad2651..
리눅스 디렉토리 크기 구하기 How to Get the Size of a Directory in Linux
2019. 4. 4.ls 명령어를 이용하여 디렉토리 콘텐츠를 리스팅하는 경우, 디렉토리의 크기가 항상 4096 bytes (4 KB) 임을 확인할 수 있다. 아래를 보자. /var$ ls -al total 56 drwxr-xr-x 14 root root 4096 Oct 27 05:19 . drwxr-xr-x 25 root root 4096 Apr 4 06:37 .. drwxr-xr-x 2 root root 4096 Apr 4 07:36 backups drwxr-xr-x 13 root root 4096 Nov 9 07:00 cache drwxrwxrwt 2 root root 4096 Nov 18 06:25 crash drwxr-xr-x 47 root root 4096 Jan 19 09:10 lib drwxrwsr-x 2 ro..
아나콘다 패키지 삭제 conda remove
2019. 3. 15.아나콘다 환경에서 설치된 패키지를 제거하는 방법은 다음과 같습니다.아래 설치된 cx_oracle 패키지를 제거해보겠습니다.(pyenv) founder@merrow:~/pyenv$ conda list # packages in environment at /home/founder/anaconda3/envs/pyenv: # # Name Version Build Channel ca-certificates 2019.1.23 0 anaconda certifi 2018.11.29 py27_0 anaconda cx_oracle 7.0.0 py27h7b6447c_0 anaconda 아래와 같이 conda remove 명령으로 패키지 제거가 가능합니다. 형식은 다음과 같습니다. 간단하게 이 정도만 기억하시면 될 것 같은데요..
우분투 18.04에 워드프레스 설치하기 How To Install WordPress with LEMP on Ubuntu 18.04
2019. 2. 14.여기서는 우분투 18.04 서버 + LEMP stack (Linux, Nginx, MySQL, and PHP) 기반으로 워드프레스를 설치하는 방법을 알아본다. Prerequisites본격적인 진행에 앞서 다음의 준비를 마쳐야 한다. - sudo 사용자 생성 - LEMP 스택 설치 : 이미 앞선 게시물에서 별도로 다룬바 있다 2018/10/27 - [리눅스 Linux] - 우분투 18.04 에 LEMP 스택 설치하기 How To Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 18.04- SSL 을 통한 사이트 보안도메인이 있는 경우 https://www.digitalocean.com/community/tutorials/how-to-secure-nginx..
아나콘다 matplotlib 설치
2018. 12. 15.아나콘다 matplotlib 설치12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394(tfKeras) founder@hilbert:~/tfKeras$ conda install -c conda-forge matplotlibSolving environment: done ## Package Plan ## environment location: /home/founder/anaconda3/envs/tfKeras added / updated specs..
데비안 9 파이어폭스 설치하기 How to install latest Firefox Browser on Debian 9 Stretch Linux
2018. 11. 25.먼저 최신 Firefox tar-ball 다운로드한다.12345678910111213141516171819fuchsia@fuchsia:~$ wget -O FirefoxSetup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US"--2018-11-24 07:58:14-- https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-USResolving download.mozilla.org (download.mozilla.org)... 35.166.169.68, 52.41.13.96, 54.213.7.119Connecting to downlo..
Debian 9 서버 VNC 설치 및 환경설정 How to Install and Configure VNC on Debian 9
2018. 11. 24.구글 클라우드 플랫폼 환경 중 Deep Learning VM 의 기본 운영체제인 Debian 9 서버에 VNC 를 설치해보도록 하자. 데스크탑 환경 및 VNC 서버 설치기본적으로 Debian 9 서버는 그래픽 데스크탑 환경이나 VNC 서버를 제공하지 않으므로, 아래 관련 패키지를 설치하는 것에서 시작해야 한다. 특히 최신 Xfce 데스크탑 환경과 TightVNC 패키지를 사용할 예정이다.먼저 패키지 리스트를 업데이트한다. 1~$ sudo apt updateColored by Color ScriptercsXfce 데스크탑 환경을 설치한다. 설치과정에서 키보드 레이아웃 선택 화면이 뜨면 해당되는 옵션을 선택 후 설치를 계속 진행한다.1~$ sudo apt install xfce4 xfce4-goodiescs..
Debian 버전 체크하기
2018. 11. 24.Debian 버전을 체크하는 가장 간단한 방법은 /etc/issue 파일의 내용을 보는 것이다.12fuchsia@fuchsia:~$ cat /etc/issueDebian GNU/Linux 9 \n \lcs 하지만 상기 명령어는 현재 Debian 업데이트 포인트 릴리스를 보여주지 않는다. 따라서 좀 더 정확한 정보는 다음 명령을 통해서 살펴볼 수 있다.12fuchsia@fuchsia:~$ cat /etc/debian_version9.6Colored by Color Scriptercs 그리고 /etc/os-release release 파일을 통해서도 체크할 수 있다.123456789fuchsia@fuchsia:~$ cat /etc/os-releasePRETTY_NAME="Debian GNU/Linux 9 (..
워드프레스 이미지 업로드 사이즈 수정하기 (Nginx)
2018. 11. 11.워드프레스의 경우 기본적으로 최대 업로드 파일 크기가 2MB로 설정되어 있어 불편한 점이 많다. 최대 사이즈 설정을 변경해보자. 여기서는 php.ini 파일의 수정값을 통해 진행해보기로 한다.php.ini 파일은 우분투의 경우 통상 아래의 2군데에 위치해있는데 2개의 파일 모두를 수정해야 한다. /etc/php/7.2/fpm/php.ini/etc/php/7.2/cli/php.ini 수정해야할 내용은 두 파일 모두 동일하다. 먼저 fpm 디렉토리의 설정파일부터 수정해보자. 1root@hilbert:/etc/php/7.2/fpm# nano php.inics파일을 열어 먼저 upload_max_filesize 를 기존 2M 에서 원하는 크기로 수정해준다. Ctrl + W 를 이용하면 손쉽게 해당 항목을 찾을 ..
우분투 18.04 에 Nginx phpMyAdmin 설치하기 Installing phpMyAdmin for Nginx on Ubuntu 18.04
2018. 11. 9.우분투 18.04 Nginx 기반으로 작동하는 phpMyAdmin 을 구성해보자. phpMyAdmin 은 오픈 소소 소프트웨어로 GUI 를 통한 MySQL 데이터베이스를 관리하는데 도움을 준다. Install phpMyAdmin패키지 업데이트와 phpMyAdmin 설치를 동시에 진행하자. 아래를 보면 2개의 명령문이 && 로 결합되었음을 알 수 있다. 앞 부분은 최신 버전으로 패키지를 업데이트하는 부분이고, 뒷 부분은 phpMyAdmin 을 설치하는 부분이다. y 와 엔터를 눌러서 계속 진행한다. 1~$ sudo apt update && sudo apt install phpmyadmincs 물론 아래 화면은 사용자 환경에 따라 상이할 수 있다. Yes 를 선택하고 엔터를 눌러서 데이터베이스를 설치하고 구..
MYSQL 시작, 종료, 재시작, 상태보기 How to restart MySQL
2018. 11. 8./etc/init.d 에 위치한 스크립트를 사용하여 MySQL 을 시작, 종료, 재시작할 수 있다. 다음과 같다. 시작1~$ sudo /etc/init.d/mysql startcs 종료1~$ sudo /etc/init.d/mysql startcs 재시작하기12 ~$ sudo /etc/init.d/mysql restart[ ok ] Restarting mysql (via systemctl): mysql.service. Colored by Color Scriptercs 구동 상태 확인하기1234567891011121314 ~$ sudo /etc/init.d/mysql status● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/sys..
MySQL 5.7.24 비밀번호 변경
2018. 11. 8.MySQL 5.7 버전 이상의 사용자 계정의 비밀번호를 변경하는 방법은 다음과 같다.현재 사용자 계정의 현황을 살펴보자.1234567891011121314mysql> SELECT Host,User,authentication_string FROM mysql.user;+---------------+------------------+-------------------------------------------+| Host | User | authentication_string |+---------------+------------------+-------------------------------------------+| localhost | root | *4A5FDHHID9DJD97D9IDKJD09D0D89..
Go 웹어플리케이션 만들기 Building a Go Web App from Scratch
2018. 10. 13.Go 를 이용한 간단한 웹 어플리케이션을 만들어보자. golang 은 이미 설치되어 있다고 가정한다. Go 설치 이전이라면 다음 포스팅을 참조한다. http://redhotkorea.tistory.com/?id=1821 설치가 끝나면 go 디렉토리로 이동한다. go 디렉토리 아래에 bin 과 src 폴더를 만들고, src 폴더 아래에 welcome-app 폴더를 생성하자. 123~/go/src# mkdir welcome-app~/go/src# cd welcome-app~/go/src/welcome-app#cs다음과 같은 디렉토리 구조를 가지게 된다.1234567/home / /go bin/ //Empty for now src/ /welcome-appcs 구체적인 코딩에 앞서 프런트 엔드 셋업부터 진행하자..
Go 언어 입문 - Control Structures - Functions (2) (golang-book)
2018. 9. 9.Returning Multiple Values다수의 값을 함수를 통해 반환할 수 있다.1234567func f() (int, int) { return 5, 6} func main() { x, y := f()}cs이를 위해서 3가지 변경이 필요하다. 먼저, 반환형을 변경해야 하고( ,, 로 구분). 다음으로 표현식을 변경해야한다(, 로 구분). 마지막으로 := or = 의 좌측에 다수의 값이 존재할 수 있도록 대입문을 변경해야 한다. 주로 결과와 에러값을 같이 포함해서 반환하거나 또는 성공 여부를 가리는 불린값을 같이 반환할 때 주로 쓰인다. Variadic FunctionsGo 함수에는 특수한 형식의 함수가 존재하는데, 가변함수가 그것이다. 다음의 예를 보자.123456789101112131415pack..
Go 언어 입문 - Control Structures - Functions (1) (golang-book)
2018. 9. 9.함수라는 것은 인풋 파라메터를 아웃풋 파라메터로 매핑시키는 독립된 코드를 말한다. 함수 (또는 프로시져나 서브루틴으로 알려져있기도 하다)는 종종 블랙박스에 비유되기도 한다. 지금까지 살펴봤던 프로그램에는 오직 하나의 함수만 포함되어 있었다. 1func main() {}cs이제 다수의 함수를 포함한 프로그램을 만들어보자. Your Second Function앞서 살펴봤던 프로그램을 다시 살펴보자.123456789101112package main import "fmt" func main() { xs := []float64{98,93,77,82,83} total := 0.0 for _, v := range xs { total += v } fmt.Println(total / float64(len(xs)))}Co..
Go 언어 입문 - Control Structures - Maps (golang-book)
2018. 9. 5.map은 순서없는 key-value 쌍의 집합체이다. associative array 라고도 알려져 있으며, 해시 테이블 또는 딕셔너리라고도 표현되기도 한다. 연관 키를 사용하여 값을 찾을 때 사용된다. 아래의 예를 보자. 1var x map[string]intcsmap 타입은 map 이라는 키워드 다음에 키의 타입이 괄호 안에 표시되고, 뒤이어 값의 타입이 표시된다. 위의 예시같은 경우 다음과 같이 읽으면 된다. “x is a map of strings to ints.” 배열이나 슬라이스와 마찬가지로 maps 은 괄호롤 사용해접근이 가능하다. 다음을 실행시켜보자. 123456789package main import "fmt" func main() { var x map[string]int x["key"]..
Go 언어 입문 - Control Structures - Slice (golang-book)
2018. 9. 4.슬라이스는 배열의 한 부분이다. 배열과 마찬가지로 슬라이스는 인덱스가 가능하며 길이를 가진다. 하지만 배열과는 달리, 그 길이라는 것이 가변적이다. 다음의 예제를 보자. 1var x []float64cs배열과의 유일한 차이점은 괄호 안의 길이를 나타내는 부분이 비워져 있다는 것이다. 위의 경우에는 x 가 길이 0 으로 생성이 되었다.내장 make 함수를 이용하여 슬라이스를 생성할 수 있다. 아래는 길이 5의 float64 배열과 관련된 슬라이스를 생성한다. 1x := make([]float64, 5)cs슬라이스는 배열과 연관이 있으며, 절대 배열의 크기보다 클 수는 없다. make 함수는 3번째 인수도 갖는데, 아래의 예에서 10은 슬라이스가 가리키는 내포된 배열의 용량을 의미한다. 1x := make(..
Go 언어 입문 - Control Structures - Array (golang-book)
2018. 9. 1.Go 에서 array 는 다음과 같이 표현된다. 1var x [5]intcsx 는 5개의 int 로 구성된 array 이다. 다음의 코드를 실행해보자.123456789package main import "fmt" func main() { var x [5]int x[4] = 100 fmt.Println(x)}cs실행결과는 다음과 같다.123~/go/src/golang-book/chapter6# go run main.go[0 0 0 0 100] Colored by Color Scriptercsx[4] = 100의 의미는 “array x 의 5번째 원소의 값을 100 으로 셋팅하라” 는 것이다. x[4] 가 5번째 원소를 나타낸다는 사실이 이상해보일 수 있으나, array 는 0에서 시작하기 때문에 이상할 것..
Go 언어 입문 - Control Structures - Switch (golang-book)
2018. 8. 31.이제 숫자 옆에 영문 이름도 같이 넣는 프로그램을 만들어보자. 현재까지의 지식으로는 다음과 같이 짤 수 있을 것이다. 12345678910111213if i == 0 { fmt.Println("Zero")} else if i == 1 { fmt.Println("One")} else if i == 2 { fmt.Println("Two")} else if i == 3 { fmt.Println("Three")} else if i == 4 { fmt.Println("Four")} else if i == 5 { fmt.Println("Five")}cs 이건 말도 안된다. switch 명령을 이용해보자. 다음과 같이 다시 작성할 수 있을 것이다. 123456789101112131415package main impo..