Setting AWS Region
1 | AWS_REGION='us-east-1' |
1 | AWS_REGION='us-east-1' |
git 의 사용자 정보 및 사용자별 다른 연결 정보등과 같은 공통의 설정들은 <home>/.gitconfig
파일에 설정할 수 있다.
이는 git config --global user.name = <USER_NAME>
등과 같은 명령어를 통해서도 가능하지만 파일에 직접 설정을 작성할 수 있다.
.gitconfig
1 | [core] |
위 설정은 간단히 아래의 커맨드로도 가능하다.
1 | git config --global user.name <USER_NAME> |
만약 특정 레포지토리가 공개키 방식의 인증과정을 거치고 특정 키를 레포지토리에 등록시켜 두었다면, 해당 인증서를 통해 인증하여 레포지토리와 통신할 수 있다. 이때 여러 레포지토리들은 각각 다른 키를 사용할 수 있는데 이러한 ssh 연결 정보를 특정 레포지토리의 .git/config
파일에 설정해 둘 수 있으며, 그 명령어는 다음과 같다.
1 | git config --local --add core.sshCommand 'ssh -i ~/your_key' |
혹은 아래와 같이 직접 .git/config
파일을 수정할 수 있다.
1 | [core] |
가치투자란 기업을 분석하여 과거의 실적과 향후의 성장가능성을 예상하고, 그 예상치에 비해 현재 가격이 주식 시장에서 낮게 평가되어 있는 주식에 투자하여 수익을 거두는 투자 기법을 말한다.
가치투자를 위해서는 가장 먼저 어떤 기업을 평가하는 법을 알아야 한다.
기업을 평가하는 방법에는 여러 방법이 있겠지만, 다음과 같은 기준을 가지고 기본적인 평가를 할 수 있다.
위의 각 평가 기준을 실제 판단함에 있어 보아야 하는 데이터는 다음과 같다.
1번의 경우 PER 를 통해 확인 할 수 있는데, PER 란 주가 수익 비율로 한 주당 가격을 주당 영업이익으로 나눈 값이다. 즉, 어떤 주식이 10만원이라 하고 전체 주식이 100,000주, 순이익이 10억이라 하면, 한 주당 순이익은 1만원이고 이 경우 PER 는 10만/1만 즉 10이 된다. 흔히 PER 는 기업의 순이익에 비해 시장이 기업을 평가하는 정도를 나타내며 PER 가 높으면, 고평가 되었고, 낮으면 시장에서 저평가 된 것으로 이해할 수 있다. 일반적인 주식의 PER 는 10 내외이고 6~7 이라 하면 순이익에 비해 기업이 상당히 저평가 되었다고 볼 수 있다.
2번의 경우는 전자공시 시스템에서 해당 기업의 사업보고서를 읽어보고 그 기업의 비즈니스를 내가 이해하고 합리적이어야 한다.
3번의 경우는 내가 투자하고자 하는 기업이 하는 비즈니스에 다른 경쟁사들이 쉽게 진입할 수 없는지를 알아보아야 하는데, 이것은 다양한 정보 검색을 통해 알아낼 수 있다. 가령 해당 기업의 브랜드 인지도와 시장 점유율 등을 보면 알 수 있다.
4번의 경우 또한 각종 기사와 사업보고서를 통해 알아낼 수 있다. 가령, 해당 기업의 현재 매출대비 영업이익이 얼마인데, 해외에서 장기 계약을 수주하고 그 규모를 안다면, 앞으로 해당 기업의 영업 이익이 10년간 얼마나 성장할지는 불보듯 뻔한 일이다. 이를 통해 몇년간 몇 % 의 영업 이익이 성장할지 구체적으로 점칠 수 있다.
5번의 경우는 기업의 매출이 증가함에 따라 영업이익이 가파르게 성장할 수 있는가이다. 가령 단순 제조업의 경우 제품을 많이 만들어도 기본적인 제조원가가 계속 들어가기 때문에 영업이익은 거의 일정하게 성장한다. 하지만, 지식 융합 산업의 경우 판관비는 그대로 인데, 매출이 늘어나면 영업 이익은 매우 가파르게 성장할 수 있다.
6번의 경우는 유리벽돌이 존재하는 가이다. 위의 모든 조건을 충족했음에도 불구하고, 주가 그래프가 우 하향을 하고있고, 그 하향이 매우 완만한 상황이라면, 기업이 저평가된 것을 시장이 모르고 안정적인 주가를 유지하고 있다는 것이기 때문이다. 해당 기업은 앞으로 기업 실적이 개선될 것이기 때문에 현재 주가 이하로 떨어지는 것은 확률이 매우 낮음을 의미한다. 이러한 정보는 기업의 배당률과 같은 지표로도 알 수 있는데, 가령 완만한 우 하향 곡선을 그리고 있음에도 배당률이 평균 1~2% 를 넘어 5% 가량이나 된다면, 매우 견실한 기업이라고 볼 수 있고, 배당률이 저렇게 높은데 우 하향이라면 곧 이 회사의 가치를 알아보고 투자하는 세력이 생길 것이기에 주가는 오를 것이라 예상할 수 있다.
1 | 1. 가치투자가 쉬워지는 V차트 |
우리는 일상 생활에서 많은 기업의 제품과 서비스를 사용하고 관찰할 수 있다.
가령 ‘허니버터 칩’ 처럼 히트 상품이 나오면 반드시 이는 그 기업의 영업이익을 막대하게 증가시킬 것이고 이는 주가에 반영될 것이다. 하지만, 주의할 점이 있다면, 그 히트상품이 그 기업의 전체 영업이익중 차지하는 비율을 알아야 전체 회사가 얼마나 성장할 지 알 수 있을 것이다. 가령, ‘허니버터 칩’ 의 매출이 차지하는 비율이 해당 회사의 전체 매출의 1% 에 불과하다면 해당 히트상품은 주가에 큰 영향을 줄 수 없다.
즉, 갑자기 많은 사람들의 입에 오르내리고 특히, 아이들과 여성 사이에서 인기가 있으며, 매스컴에서 발표하는 히트상품을 주의깊에 보라, 또 그 제품을 만드는 기업을 분석하고 그 기업에서 제품이 차지하는 비중이 얼마나 되는지 또 그 제품의 판매량 증대가 기업의 이익 증대로 연결되는지를 파악하라.
강력한 브랜드 구축에는 많은 시간과 비용이 들어가지만, 일단 본 궤도에 오르면 다른 기업들이 접근할 수 없는 강력한 경쟁력이 된다.
만약 주변인들이 제품을 찾을 때 당연시 하는 브랜드가 있고, 그 브랜드가 대안을 찾을 수 없는 브랜드라면 그 기업은 브랜드 가치가 있는 기업이라고 볼 수 있다. 또 특정 제품이 기업과 동일 시 될 정도로 강력한 브랜드를 구축한다면(마치 박카스) 더할 나위 없다. 이 중에서 경쟁제품이 없고 시장점유율이 독보적이며 기업의 이름만 들어도 누구나 알법한 브랜드라면 그 기업은 앞으로도 쭉 흥할 것이다.
전체 주식 가격을 순수익으로 나눈 값으로, 순수익을 벌어들인 돈으로 몇년이면 그 회사를 살 수 있는가를 나타낸다.
가령 어떤 회사의 시총이 100억인데, 순수익이 20억이라면, PER 는 5배 즉, 5년이면 그 회사의 본전을 찾는다는 뜻이다.
Net income / Equity
순자산 대비 순 수익으로 자산이 얼마나 효율적으로 운용되고 있는가를 나타낸다.
순이익/평균 총 자산 * 100
부채가지 포함한 총 자산으로 얼마나 벌었는지를 보여주는 비율
주식 한 주가 벌어들이는 이익
영업이익 + 영업외 수익 - 영업 외 비용
회사의 활동에서 생기는 수익 중 정규영업에 기인하지 않는 것.
수취이자, 유가증권이자, 유가증권매각수익, 유가증권평가수익, 매입할인, 잡수입
영업활동 이외에 우발적 원인으로 발생하는 이익
투자자산이익, 채무면제이익, 보험차익 등
(자기자본 - 자본금 + 자기주식)/자본금 * 100
사업을 통해 창업 시기부터 지금까지 자본금으로 얼마를 벌었는가에 대한 비율
1 | CREATE USER '<USER_NAME>'@'localhost' IDENTIFIED BY 'password'; --CREATE USER WITH PASSWORD-- |
1 | ALTER TABLE <TABLE_NAME> CHANGE <COLUMN1> <COLUMN2> <DATATYPE> --change column name-- |
1 | INSERT INTO <TABLE> (<COLUMN1>, <COLUMN2>) |
1 | SELECT * FROM <table_name> WHERE <COLUMN> LIKE "%<CONTENT>%"; |
1 | SELECT * FROM <TABLE_NAME> WHERE <CONDITION> ORDER BY <COLUMN1> DESC, <COLUMN2> ASC |
1 | SELECT * FROM <TABLE> LIMIT <INDEX>, <NUMBER> |
1 | SELECT u.name, MAX(c.price) |
1 | SET SQL_SAFE_UPDATES = 0; |
configure or view the configuration of a network interface
1 | ifconfig |
eth0 => the first ethernet interface
wlan0 => the name of the first wireless network interface on the system
1 | find -name "pattern" |
존재하는 파일에 대한 hard link 혹은 symbolic link 를 만들기 위한 명령어이다.
여기서 har link 란 같은 파일에 대해 여러 파일명을 가질 수 있게 해주며, hard link 는 특정 파일의 inode 를 가리킨다.
symbolic 링크란 다른 파일을 특정 이름으로 가리키는 특별한 종류의 파일이다.
hard link 의 경우 file system 을 훼손을 위험이 있으며 보통의 경우 다음과 같이 symbolic 링크를 만드는데 사용된다.
1 | ln -s <source file> <link file> |
Less is a terminal pager program on unix, window
1 | less [options] [file_name] |
First line: g
<
last line: G
>
Search: /<search keyword>
go to line: <number of the line>g
On Unix-like operating systems, the dd command copies a file, converting the format of the data in the process, according to the operands specified.
Operand | description |
---|---|
if=FILE | input file |
iflag=FLAGS | sync likewise, but also for metadata |
example
1 | dd if=blockchain/block_log iflag=nocache count=0 |
Binary: /usr/bin/bitcoind
Configuration file: /etc/bitcoin/bitcoin.conf
Data directory: /var/lib/bitcoind
PID file: /var/run/bitcoind/bitcoind.pid (OpenRC and Upstart) or /var/lib/bitcoind/bitcoind.pid (systemd)
Lock file: /var/lock/subsys/bitcoind (CentOS)
아래 명령어를 통해 bitcoin node 를 백그라운드에서 실행시킨다.
1 | bitcoind -daemon -rpcuser=<user_name> -rpcpassword=<user_password> -rpcport=<port> |
1 | bitcoin-cli getinfo |
기본적으로 public-private key pairs 를 사용한다.
사용자는 owner key와, active key 세팅을 통해서 여러 계정 시스템을 관리할 수 있으며, 이는 새로운 permission 을 추가하고 관리방식을 customize 할 수 있다.
IOST 에서 계정은 id와 permissions 를 가지고 만들어지며, 복수개의 permissions 를 가질 수 있다. 각 permission 은 여러개의 item 을 등록하는데, 각 item 은 base58로 encode 된 public key 이거나 account_name@permission_name 형태의 permission pair 이다.
각 permission은 threshold 를 가지는데, 만약 사이닝한 transaction item 의 weight 의 합이 threshold 보다 큰 값을 가지면 transaction 은 승인되는 것으로 본다.
1 | const IOST = require('iost') |
iwallet 설치
1 | go get github.com/iost-official/go-iost/cmd/iwallet |
스크립트로 설치하기
아래처럼 환경변수를 사용자의 기호에 따라 설정할 수 있다.
1 | curl https://raw.githubusercontent.com/iost-official/go-iost/master/script/boot.sh | PREFIX=/data/iserver bash |
위 스크립트를 실행하면 필요한 도커 이미지를 받아오고 아래 커맨드로 도커 이미지를 실행시킨다.
1 | # start |
로그는 $PREFIX/logs/iost.log
에 기록되며 도커 컨테이너 로그 확인을 다음과 같이 수행 할 수 도 있다. docker logs -f isserver
블록체인 데이터는 $PREFIX/storage
에 저장된다.
다음과 같은 AWS CLI 를 확인하여 Administrators 유저 그룹을 만들고 루트 계정을 생성한다.
1 | brew install aws # install aws cli |
함수의 확인
1 | aws lambda list-functions |
Lambda Function 을 작성하고 배포하는 일련의 과정을 위해서 SAM 을 사용한다.
1 | brew install aws-sam-cli # install SAM |
아래 함수를 실행하면 로컬의 3000번 포트에서 lambda 함수들이 동작된다.
1 | sam local start-api |
람다함수가 클라우드 환경에서 실행되기 위해서는 S3 버킷에 배포되어야 하고 이를 위해 package 화를 시켜야 한다.
1 | sam package \ |
위 명령어를 실행하면 sam-app/hello_world 디렉토리를 압축하여 .zip 파일을 만들고 amazon s3 에 업로드 한다. 여기서 새롭게 생긴 packaged.yaml
파일은 template.yaml
파일과 동일한 내용을 가지지만 차이가 있다면, packaged.yaml
파일의 경우 codeUri 가 실제 클라우드 uri 를 가진다는 것이다.
패키지화를 다 시키고 s3 를 업데이트 했다면 lambda 함수를 배포할 차례이다.
1 | sam deploy \ |
SAM 이 아니라 serverless 는 npm 패키지로 좀 더 쉽다.
아래와 같이 설치하고
1 | npm install -g serverless # install serverless |
serverless.yaml
1 | service: my-app |
handler.js
1 | module.exports.run = (event, context, callback)=>{ |
deploy
1 | sls deploy # deploy project |
invoke
1 | sls invoke --function helloWorld --log |
Gradle requires Java JDK or JRE
in Mac
1 | brew tap caskroom/cask && # only if you didn't install cask |
###
install gradle
1 | brew install gradle |
1 | gradle init |
Directory1
2
3
4
5
6
7
8├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
build.gradle: Gradle build script for configuring the current project
gradlew: Gradle wrapper script for unix-based system
gradle.bat: Gradle wrapper script for Windows
settings.gradle: Gradle settings script for configuring the Gradle build
하나의 Project 는 여러개의 Task 를 포함하며, 각 Task 는 기본적인 연산을 수행한다.
Gradle 은 task 라이브러리들을 가지고 있으며, 이를 통해 프로젝트를 설정할 수 있다. 가령 COPY
라는 type 은 특정 파일을 특정 위치로 복사해 준다.
example) build.gradle
1 | task copy(type: Copy, group: "Custom", description: "Copies sources to the dest directory") { |
여기서 group 과 description 은 하드코드된 값으로 프로그래머가 원하는 값을 지정하면 된다.
실행하기
1 | ./gradlew copy |
Gradle 에는 다양한 종류의 plugin 이 존재한다.
예를 들어 base
플러그인의 Zip
type을 활용하여 zip archive 를 생성할 수 있다.
1 | plugins{ |
실행
./gradlew zip
아래 명령어를 통해 존재하는 task 들을 확인할 수 있다.
task 들은 group 별로 정렬되어 나타나며, 각 task 마다의 description 이 명시되어 있다.
1 | ./gradlew tasks |
gradle 은 build scan 이라는 웹 기반의 build 상태 확인을 제공한다.
아래 명령어는 gradle 에서 확인한다.
example)
1 | ./gradlew zip --scan |
아래 명령어를 통해 gradle 의 다양한 property 들을 확인할 수 있다.
property들이란 gradle 을 통해 빌드하는 과정에서 설정되는 다양한 속성들을 의미하며, 가령 build directory, project directory 같은 중요한 사항들이 포함된다.
아래 명령어를 통해 property 들을 확인할 수 있다.
1 | ./gradlew properties |
The name
of the project matches the name of the folder by default. You can also specify group
and version
properties, but at the moment they are taking their default values, as is description
.
The buildFile
property is the fully-qualified path name to your build script, which resides in the projectDir
— by default.
You can change many of the properties. For example, you might try adding the following lines to your build script file, and re-execute gradle properties
.
Git, node.js, aws-cli 를 설치해 준다.
1 | sudo apt update && |
1 | sudo apt-get install terminator && |
1 | zsh-syntax-highlighting |
~/.zshrc
1 | plugins=( |
1 | git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf |
vscode setting
1 | "terminal.integrated.shell.linux":"/usr/bin/zsh" |
split terminals horizontally: ctrl shift o
split terminals vertically: ctrl shift e
close current panel: ctrl shift w
move terminal: alt + arrow
Update your browser to view this website correctly. Update my browser now