Amazon Linux AMI 에 설치

# wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
# yum localinstall mysql57-community-release-el6-11.noarch.rpm
# yum remove mysql55 mysql55-common mysql55-libs mysql55-server
# yum install mysql-community-server
# service mysqld restart
# mysql_upgrade -p

Amazon Linux Ami 에 설치환경

Apache 2.4.33

[root@ip-172-31-10-31 html]# httpd -V
Server version: Apache/2.4.33 (Amazon)
Server built:   May 23 2018 19:02:39
Server's Module Magic Number: 20120211:76
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

MYSQL 5.7.22

[root@ip-172-31-10-31 html]# mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

PHP 7.0.30

[root@ip-172-31-10-31 html]# php -v
PHP 7.0.30 (cli) (built: May 10 2018 17:39:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies
반응형

'개발 > 리눅스' 카테고리의 다른 글

CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
firstmall plus 설치하기  (0) 2018.07.27
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18

version 정보

  • nginx : 1.14.0
  • php : 7.1.18

yum install nginx 를 통해서 설치하였으며,

# yum install nginx

[root@centos html]# nginx -v
nginx version: nginx/1.14.0

php71 은 remi repo를 추가해서 아래와 같이 설치했다.

# yum --enablerep=remi-php71 install php-fpm php-common

[root@centos html]# php -v
PHP 7.1.18 (cli) (built: May 24 2018 07:59:58) ( NTS )
Copyright © 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright © 1998-2018 Zend Technologies

설정파일

/etc/php-fpm.d/www.conf 파일

########### file /etc/php-fpm.d/www.conf
user = nginx
group = nginx
;listen은 nginx 설정과 맞춰줘야 한다.
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock;
listen.owner = nginx
listen.group = nginx

/etc/nginx/conf.d/default.conf 파일

########### file /etc/nginx/conf.d/default.conf

server {
    listen   80;
    server_name  your_server_ip;

    # note that these lines are originally from the "location /" block
    # root 설정이 없으면 404 에러가 날수 있다.
    root   /usr/share/nginx/html; 
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        #fastcgi_pass 는 아래 두개 중 아무거나 사용해도 좋으나 php-fpm.d/www.conf 설정과 맞춰줘야 한다.
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        #/scripts 이름으로 인해서 오류가 생길 수 있다.
	    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

에러상황 #1

사이트에 접속은 되는데 404 error 또는 파일을 찾을 수 없는 상황

[error] 7469#7469: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.114, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:",

해결방법

/etc/nginx/conf.d/default.conf 설정파일에서 아래와 같이 root 폴더 설정을 한다.

server {
	root /usr/share/nginx/html;
	index
}

에러상황 #2

*1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream,

php-fpm.sock 의 그룹:사용자 권한 문제
아래와 같은 명령어로 해결할 수 있다.

# chown nginx:nginx /var/run/php-fpm/php-fpm.sock

다른 분들 고생 안했으면 좋겠다.

...

반응형

'개발 > 리눅스' 카테고리의 다른 글

firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
리눅스 daemon 항목들 정리  (0) 2016.08.09
vuejs | filter | 숫자단위당 쉼표 표기하기

화폐 단위를 표기하기 위해서 숫자 단위당 쉼표를 표기하는 방법
Vuejs Filter Currency with decimal places

regex를 이용하는 방법도 있겠지만, 기본 내장함수를 이용하는게 제일 간단한 방법이다. 코드량도 늘어나지 않고.

필터에 아래와 같은 코드를 추가 합니다.

filters: {
  currency: value => {
    if (!value) return  ''
    return value.toFixed(0).replace(/(\d)(?=(\d{3})+(?:\.\d+)?$)/g, "$1,")
  }
}

.toFixed(num) : 소수점 아래 표기 자릿수(num)


반응형

'개발 > Vue.js' 카테고리의 다른 글

Vue.js | PWA | uri scheme 가 없을 경우  (0) 2018.03.12
axios form 데이터 저장하기

axios.post 에 form 데이터를 넣는 방법

axios.post 는 그냥 사용하면 form 데이터 형식을 사용할 수 없다. 그래서 new FormData()를 이용해서 form 형식으로 데이터를 보내야 한다.

기존에 데이터에 post 형식으로 데이터를 보내는 방법

axios.post(`http://localhost:8000/api/auth`, {
    headers: {
      'Content-type': 'application/x-www-form-urlencoded',
    },
    id : 'hong',
    pwd: '12345'
  }).then( response => {
    console.log('response', JSON.stringify(response, null, 2))
  }).catch( error => {
    console.log('failed', error)
  })

form 형식으로 데이터를 전송하고 제어하기 위해서 는 아래와 같이 사용을 한다.

let form = new FormData()
form.append('id', this.userID)
form.append('pwd',this.userPass)

axios.post(`http://localhost:8000/api/auth`, form)
  .then( response => {
    console.log('response : ', JSON.stringify(response, null, 2))
  }).catch( error => {
    console.log('failed', error)
  })

axios.post 방식은 심플하지만 기본 설정을 잘 해줘야 한다. 암호화 기능을 사용하려면 defaults세팅에서 헤매는 일이 많을 수 있다.

예를 들어 headers에 토큰을 저장해서 암호화 접근 방식을 사용한다는 점 또한 대표적인 기능 중에 하나고, 토큰에 의해서 접속할 수 있은 권한을 제어 하는 기능 또한 같은 맹락이라고 할수 있다

querystring을 사용해서 로그인 하는 방법을 추천한다. 이 방법은 new FomData()로 하는 방식보다 훨씬 간단하다. 줄을 줄일수도 있다

Axios.post(
    `/user/login`,
    qs.stringify({ id, pw })
).then(data  => {
commit("LOGIN", data);
});
반응형
.JSON 설정파일 읽어오기

.JSON 설정파일 읽어오기

github에 코드를 작성하는데 db의 중요한 설정값을 공개할 수는 없기 때문에 설정파일만 따로 보관해야 한다. 자금이 있어서 private github 서비스를 사용할 수도 없는 입장이고, 개인 개발자의 한계.

GO RESTFUL 서브를 만드려고 하는데 설정 파일을 json으로 저장하고, 이를 필요할 때 불러오는 코드를 작성하려고 한다.

go-mssqldb 패키지를 사용해서 microsoft sql server에 접속을 해서 이를 쏴주는 기능을 사용하려고 한다.

우선 저는 아래와 같은 구조를 갖는 setting.json 을 만드려고 합니다.

setting.json

{
    "database": "sqlserver",
    "user":{
        "id":"admin",
        "pwd":"123456789a!"
    },
    "host":{
        "address": "222.111.111.111",
        "port": 1433
    }
}

이제 이를 golang 에 맞는 type struct를 만듭니다.

type config struct

type MssqlConnect struct {
	Database string `json:"database"`
	User struct {
		ID  string `json:"id"`
		Pwd string `json:"pwd"`
	} `json:"user"`
	Host struct {
		Address string `json:"address"`
		Port    int    `json:"port"`
	} `json:"host"`
}

Load Config

다음은 config.json 파일을 읽어오는 과정입니다.

func LoadConfig() (string, error){
	var config MssqlConfig
	file, err := os.Open("setting.json")
	defer file.Close()
	if err != nil {
		Log.Fatal(err)
	}
	decoder := json.NewDecoder(file)
	err = decoder.Decode(&config)
	if err != nil {
		Log.Fatal(err)
	}
	return config, err
}

func main

아래와 같이 사용하면 됩니다.

func main() {
  config, err := LoadConfig()
  fmt.Println(config.Database) // sqlserver
  fmt.Println(config.User.ID) // admin
}
반응형

'개발 > Golang' 카테고리의 다른 글

Go 1.14 릴리즈  (0) 2020.02.26
GO | golang 1.9 update  (0) 2017.09.06
Golang | 최신버전으로 업그레이드 할 때 주의점  (0) 2016.08.23
golang | strings 패키지  (0) 2016.08.12
[Golang] mysql, mariadb 원격접속 허용하기  (0) 2016.07.29
Vue.js | PWA | uri scheme 가 없을 경우

uri scheme 를 통해서 다른 앱을 열려고 하지만, 앱이 없을 경우의 if 문을 작성하는 방법

상황

daumapp://을 통해서 지도앱을 열어서 위치를 검색하려고 하는데 앱이 없어서 다운받는 페이지로 이동

안드로이드

안드로이드 플레이스토어 접속 URL Scheme

market://details?id=[app id]
market://details?id=net.daum.android.map

브라우저를 통해서 설치시키고자하는 앱의 주소를 알 수 있다.
Play Store에서 다음맵을 검색하고, 앱을 눌러보면 상단에 https://play.google.com/store/apps/details?id=net.daum.android.map 와 같은 주소가 있다. 뒤에 id부분을 [app id] 부분에 추가하면 된다.

아이폰

애플 스토어의 URL Scheme

itms-apps://itunes.apple.com/app/[appName]/[appID]

개발자용 앱 URL Scheme

itms-apps://itunes.apple.com/developer/[developerName]/[developerID]

앱스토어는 브라우저에서 작동되는 사이트가 없으므로 구글링을 통해서 앱정보 페이지로 접속해야 합니다.

https://itunes.apple.com/kr/app/카카오맵-대한민국-no-1-지도앱/id304608425?mt=8

이런식의 주소를 찾을 수 있는데요. id304608425가 앱의 아이디입니다. 그럼 결과물은 아래과 앝은 형태가 됩니다.

items-apps://itunes.apple.com/app/id304608425

Javascript 코드

브라우저에서 기기 종류를 파악하는 코드

혹시 모를 안드로이드와, 아이폰 종류를 구분하기 위해서 아래의 코드를 작성했습니다.

getOS () {  
  let userAgent = window.navigator.userAgent  
  let platform = window.navigator.platform  
  let macosPlatforms = \['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'\]  
  let windowsPlatforms = \['Win32', 'Win64', 'Windows', 'WinCE'\]  
  let iosPlatforms = \['iPhone', 'iPad', 'iPod'\]  
  let os = null  
 if (macosPlatforms.indexOf(platform) !== -1) {  
    os = 'Mac OS'  
  } else if (iosPlatforms.indexOf(platform) !== -1) {  
    os = 'iOS'  
  } else if (windowsPlatforms.indexOf(platform) !== -1) {  
    os = 'Windows'  
  } else if (/Android/.test(userAgent)) {  
    os = 'Android'  
  } else if (!os && /Linux/.test(platform)) {  
    os = 'Linux'  
  }  
  return os  
}

URI 로 이동하는 function

goToUri (uri) {  
  window.location = uri // 앱이 있으면, 앱으로 이동. 없으면 다음줄 실행
  setTimeout( fucntion() => {  
    if (confirm('다음맵이 설치되어 있지 않습니다. 설치하시겠습니까')) {  
      if (this.os === 'Android') {  
        window.location = 'market://details?id=net.daum.android.map'  
  }  
      if (this.os === 'iOS') {  
        window.location = 'itms-apps:/itunes.apple.com/app/id304608425'  
  }  
    }  
  }, 100)  
}
반응형

'개발 > Vue.js' 카테고리의 다른 글

vuejs | filter | 숫자단위당 쉼표 표기하기  (0) 2018.05.28
자신감, 생산성 및 소득을 높이는 23 가지 스마트 방법

자신감, 생산성 및 소득을 높이는 23 가지 스마트 방법

"성공"은 단지 많은 돈을 가지고있는 것이 아닙니다. 많은 돈을 가진 많은 사람들이 엄청나게 불행하고, 근본적으로 불균형 한 삶을 살고 있습니다.

성공은 당신이 누구인지, 어떻게 살아 가는지, 봉사 방법, 그리고 당신이 어떻게 관계를 맺고 있는지를 지속적으로 개선하고 있습니다.

그러면 왜 대부분의 사람들이 성공하지 못할까요?

왜 대부분의 사람들이 발전하지 않을까요?
당신이 발전 할수록, 가장 중요한 몇 가지 일에 더 집중해야합니다.

아침마다 5 분간 통증 다루기

당신은 침대에 머무르거나, 졸음이 몰려오는 것에 대해 후회하여 고통을 격습니다. 그리고 침대에 더 오래 앉아있을수록 더 나 빠지게됩니다. 연구 결과에 따르면, 당신이 무언가를 하는 것을 주저 할수록 그 일은 덜 할 수 있습니다.
알람이 울린 후 침대에 오래있을수록 침대에서 실제로 빠져 나올 확률이 줄어 듭니다.

우선순위로 하루 시작하기

좋게 보이는 것으로 시작하는 것은 쉽지만. 궁극적으로 그다지 중요하지는 않습니다.
당신이 할 수 있는 많은 일들이 있습니다.

무엇이 하루를 시작하는 이상적인 방법일까요?

그것은 인생에서 가장 우선 순위에 달려 있습니다.
그것이 당신의 신앙이라면, 당신은 아마 하나님과 연결하고 당신의 신앙을 키워야합니다.
그것이 당신의 사업이라면, 당신은 아마 당신의 사업을 계속해야합니다.

스티븐 코비 (Stephen Covey)는 7 권의 "매우 효과적인 사람들의 습관"에서 "첫 번째 일을 먼저"하는 것이 중요하다는 것을 설명합니다. 개념을 설명하기 위해 코비 (Covey)는 몇 가지 돌을 양동이에 넣습니다. 작은 바위를 먼저 넣을 때, 큰 바위를 모두 채울 수는 없습니다. 그러나 큰 바위로 시작할 때, 작은 바위는 빈 공간을 쉽게 채울 수 있습니다.

당신이 기피하는 것을 직시하고, 당신이 피하는 것을 하십시요.

(정말로 중요하고, 10 년 후에 중요 할 것이고, 당신이 하고 싶지 않은 것)

"나는 우리 각자가 할 일이 많다는 것을 알고있다. 가끔은 우리가 직면 한 일들에 압도 당한다. 그러나 우리가 우선 순위를 지키면 우리가해야 할 모든 것을 성취 할 수 있습니다. "

당신이 잠시 동안 무언가를하는 것을 거부한다면, 당신의 인생에있는 다른 모든 것들은 고통을받을 것입니다.

나는 아주 많은 다른 멋진, 중요하고 흥미로운 것들로 내 시간을 매우 쉽게 채울 수 있습니다. 그러나 항상 내 마음 속에서 나는 내 개인적인 목표에 결정적인 것을 무시하고 있다는 것을 알고 있습니다. 나는 정말로 중요한 일을 미루고 있습니다. 따라서, 나는 부조화의 상태로 살고 있습니다.

내가 성공할 수 있기를 희망합니다.
나는 삶과 내 주변 사람들의 아름다움을 더보기 시작합니다.
나는 나의 건강, 나의 관계 및 다른 나의 목표에서 성공하기 위하여 동기를주는 것을 느끼는 것을 시작합니다.

다양한 학습 방법을 포용하십시오.

저항에 직면하고 처음 일을 먼저 할 때 모든 일이 발생합니다

“학습을 멈추는 사람은 20 세가 됐든 80 세이든간에 나이가 많습니다.”

학습 이론에 관한 50 년의 연구에 따르면, 우리 모두는 지배적 인 학습 스타일을 가지고 있습니다. 우리 모두는 어려운 상황에있을 때 우리가 의지하는 몇 가지 백업 학습 스타일을 가지고 있습니다. 그러나 우리 각자가 소홀히하고 피하는 몇 가지 다른 학습 스타일이 있습니다.

흥미롭게도 대부분의 사람들은 자신이 편안하게 학습 할 수있는 스타일에 대해 "성장"하는 사고 방식을 가지고 있습니다. 예를 들어, 수학을 좋아하고 분석적으로 배우면 수학에서 더 나아질 수 있다고 생각할 것입니다. 아마도 도전과 실패는 성장 기회로 접근합니다. 당신은 아마도 멘토링, 교육, 그리고 도움을 청할 것 입니다. 당신은 아마도 궁금해서 그 일에 대한 당신의 지식과 지평을 확장하려고합니다.

그러나 대부분의 사람들은 자신이 편안하지 않은 학습 스타일에 대해 "고정 된"사고 방식을 가지고 있습니다. 예를 들어, 글쓰기를 좋아하지 않는다면 아마 더 잘할 수 없다고 생각할 것입니다. 단순히 배울 수없는 것들이 있습니다. 그들은 당신의 DNA 또는 뭔가 안에 있지 않습니다.
일반적으로 지배적이며 개발 된 학습 스타일 (글쓰기 및 교수)과 일치하는 작업을 훨씬 선호합니다.

그러나, 당신이 저항하는 활동에 참여할 때, 당신은 당신이 억압 한 당신의 두뇌와 감정의 활성 영역입니다.
현재 당신의 안락함 바깥에있는 목표를 향해 가시적 인 진보를합니다. 새로운 세계의 학습과 경험에 자신을 열고, 당신의 두뇌에 새로운 연결 고리를 만듭니다.

자신이 어려운 일을하는 것을 보면서 자신감을 얻습니다.
그것은 어렵지만, 자신이 해야한다고 믿고 본질적으로하고 싶은 일을함으로써 당신은 더 많은 확신을 얻을 수 있습니다.

예를 들어 작가, 음악가 등 많은 사람들이 예술가가되고 싶어합니다. 그러나 예술가가되는 비즈니스와 마케팅 측면이 그들의 **지배적인 학습 스타일(Dominant Learning Style)**을 벗어나기 때문에, 사람들 중 많은 사람들이 성공하지 못합니다. 그리고 그들은 필수 구성 요소를 배우기를 거부합니다.

그들은 비즈니스와 마케팅에 관한 고정 관념을 가지고 있으며 따라서 결국 원하지 않는 삶에 정착하게됩니다. 역설적이게도, 그들이 사업에 능숙하고 어려운 정서와 새로운 개발 학습 스타일을 받아들이면, 그들의 예술이 향상 될 것입니다.

그들이 진실로 자신의 꿈에 얼마나 헌신했는지 보여주기 때문에 개선 될 것입니다. 그들은 충분히 짜증을내는 일을 하기 충분합니다. 그들은 단지 몽상가가 아니라 전문가가 되기 위해 최선을 다하고 있습니다.

당신이하는 일은 당신이 모든 것을하는 방법입니다 - 이것이 사실입니다

당신이 일관된 자세를 취하지 않을 때, 인생이 엉망이됩니다

"TV 앞에서 매일 초콜릿 케이크를 먹고 싶지는 않지만 날씬하고 싶다. 당신은 단정하고, 편안하고, 사랑스럽고 배타적 인 관계에 있기를 원합니다. "

삶의 한 영역이 일정한 틀에서 벗어나면 모든 것은 고통을 겪습니다.
한 동안 삶의 한 영역에서 잠시 동안 안정을 취해야 합니다. 예를 들어, 우선 순위를 무시하면서 직장이나 건강에 집착 할 수 있습니다. 그러나 이것은 극히 지속될 수 없습니다. 결국 그리고 항상, 그것은 당신에게 돌아올 것입니다.
탁월한 것들은 당신이 적절한 균형을 유지하지 않으면 결국 당신의 가장 큰 약점이 될 것입니다.

전략적으로 당신의 “왜”를 아십시오.

“살아야 할 이유가있는 사람은 거의 모든 방법을 감당할 수 있습니다.”

“왜”를 명확히 해야하는 이유는 두가지

  1. 명확함은 동기를 유발하기 때문입니다.
  2. 가장 깊은 신념으로 부터의 동기는 확실한 효과를 가져옵니다.

그러면 어떻게 그 이유를 알 수 있을까요?

당신이 원하는 것을 생각하고,이 간단한 질문을 스스로에게 하십시오.

_____은 나에게 가장 중요한 일인가?

마음에 오는 첫 번째 질문에 답하십시오.
지나치게 복잡하게 하지 마세요. 귀하의 목표가 집에서 일하는 것이라면 다음 질문을하십시오.

“집에서 일하는 것”이 저에게 중요한가?

만약, **“나는 스스로 관리를 잘 했을 때 일을 더 잘하고, 행복하게 한다”**면 다음과 같이 질문합니다.

**“일을 열심히 하고, 행복하게 하고 자신을 관리해 나가는 것”**이 내게 중요합니까?

이 연습에는 6개 정도의 질문을 던지는 것이 좋습니다.
당신이 정말로 정직하게 대답을 한다면, 이 연습은 당신에게서 두 가지를 보여주게 될것입니다.

  1. 자신을 형성하는 주요한 사건
  2. 세상에 대해 갖고있는 주요 신념

자신이하고있는 일을하는 이유의 핵심에 도달 할 수 있다면, 그 일이 당신에게 얼마나 중요한지 깨달을 수 있습니다.
자주, 우리는 우리가하는 일에 대한 우리의 기본 수준의 동기만을 생각합니다. 이는 개인적으로 의미가 부족합니다.
따라서 우리의 성과는 우리 핵심에서 나온 것이 아니라 할수 있습니다. 예를 들어, 나는 나의 스케줄에 더 많은 유연성을 주기 위해 사업을 시작하고 있다(?). 물론 중요합니다. 하지만 그게 영감을 주는 것이 아닙니다.

왜 더 많은 유연성을 원하는가.

더 깊이 들어가 봅시다.
훨씬 더 깊이 들어가 봅니다.

그리고 일단 당신이 요점을 얻으면, 사업을 시작하기 위해 매일, 그 이유를 상기시켜주십시오.
그 이유는 당신에게서 왔습니다. 외부 소스에서 가져온 필요가 없습니다.

“그냥 앉아서 사람들이 황금의 꿈을 꿀 수 있기를 기다릴 필요가 없다. 거기서 나와 스스로를 만들어야한다.”
— Diana Ross

TED 토크에서 철학자 루스 장 (Ruth Chang)은 정말로 어려운 선택을하는 법을 설명합니다.

당신은 “왜”로 내려 갔고, 궁극적으로 “왜”를 스스로 정의했습니다.
당신은 당신의 이유를 스스로 형성하게됩니다. 그렇게되면, 최고 가치에서 행동 할 수있을 뿐만 아니라 그 가치가 무엇인지를 능동적으로 결정하고 정의 할 수 있습니다.

받는 사람이 아닌 베푸는 사람이 되십시오.

“Life gives to the givers and takes from the takers .”
“인생은 주는 자에게 주고 받는 자로부터 빼앗아 간다.”
— Joe Polish

많은 사람들이 받는 사람입니다, 특히 필사적으로 성공을 원하는 사람들입니다.
그들은 단지 그들이 그러한 관계에서 얻을 수 있는 것을 위해 관계를 맺습니다. 직설적으로 말해서, 이 사람들은 트랜잭션 처리가 되어 있습니다.
그들의 삶의 모든 것은 거래 즉 교환이다.

그들은 진실하지 않습니다. 그들의 기부는 특정 시점으로만 진행됩니다. 또한, 그들은 그들이 원하는 것을 얻을 때만 감사합니다. 그들은 다른 사람들이 주는 것을 과소 평가합니다.

오직 유동적인 관계에만 참여하십시오.

왜냐하면 모든 거래 어쨌든 곧 끝날 것이기 때문입니다.

"나는 변화에 즐거움을 느낀다. 나는 조용하고 일관성있게 보이지만, 몇 명의 여성들이 내 안에 있는지 알고있는 사람은 거의 없다. "

다른 사람이 하는 일을 과소평가하는 동안 당신의 관계에 대해 과대평가 하지 마세요. (이것은 기본적으로 모두가 하는 것입니다)

“교만을 통해 우리는 항상 자신을 속이고 있습니다. 그러나, 평범한 양심의 표면 아래, 작은 목소리가 우리에게 말합니다. 뭔가 맞지 않다고…”

당신의 관계에 대해서 생각해보십시오.
관계의 대부분에서, 당신이 기여한 것을 과대 평가하거나 과소평가 합니까?
또한 관계에있는 다른 사람들이 기여하는 것을 과장 또는 보완합니까?

일반적으로 사람들은 자신이 기여한 것을 과대 평가하고 다른 사람들이 기여하는 것을 과소 평가합니다.
당신이 기부자라면, 당신은 다른 사람들이 기여하는 것을 소중하게 여기고 존중합니다.

세일즈맨이 아닌 장인 인 사람과 일하십시오.

“Quality is not an act, it is a habit.”
“품질은 행위가 아니라 습관이다.”
– Aristotle

“Be a yardstick of quality. Some people aren’t used to an environment where excellence is expected.”
“품질의 척도가 되세요. 어떤 사람들은 탁월함이 기대되는 환경에 익숙하지 않습니다.”
– Steve Jobs

위의 요점과 비슷하게, 당신의 삶의 질 (그리고 당신이하는 일의 질)은 당신이 당신의 인생을 보낸 사람을 기반으로 합니다.
저는 여러번의 공동 작업을 통해서 대부분의 사람들이 자신과 그들의 일을 위해 낮은 자세를 가지고 있다는 것을 보았습니다.
그들은 미루고 나서 마지막 순간에 일을 처리하여 최종 제품의 품질이 떨어지게합니다.

사람이 어떻게 행동하는지는 모든 것을 대하는 방법입니다. 그들이 자신의 업무에 대한 디테일이 부족하면, 삶의 다른 영역의 디자인에 중요한 디테일이 부족할 것입니다.

최근에 저는 진정한 장인이자 공예가 인 사람들과 일하기로 결정했습니다. 프로세스가 약간 느려질 수 있습니다. 그러나 최종 결과는 10 배 또는 100 배 더 좋을 것입니다.

제가 삶의 질을 말할 때, 그것은 문자 그대로를 의미합니다. 자신의 일에 많은 것을 기대하는 사람들과 함께 일하는 것, 그들이 먹는 음식, 시간을 보내는 방법, 시간을 보내는 사람, 구매하는 제품의 품질 등.
당신은 당신의 일의 성공과 도달에 관심이있는 사람들과 일해야 합니다. 그들은 자신과 직장에서, 그리고 세계에서 할 수있는 서비스에 대한 기대치를 높일 수 있도록 도울 것입니다.

당신의 삶에서 당신이 바라는 것에 대한 당신의 감각을 높이십시오.

"당신이 얻는대로 주는 것은 우주가 진실로 풍부하다는 것을 인정하는 것입니다. 우리, 우리의 생각, 우리의 결과를 증폭시키는 영적인 차원에 두드립니다. 깨달은 백만장자가 알고있는 바 : 풍요로운 바다가 있으며 찻 숟가락, 양동이 또는 트랙터 트레일러로 그 바다를 이용할 수 있습니다. 바다는 상관하지 않습니다. "

당신이 기부 할 수있는 것에 대한 당신의 감각을 높이십시오.

당신이 원하는 삶의 종류를 결정한 다음, 그것을 얻는 방법을 알아 내십시오.

'왜’가 명확하면, '어떻게’하는지 알아낼 것입니다

당신이 할 수있는 것처럼 봉사하고 줄 수 있습니다

다른 사람을 자랑하거나 다른 사람을 끌어 들이지 않고 명확한 의식을 가짐

시간을 최대한 단축 할 수 있도록 소득을 신속하게 자동화하십시오.

돈을 많이 벌고 많은 사람들을 도울 수 있기 때문에

당신이 말한 것의 10 배 가치를 부여하십시오

사람들의 마음을 불어 넣으십시오

대부분의 작업물을 무료로 배포

더 많은 것들을 만들어라. (그러나 정말 좋은 것들만)

자신이하는 일에 세계 최고가 되십시오.

자신에게 강하게 투자하세요.

연사가 되어 자신이 배운것을 가르키십시오.

대중에게서 배우십시오.

매일 밤 몇 분씩 정신적으로 다음날을 준비하십시오.

쓰다가 힘들어서 못 쓰겠다.
이걸 쓰는게 나에게 그렇게 중요하지 않다는 것을 알았다.
두 시간을 날려먹었네…
하하하


반응형

어느날 갑자기 찾아온 청천벽력과 같은 이야기가 날아 들어왔다.

yum package 관리 프로그램이 문제가 생겼다.
아래와 같은 문구가 막생김. 아무리 눌러도 되지 않음

yum command doesn’t work!!!!!!!!

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   /lib64/libcurl.so.4: file too short

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.5 (default, Aug  4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]

If you cannot solve this problem yourself, please go to
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

구글링을 해 보아도 딱히 좋은 해결 방책은 보이지 않는다.

Imgur

일단 문제 여부를 파악하지 위해서 문제가 있는 서버의 파일 상태를 체크 하기로 했다. 파일이 작다니 파일이 문제가 있는가 보다 의심이 든다.

$ ls -ls /usr/lib64/libcurl.so.*
0 lrwxrwxrwx. 1 root root 16 1128 13:15 /usr/lib64/libcurl.so.4 -> libcurl.so.4.3.0
0 -rwxr-xr-x. 1 root root  0 1128 00:43 /usr/lib64/libcurl.so.4.3.0

보아하니 파일 용량이 0 byte 이다. 아놔 이게 문제였꾸나.!!!!! 그냥 파일이 어디론가 승천해버린 것.

다행히 옆에 서버도 같은 Centos 로 세팅해 놓은 것이 있어서 파일을 찾을 수 잇엇다.

/usr/lib64/libcurl.so.4 파일과 /usr/lib64/libcurl.so.4.3.0 파일을 무식하게 붙여넣기 했다.

엉엉.. 눈물난다. 된다. ㅠㅠ

Imgur

다른 불쌍한 사람들이 있다면, 이를 다운 받아서 사용하시길.. /usr/lib64/에 넣어주기만 하면 됩니다.

반응형

angular 5 빌드 후에 docker nginx 서버에 적용하기

angular 빌드하기

$ ng build

빌드후에 /dist/퐬더에 생성된 파일을 nginx 서버가 적용 된 곳에 파일을 복사합니다.

localhost/까지는 잘 접속이 되는 것을 확인할 수 있습니다. 그러나, angular 의 RoutingModule을 사용한 주소 뒤에 localhost/some/some2/ 와 같은 주소는 접속이 되지 않습니다.

이를 해결하기 위해서는 아래와 같이 nginx/conf.d/default.conf 파일을 수정해 주어야 합니다.

일단 저는 nginx/1.13.5버전을 사용하고 docker 를 통해서 실행해 놓은 상태입니다.

docker exec -it some-nginx /bin/bash

명령어를 통해서 docker 내부에 접속을 한후에 vim 으로 설정을 변경합니다.

: vim이 실행이 되지않을때에는 apt-get update를 진행후 apt-get install vim를 통해 설치를 하기 바랍니다.

/etc/nginx/conf.d/default.conf 파일을 수정 합니다.

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri$args $uri$args/ $uri $uri/ /index.html =404;
    }
...

이대로 접속이 되면 만세!

반응형

Angular 라우팅 적용하기

  • @angular/core = “^5.0.1”

라우팅 기능을 통해서 페이지 이동을 구현하려고 하는데 생각보다 잘 안되서 무니서로 정리해 놓으려고 합니다.
Reference 문서를 살펴보면 가능은 하겠지만, 문서를 보면서 실수한 점에 대해서 기록

install routing module

$ ng generate module app-routing --flat --module=app

설치옵션

–flat : /src/app/ 폴더에 component 를 만들 때처럼 폴더를 생성하지 않고 파일을 생성합니다.
–module=app : AppModule 에 자동으로 import 합니다.

app.module.ts에 자동으로 imports:항목에 추가가 되므로, 따로 app.module 을 설정하지 않아도 되는 장점이 있습니다. 앵귤러는 설정때문에 왔다갔다 하는게 너무 많아요.

app.component.html파일

<div class="container">
  <router-outlet></router-outlet>
</div>

<router-outlet></router-outlet>이 라우팅이 적용되는 위치 입니다. 저는 router-outlet 을 html에 입력을 하지 않아서 적용이 되지 않았습니다.
이 거 찾는데 한시간 걸림. 왜 안되는지!!! 슬프다.

app-routing.module.ts파일

import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';

import { SalesComponent} from './sales/sales.component';
import { NotfoundpageComponent } from './notfoundpage/notfoundpage.component';

const routes: Routes = [
  {path: 'sales/:id', component: SalesComponent},
  { path: '', redirectTo: '', pathMatch: 'full'},
  { path: '**', component: NotfoundpageComponent }
]

@NgModule({
  imports: [ RouterModule.forRoot(routes)],
  exports: [ RouterModule]
})
export class AppRoutingModule {
  constructor() {}
}
반응형

+ Recent posts