목록전체 글 (259)
귀퉁이 서재
블로그 작업 후 로컬 변경사항 반영 terrace/frontend/home/src에 작업을 위한 vue 파일들이 있습니다. 작업을 해준 뒤 frontend디렉토리에서 ./update.sh cd .. git add -A git commit make deploy ./deploy_to_S3.sh ./update.sh는 npm run build를 한 결과물이 담긴 dist 디렉토리를 web_root에 담는 작업입니다. git add, commit을 한 뒤 make deploy를 하면 EC2 git 계정으로 변경된 작업물이 push 되고, ./deploy_to_S3.sh를 하면 S3로 빌드 결과물이 반영됩니다. 여기까지 하고 도메인 주소로 들어가면 변경된 사항이 반영되어 있을 겁니다. 블로그 디자인 작업을 위한 ..
지금까지 로컬의 작업물을 EC2로 올리는 방법을 배웠습니다. EC2보다는 S3가 더 저렴하므로 이를 S3로 옮겨보겠습니다. 그전에 도메인을 하나 구매해보겠습니다. name cheap 사이트에 들어가 각자가 원하는 도메인 주소를 구매한 뒤 도메인과 ip를 연결해봅시다. 13.125.232.34를 bkshin.com과 연결을 하는 작업입니다. 이에 대해서는 간단한 구글링을 통해서도 알 수 있으므로 여기서 디테일하게 다루지는 않겠습니다. 도메인을 ip와 연결했다는 가정하에 진행하겠습니다. S3 버킷 만들기 우선, AWS S3 버킷을 만들어야 합니다. AWS S3에서 '버킷 만들기'를 누릅니다. 이름 및 리전 버킷 이름: bkshin.com (도메인 이름) 옵션 구성 Default 설정 권한 설정 4개 체크 모..
EC2 git으로 push하기 로컬에서 작업한 결과물을 EC2 git 계정으로 push를 하면 지난번에 만들어준 post-receive가 빌드와 서버 재부팅을 자동으로 해줄 것입니다. 로컬이 결과물을 EC2 git으로 push해봅시다. EC2 연결 후 sudo -u git bash cd cd .ssh ls -al 현재 authorized_keys가 root, root 소유이므로 이를 git 계정 소유로 바꿔줘야합니다. sudo chown git authorized_keys sudo chgrp git authorized_keys 이제 로컬로 다시 돌아가 terrace_hook 디렉토리로 master브랜치를 push해보겠습니다. exit logout cd terrace git push git@13.125.2..
AWS EC2 인스턴스 생성 블로그 서비스를 구현하기 위해서는 서버가 필요합니다. 여기서는 AWS EC2를 활용할 것입니다. AWS EC2가 무엇인지는 본 링크를 참고하시기 바랍니다. (Reference1) 쉽게 말하자면 EC2는 가상의 컴퓨팅 파워를 제공합니다. 어떤 프로그램을 돌리기 위해서는 컴퓨터가 필요합니다. (당연한 말이지만..) 언제 어디서든 블로그에 접속하기 위해서는 24시간 돌아가는 컴퓨터 (서버)가 필요하며, 이 컴퓨터(서버)에 블로그 서비스가 구축되어 있어야 합니다. 이를 위해 물리적인 서버 컴퓨터를 활용할 수도 있지만 비쌉니다. 저렴한 가격에 물리적인 제약없이도 컴퓨팅 파워를 제공받을 수 있는 곳이 바로 AWS입니다. AWS에는 다양한 서비스가 있지만 그 중 EC2를 활용할 것입니다...
지금까지 블로그 기본 뼈때를 만들고 빌드까지 했습니다. 추후에는 AWS를 통해서 블로그를 띄울 겁니다. 그에 앞서 본 챕터에서는 github에 연결하는 방법에 대해 배워볼 것입니다. github 연결법을 이미 알고 계신 분은 다음 챕터로 넘어가셔도 됩니다. Github 우선 git은 github을 이용할 것입니다. github에 repository를 하나 생성합니다. terrace 디렉토리에서는 .gitignore에 bin을 추가해줍니다. .gitignore에 있는 디렉토리 혹은 파일은 git의 영향을 받지 않습니다. 추가로 home 디렉토리 안에서 .gitignore에 아래 파일 및 폴더를 지정해줍니다. .DS_Store node_modules /dist # local env files .env.loc..
Shell Script를 활용한 npm 빌드 홈 디렉토리에서 cd terrace/frontend vi update.sh update.sh에 아래 코드를 추가하고 저장해줍니다. cd home npm run build rm –rf ../../web_root cp –r dist ../../web_root 위 코드는 home 디렉토리로 들어가 빌드를 해준 뒤 기존의 web_root 디렉토리를 삭제해주고 빌드의 결과물이 담기는 dist 디렉토리를 다시 web_root로 카피하는 명령어입니다. 여기서 sh 파일은 shell script 파일입니다. shell script란 line by line의 코드를 자동으로 실행해주는 프로그램입니다. 즉, ./update.sh를 해줘서 shell script를 실행해주면 위 ..
빌드하기 vue로 만든 소스코드를 아래와 같이 빌드합니다. cd terrace/frontend/home npm run build 빌드란 해당 프로그램을 테스트하고 검사하여 배포하기 위해 수행하는 행위의 집합이라고 생각하시면 됩니다. (Reference1) 빌드의 결과물은 dist 디렉토리에 저장됩니다. 이를 배포를 위한 web_root 디렉토리로 카피하겠습니다. cp -r dist ../../web_root Root Handler 만들기 cd ../../ mkdir src cd src v main.go src 디렉토리에 Root Handler 기능을 하는 main.go라는 파일을 만듭니다. main.go에 아래 코드를 그대로 붙여넣기 하시면 됩니다. package main import ( "fmt" "i..
IUS-release.rpm 설치 home directory에서 sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm IUS는 리눅스를 위한 Red-Hat Package Manager(RPM) 패키지를 제공하는 Community Project입니다. (Reference1) 파이썬 설치 본 블로그에서는 python을 사용하지 않습니다. 하지만 아래에서 설치할 Neovim을 사용하기 위해 python이 필요합니다. 파이썬은 아래와 같이 설치합니다. sudo yum install -y python36u python36u-libs python36u-devel python36u-pip 파이썬을 설치한 뒤 아래와 같이 조금 손을 봐줘야합니다. 위..
다른 언어를 사용해도 되지만 본 프로젝트에서는 Go 언어를 사용할 것입니다. Go 언어 설치를 위해서는 home directory에서 mkdir temp cd temp sudo yum -y install wget wget https://dl.google.com/go/go1.11.4.linux-amd64.tar.gz wget으로 받아오는 go 버전은 계속 업그레이드가 될 수 있으므로 최신버전으로 설치합니다. golang 홈페이지에 들어가면 아래와 같이 Linux 최신버전을 볼 수 있습니다. go를 다운받을 때 확장자가 tar.gz입니다. 이는 압축 확장자이며, 압축을 풀어 사용할 수 있습니다. 다운받은 go 아카이브의 압축을 아래와 같이 풉니다. (Reference1) temp directory에서 tar..
NPM설치 NPM(Node Package Manager)란 자바스크립트 기반의 패키지 매니저입니다. (Reference1) 이름처럼 NPM은 Node.js로 만들어진 모듈을 웹에서 받아 설치하고 관리해주는 프로그램입니다. 사용자는 명령어를 통해 공개된 모듈을 설치하고 활용할 수 있습니다. NPM 및 vue-cli 3.0을 아래와 같이 설치할 수 있습니다. vue-cli를 통해 터미널에서 간단한 명령어로 프로젝트 디렉토리를 만들 수 있습니다. sudo yum -y install npm sudo npm install -g @vue/cli (-g는 global의 약자이며, 다른 계정들에서도 사용할 수 있음) vue --verison 을 치면 Node version을 업그레이드 하라는 경고 메시지가 나올 겁니다..
이제 개발환경세팅을 위한 각 종 패키지를 설치하겠습니다. ZSH 설치 Z Shell (zsh)는 기본 터미널보다 조금 더 예쁘고 사용하기 좋은 쉘이라고 보면 됩니다. home directory에서 아래 커맨드를 입력해주면 설치가 됩니다. sudo yum -y install zsh yum은 레드헷 (Red Hat/CentOs/Fedora) 계열에서 사용할 수 있는 자동설치 도구입니다. (Reference1) Wget설치 Wget은 웹 서버로부터 콘텐츠를 가져오는 프로그램을 뜻합니다. 월드 와이드 웹(www)과 get의 합성어이며, HTTP, HTTPS, FTP 프로토콜을 통해 내려받기를 지원합니다. (Reference2) sudo yum -y install wget zsh-completions 설치 cd ..
포트포워딩 세팅 앞 글에서 알아본 포트포워딩을 적용하도록 하겠습니다. VirtualBox를 켜고 CentOS를 선택한 뒤 설정 - 네트워크 - 고급 - 포트 포워딩 순으로 클릭합니다. 포트포워딩 규칙은 아래와 같이 세팅해줍니다. 게스트 IP는 CentOS를 실행한 뒤 ip a 혹은 ifconfig를 치면 볼 수 있습니다. 원래는 호스트 포트를 BLOG 8000, HTTP 8888, SSH 22로 설정했으나, 기존 가상환경은 그대로 둔 채 새로운 가상환경을 구축함에 따라 위와 같이 설정했습니다. CentOS를 헤드리스 시작해둡니다. PuTTY 가상환경 원격접속 우선, PuTTY를 설치합니다. PuTTY를 실행한 뒤 Host Name에 127.0.0.1, Port에 22, Saved Sessions는 아무 ..
PuTTY란? 본 블로그 개발 프로젝트에서는 PuTTY를 사용해 작업할 겁니다. PuTTY(이하 푸티)는 가상 단말기 프로그램입니다. 서버는 물리적으로 떨어져 있어도 단말 장비를 통해서 원격으로 접속하여 작업할 필요가 있는데 이때 윈도우같은 개인 pc 운영체제에서도 서버로 접속할 수 있도록 물리적인 단말장비가 아닌 논리적인 가상 단말기를 제공합니다. (Reference1) 푸티로 VirtualBox CentOS에 연결하여 앞으로는 CentOS가 아닌 푸티로 작업을 할 겁니다. CentOS는 작업시 느리고(키보드를 누르는 때와 화면에 해당 글씨가 디스플레이되는 때의 시간 차가 아주 미세하게 있음), 화면도 예쁘지 않습니다. 따라서 작업 환경을 더 좋게 하기 위해 푸티로 원격 접속을 해 개발환경을 세팅하는 ..
Network 연결 세팅 Network Manager를 열기 위해 터미널 커맨드로 "nmtui"를 친다음, "Edit a connection"을 선택합니다. ""을 선택한 뒤 IPv4 CONFIGURATION은 "Automatic", Automatically connect는 체크를 한 뒤 OK를 누릅니다. ESC를 누른 뒤 service network restart 를 쳐서 네트워크 재시작을 하면 IP가 할당됩니다. 이는 매번 접속시 Network를 수동으로 연결해줘야하는 불편함을 없앨 수 있습니다. Reference1 참고하면 그림과 함께 볼 수 있음. (Reference1) IPv4 vs IPv6 위에서 IPv4가 나와서 IPv4와 IPv6에 대해 잠깐 짚고 넘어가겠습니다. IP(Internet Pr..
바닥부터 시작해서 개인 블로그를 띄우는 전 과정을 차근차근 정리하려고 합니다. 이 블로깅 프로젝트의 모든 건 명재 선생님의 지도가 있었기에 가능했습니다. 저는 웹에 대한 지식이 전무했습니다. 저처럼 바닥에서부터 시작해서 블로그를 만들고자 하는 분들에게 조금이나마 도움이 되고자 제 블로그가 만들어진 전 과정을 정리하여 게시글로 하나 하나 기록하고자 합니다. 가상머신 CentOS 설치 우선, Oracle VM Virtual Machine을 설치한 뒤 실행합니다. (Reference1) 본 블로그를 참고하여 CentOS를 설치한다. 여러 세팅이 있는데 모두 다 할 필요 없이 아래 사항만 세팅해주면 됩니다. 메모리 크기: 3072MB 정도 하드 디스크: '지금 새 가상 하드 디스크 만들기' 하드 디스크 파일 종..

개인 블로그를 만드는 프로젝트를 진행했습니다. 개인 기록용 기술 블로그로 활용하고자 합니다. (bkshin.com으로 개인 블로그를 만들었지만 지금은 티스토리로 이사를 온 상황입니다.) 지금까지 개인 블로그를 만들며 아래와 같은 것을 했습니다. 일단 생각나는대로 적고 추후에 기회가 있으면 정리해볼까 합니다. HTML, CSS, JavaScript 공부 Vue.js 공부 Go 언어 간단히 Git 체계적 사용법 (issue 관리, commit 작성규칙 등) 가상환경 설치 및 실행 네트워크 포트포워딩 PuTTY와 가상환경 연결 개발환경 세팅(각종 패키지 설치, 방화벽설정, 권한 설정, 프로젝트 디렉토리 구성 등) NPM 이해 Router 원리 이해 PreRendering AWS EC2 인스턴스 생성 SSH로 ..

마이크로 소프트웨어 잡지의 2019년 1분기판이다. 현업에서 데이터 엔지니어, 데이터 분석가로 일하고 있는 사람들의 생생한 데이터 이야기가 담겨 있다. 이 잡지를 읽고 아래 세가지 사안에 대해 생각해보게 됐다. 데이터의 가치는 무궁무진하고, 앞으로 그 가치는 더 커질 것이다. 데이터를 바라보는 것, 정제하는 것은 땀내나는 일이다. 그럼에도 데이터를 만지는 건 재미있을 것이다. 모래사장 곳곳에 보석이 몇 개 숨어있다고 하자. 이 때 모래사장이 데이터이고, 모래사장을 샅샅이 뒤져 보석을 발견하는 일이 데이터를 정제하고 분석하는 일이다. 모래사장을 샅샅이 뒤지면 뒤질수록 보석을 많이 발견할 수 있다. 모래사장의 가치는 무궁무진할 수 밖에 없다. Numpy는 2006년에, pandas는 2008년에 releas..

사피엔스에 큰 감명을 받고 후속작인 호모 데우스를 펼쳐봤다. 사피엔스가 과거부터 지금까지 인류사의 전반을 설명한 책이라면 호모 데우스는 인류의 미래는 어떻게 될 것인가를 생각해보게 하는 책이다. 과거 인류를 호모 네안데르탈렌시스, 호모 에렉투스 등으로 칭했고, 현생인류를 호모 사피엔스라 칭한다. 이와 유사하게 미래의 인류는 호모 데우스가 될 것이라고 저자는 말한다. 호모 데우스가 정확히 어떤 모습일지는 예상할 수 없지만, 인류의 구분이 달라질 정도로 호모 사피엔스와는 크게 다를 것이다라고 말한다. 앞서 사피엔스에서도 말했듯이 허구를 믿는 능력이야 말로 인간이 다른 종과 구분되는 특별한 점이다. 허구를 믿는 능력덕분에 협력 네트워크를 형성할 수 있었고, 인간은 다른 모든 종을 지배한 유일한 존재가 됐다. ..

‘사랑하라 한번도 상처받지 않은 것처럼’, ‘지금 알고 있는 걸 그때도 알았더라면’에 이어 벌써 류시화 시인이 엮은 시집만 3번째 읽는다. 이 시집은 2018년 1월에 나온 책이다. 앞으로 류시화 시인이 엮은 새 시집을 보려면 몇 년은 더 기다려야 할 것 같다. 1번째, 2번째 시집만큼은 아니었지만 류시화 시인만의 느낌은 여전했다. 시는 나로 하여금 앞만 보고 뛰어가다가도 잠시 멈춰서 숨도 고르고 주변도 돌아보게 한다. 아래는 본 시집에서 내가 꼽은 세 개의 시다. 그렇게 못할 수도 건강한 다리로 잠자리에서 일어났다. 그렇게 못할 수도 있었다. 시리얼과 달콤한 우유와 흠 없이 잘 익은 복숭아를 먹었다. 그렇게 못할 수도 있었다. 개를 데리고 언덕 위 자작나무 숲으로 산책을 갔다. 오전 내내 내가 좋아하는..

작년 12월 31일에 칼세이건의 코스모스에 대한 글을 썼다. 오늘은 유발 하라리의 사피엔스에 대해 글을 쓴다. 우연하게도 매 연말에 인류 대서사시에 대해 글을 쓴다. 코스모스만큼 두꺼운 책이지만 코스모스만큼 술술 잘 읽히는 책이다. 이런 종류의 책을 읽으며 항상 느끼는 것이 있다. 책의 효율성에 대해서. 저명한 학자가 평생을 걸쳐 연구한 학문 결과의 요약을 단 몇 주 만에 습득할 수 있다는 점에서. 인간이 어떻게 세상을 지배한 동물이 되었는지, 인간이 만들어 놓은 것이 무엇인지, 인간은 이를 통해 결국 행복해졌는지, 앞으로 인류가 어떤 자세를 취해야 하는지 등에 대해 생각해보게 하는 책이다. 크게 인지혁명, 농업혁명, 과학혁명을 통해 인간의 과거에 대해 새롭게 조명하고 있다. 본론으로 들어가보자. 푸조라..