이 생산라인은 천막 형태로 최소한의 자원을 투자해 단 3주만에 만들었다고 엘론 머스크가 밝힘
엘론 머스크는 최근 모델 3 생산이 일 500대~700대이사응로 크게 개선되었다고 임직원 메일에서 밝힘
6월말로 목표한 주당 5,000대 생산을 위해 엘론 머스크는 급진적인 개선(radical improvements)이 필요하다고 임직원에 촉구
최근 생산공장 준공 및 엘론 머스크의 내부 커뮤니케이션을 보면 생산에서의 혁신 그리고 솔선 수범에 따른 위기 극복의 좋은 사레를 보여주고 있음
2. 모델 3 세번째 생산 라인의 완성
지난 주말(2018년 6월 17일), 엘론 머스크(Elon Musk)는 트윗을 통해 모델 3를 생산할 세번째 생산 라인이 완성되었다고 밝혔습니다.
론 머스크는 테슬라 생산팀의 놀라운 작업으로 최소의 자원을 투입해 단 3주만에 이 조립 라인을 만들어 냈다고 밝혔습니다.
그리고 모델 3 듀얼 모터 버젼을 생산하는 사진을 올렸습니다.
Amazing work by Tesla team. Built entire new general assembly line in 3 weeks w minimal resources. Love u guys so much! Pic of 1st Model 3 dual motor performance coming off the line … pic.twitter.com/Xr55P3fmGd
여기에서는 Vultr 가상서버에서 우분투를 설치하기로 했기 때문에 Vultr 제어판에서 부터 시작하겠습니다.
제일 쉬운 방법은 Vultr 제어판에서 보이는 순서대로 서버 위치, 서버 타입, 서버 사이즈 등을 선택하고 맨 아래 버튼 Deploy Now를 누르면 기본 세팅이 됩니다.
Vultr 제어판에서 서버 타입으로 우분투를 선택하는 방법은 여러 가지가 있죠.
위 이미지에서 보이는 것처럼 기본으로 나오는 64 bit OS에서 선택할 수 있죠(참고로 우분투 18.04부터는32 bit는 지원하지 않습니다. 그래서 32bit OS를 보면 CentOS 6 i386, Debian 8 i386 그리고 우분투 14.04, 16.04 그리고 17.10만을 발견할 수 있습니다.)
또 서버 타입을 Application을 선택해 설치할 수도 있는데 여기에서 선택할 수 있는 운영체제가 제한적입니다.
많이 선택하는 LEMP로 설치시에도 우분투 16.04만 설치 가능합니다. 또 워드프레스 설치와 동시에 설치할 수 있지만 이 또한 우분투 16.04만 설치 가능합니다.
아니면 ISO 라이브러리를 선택해 설치할 수 있는데요. 여기서는 우분투 18.04 이미지를 지원합니다. 따라 여기서 선택해도 되겠죠.
3. 우분투 18.04 기반 서버 세팅
그러면 이제부터는 우분투 18.04 기반으로 각종 서버 세팅을 해보도록 하겠습니다.
Vultr 제어판에서 제공하는 SSH는 성능이 너무 떨어지므로 챠다보지도 말고 Xshell을 비록한 SSH 전문 프로그램을 사용해 서버에 접속합니다.
서버 접속 비밀번호는 서버 제어판에서 확인할 수 있습니다.
3.1. 웹서버 보안 ufw 설정
가장 먼저 해야할 것이 바로 웹 서버 보안 설정입니다. 일반적으로 웹 서버 세팅이 끝난 후 보안 설정을 하는 경우가 있는데 그동안에는 무방비 상태이므로 가능하면 SSH에 처음 접속하는 순간부터 바로 보안 설정을 합니다.
일반 및 SSL 설치 시 작동 가능토록 80, 443포트는 열어둔다.
처음에는 22포트로 SSH나 FTP를 접속하므로 이도 열어 놓는다.
ufw enable # 방화벽을 활성화한다.
ufw allow 80/tcp # 일반 웹 정보 관련 입출력 통로
ufw allow 443/tcp # SSL 설치 시 웹 정보 관련 입출력 통로
ufw allow 22/tcp # ssh용 신규 포트
일반적으로 ssh포트를 22번을 사용하는데 이는 너무 알려진 포트이므로 이를 이용해 공격하는 경우가 있다고 합니다.
따라서 자기만아는 포트 번호로 변경 사용하는 게 더 보안을 강화할 수 있는 방법이기도 합니다.
ssh에서 널리 알려진 22포트는 해킹의 집중 대상이 되므로 자신만이 알수 있는 포트를 바꾼다. 이 작업은 sshd_config에서 사용할 포트를 지정해야 한다.
/etc/ssh/sshd_config 에서 Port 22 를 찾아서 자기가 사용할 포트 숫자를 기억하기 쉽고 10000자리이상에서 임의의 숫자를선택한다. 예를 들어 58722, 65322 등등
이렇게 포트를 변경한 후 ssh 서비스를 재시작 합니다.
그리고 기존 ssh port로 사용했던 22번 포트는 접속할 수 없도록 막아 줍니다.
service ssh restart
ufw allow *****/tcp # *****는 ssh 포트로 기본 22번 포트대신 사용할 포트로 개인만 알 수 있는 만단위 숫자를 사용한다.
ufw deny 22/tcp # ssh용으로 22포트를 사용할 수 없게 한다.
3.2. Fail2ban을 설치하여 보안을 강화
로그를 분석해 의심스러운 접근을 금지시키는 방법이 DenyHosts나 Fail2Ban이라는 프로그램입니다.
이 중 Fail2ban은 DenyHosts보다 훨씬 진보된 방식으로 SSH, Apache, Courier, FTP 등등에서 의심스러운 접근을 차단할 수 있는 프로그램입니다.
Fail2ba은 로그 파일을 모니터링해서 넘 많은 패스워드 입력 실패나 공격 감행 징후들이 보이면 IP를 차단합니다.
먼저 Fail2Ban을 설치합니다.
apt-get install fail2ban
그 다음 설정을 변경해야 합니다. 이는 jail.conf 파일에서 수정합니다.
nano /etc/fail2ban/jail.conf
여기에서 ignoreip, bantime, findtime , maxretry 등을 수정해서 재구성합니다.
ignoreip에는 ban을 하면 않되는 IP를 적는다. 10.100.102.103/32 형식으로 적으며, 추가는 스페이스바로 구분한다.
bantime은 접속 차단 시간으로 기본이 600(10분)으로 되어 있음
findtime은 통계를 찾을 시간.
maxretry 는 fail 횟수이다. 기본으로 5가 세팅되어 있는데 이 정도면 충분하다고 보고 유지했다
3.3. 쉘 기본 언어값 확인
보안 설정이 끝났으면 이제는 본격적으로 세팅에 들어갑니다.
제일 먼저 쉘 기본 언어값 확인합니다.
apache2 명령어 입력 시 영어로만 나오면 그냥 넘어가고 중국어나 일본어 나온다면 영어로 바꾸어야 합니다.
이번 작업의 경우 아래처럼 영어로 나와서 넘어갔습니다.
# apache2
The program 'apache2' is currently not installed. You can install it by typicdng :
apt install apache2-bin
만약 영어가 아닌 다른 언어가 나온다면 /etc/default/locale 의 파일 내용을 변경한다.
# vi /etc/default/locale
에서 아래 내용을 반영한다.
LANG="en_US.UTF-8"
LANGUAGE="en"
3.4. 현 운영 체제의 프로그램을 최신으로 업데이트
업데이트와 업그레이드 실시해 최신본을 기반으로 세팅을 계속합니다.
# apt-get update
# apt-get upgrade -y
3.5. 시스템 시간 설정
여기는 서버 시스템의 시간을 한국 시간에 맞춥니다.
dpkg-reconfigure tzdata
GUI 환경에서 Asia를 선택하고 이어서 Seoul을 선택합니다. .
그러면 아래와 같은 결과를 출력하죠.
Current default time zone: 'Asia/Seoul'
Local time is now: Mon Jun 18 21:57:36 KST 2018.
Universal Time is now: Mon Jun 18 12:57:36 UTC 2018.
3.6. 메일 발송프로그램 설치하기
메일을 발송할 수 있는 sendmail 프로그램을 설치, 압축 해제 프로그램 그리고 SSL을 위한 letsencrypt도 같이 설치하자. 뒤에서 나오는 작업을 하다 보면 설치하라고 나오는 프로그램들이다.
메일 발송 프로그램은 시간이 조금 걸린다. 인내를 가지고 기다려야 한다.
apt-get install sendmail unzip letsencrypt -y
그러나 보안상의 이유로 외부로 메일 발송토로 세팅하지 말라고 강력히 권고되니 이는 참고하길 바랍니다.
여기서 설치하는 메일 발송앱은 서버에서 사용자에게 메일을 보내기 위해서 필요한 앱입니다.
3.7. APT 소스리스트 파일에 Nginx, PHP, MariaDB 저장소 추가
sources.list를 열어서 파일 맨 끝에 소스리스트를 추가
# nano /etc/apt/sources.list
파일 맨 끝에 아래 내용 추가합니다.
아래는 nginx는 최신 버젼 중심으로 사용하고, MariDB를 한국의 카이스트 파일 저장소에서 받아 오기로 세팅한 것입니다.
# Nginx
deb http://nginx.org/packages/mainline/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx
# MariaDB 10.3 repository list - created 2018-06-17 11:57 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://ftp.kaist.ac.kr/mariadb/repo/10.3/ubuntu bionic main
deb-src http://ftp.kaist.ac.kr/mariadb/repo/10.3/ubuntu bionic main
만약 nginx를 안정버젼으로 설치하겠다면 아래 소스 리스트를 사용한다.
# Nginx
deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx
# MariaDB 10.3 repository list - created 2018-06-17 11:57 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://ftp.kaist.ac.kr/mariadb/repo/10.3/ubuntu bionic main
deb-src http://ftp.kaist.ac.kr/mariadb/repo/10.3/ubuntu bionic main
위에서는 MariaDB를 한국 카이스트에서 받아오도록 되어 있는데요.
제 경험상 카이스트는 접속이 원활하지 않은 적이 많았습니다.
그래서 Vultr 가상 서버 위치가 도쿄이므로 차라리 일본 대학에서 가져오는 게 더 낫을 수 있습니다.
일본으로 설정하려면 아래와 같이 세팅합니다.
# MariaDB 10.3 repository list - created 2018-06-17 11:54 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.3/ubuntu bionic main
deb-src http://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/repo/10.3/ubuntu bionic main
3.8. 각 저장소 보안키 다운로드 후 시스템에 등록
웹서버는 업데이트 및 업그레이드 시 해당 저장소에 접근해 최신 파일을 받아 오므로 이 저장소에 접근 할 수 있도록 보안키를 등록해 둡니다.
우선 nginx 보안키 다운로드 후 적용합니다.
cd /root
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
rm nginx_signing.key
다음으로는 MariaDB 보안키 다운로드 후 적용합니다.
아래는 MariaDB 재단에서 제공하는 Ubuntu 18.04에 MariaDB 저장소 보안키를 설치하는 방법입니다.
아래 명령어를 사용합니다.
add-apt-repository ppa:ondrej/php를 실행하면 여기서 아래와 같은 메세지가 나오면서 엔터를 치라는 메세지가 나오는데요. 고민하지말고 엔터를 치면됩니다.
Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included.
You can get more information about the packages at https://deb.sury.org
BUGS&FEATURES: This PPA now has a issue tracker:
https://deb.sury.org/#bug-reporting
CAVEATS:
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
2. If you are using apache2, you are advised to add ppa:ondrej/apache2
3. If you are using nginx, you are advise to add ppa:ondrej/nginx-mainline
or ppa:ondrej/nginx
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/
WARNING: add-apt-repository is broken with non-UTF-8 locales, see
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or ctrl-c to cancel adding it
여기에서는 웹서버로 Nginx를 설치하기 했으므로 Nginx를 설치하고 nginx를 다시 가동(restart)시킵니다.
일반적으로 웹서버는 NGINX가 작은 자원을 가지고 효율적으로 운영될 수 있어서 처름 시작하는 소규모 사이트에서 각광을 받고 있으며 아파치(Apache)는 기준 풍부한 운영 경험을 토대로 대규모 사이트에서 선호된다고 합니다.
# apt-get install nginx
# service nginx restart
# nginx -v // Version check
2018년 6월 17일 현재 설치 버젼을 체크해 보니 1.15이 나옵니다.
5. PHP 7.2 설치
PHP7-FPM 최신 버전인 PHP7.2를 설치합니다. 2018년 6월 17일 현재 최신 버젼은 PHP7.2.6입니다.
기본적인 php 상요하기 위해 몇가지를 변경합니다.
파일 수정은 fpm과 cli 폴더의 php.ini를 모두 수정해 주어야 한다고 합니다. 일반적으로 fpm이 중요하다고는 합니다만.
date.timezone을 찾아 Asia/Seoul로 변경
cgi.fix_pathinfo=0 값으로 변경
쿠키값 보안을 위해서 session.cookie_httponly 와 session.cookie_secure 값을 1을 준다.
# vi /etc/php/7.2/fpm/php.ini
# vi /etc/php/7.2/cli/php.ini
아래는 php.ini 파일에서 타임존능 변경 적용한 결과입니다.
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Seoul
PHP 기본 세팅의 변경,
아래는 PHP 기본 세팅을 변경하는 명령어인데 제한적이지만 작용은 합니다. 아래 명령을 보듯이 fpm 폴더에 있는 php.ini 파일이 변경됩니다.
sed -i "s/memory_limit = .*/memory_limit = 256M/" /etc/php/7.2/fpm/php.ini
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 1024M/" /etc/php/7.2/fpm/php.ini
sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
PHP-FPM 프로세스 매니저는 Static, Dynamic and Ondemand의 3가지방법이 있는데 설치 시 기본은 Dynamic인데
이를 Ondemand로 변경합니다.
변경은 /etc/php/7.2/fpm/pool.d/www.conf 내용을 변경하고, /etc/php/7.2/fpm/pool.d/www.conf.org는 삭제합니다. (이 파일은 없는 경우도 있다)
앞에서 저장소와 키를 등록했으므로 간단하게 아래 명령으로 MariaDB를 설치할 수 있습니다.
apt-get update
apt-get -y install mariadb-server
설치 도중에 New password를 설정하는 화면이 나온다. 설치가 완료된 후 서비스 상태를 확인할 수 있습니다.
service mysql status
6.2 PHP-FPM에 DB 연동관련 모듈설치
apt-get install php7.2-mysql
기본 언어셋 설정
이는 매우 중요한 세팅으로 반드시 필요합니다. 18.04에서는 취치가 조금 바뀌었네요.
nano /etc/mysql/mariadb.cnf
아래 내용으로 변경합니다.
# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this (also in client section)
#
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
변경 내용을 반영해 DB를 다시 시작합니다.
service mysql restart
6.3 Nginx 와 PHP-FPM 연결
nginx는 기본적으로 nginx 사용자 권한으로 실행되고, PHP-FPM 프로그램은 기본적으로 www-data 사용자 권한으로 실행되므로 둘의 사용자 권한을 www-data로 일치시킵니다.
vi /etc/nginx/nginx.conf
user nginx; 를 user www-data; 로 변경
worker_processes 1; 를 worker_processes auto; 로 바꾼다. 고사양 서버에서 성능이 더 좋아진다고. 일반적으로 트래픽이 적은면 1을 사용하고 트래픽이 많아지면 auto를 사용한다.
수동 설치 과정에서 1.13.35.2-stable라는 단어를 많이 사용할 것이므로 이를 연결하는 명령을 줍니다. 바로 NPS_VERSION을 적용해 이 명령이 1.13.35.2-stable를 의미토록 만드는 것이죠.
아래 명령 순서에 따라 진행합니다.
NPS_VERSION=1.13.35.2-stable
cd
wget https://github.com/apache/incubator-pagespeed-ngx/archive/v${NPS_VERSION}.zip
unzip v${NPS_VERSION}.zip
nps_dir=$(find . -name "*pagespeed-ngx-${NPS_VERSION}" -type d)
cd "$nps_dir"
NPS_RELEASE_NUMBER=${NPS_VERSION/stable/} # stable 버젼 시 이를 사용
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
wget ${psol_url}
tar -xzvf $(basename ${psol_url}) # extracts to psol/
7.3. Nginx 소스 컴파일 설치
다음으로는 Nginx모듈을 설치합니다. 앞에서 이미 Nginx를 설치했는데 이게 무슨 소리지? 하는 의문이 일겠죠.
Nginx에서 ngx_pagespeed를 자동으로 적용하는 방법이 없기 때문에 Nginx에 ngx_pagespeed 최신 버젼이 작동할 수 있도록 만들어야 합니다.
필요 프로그램 설치
본격적으로 Nginx를 다운 받아 작업을 진행하기 전에 원활하게 ngx_pagespeed가 설치될 수 있도록 필요한 프로그램을 설치해 줍니다. 이게 없으면 일부 오작동하는 경우가 있다고 합니다.
여기를 보면 MainLine version이 있고 안정화 버젼(stable version)이 있는데요. 앞 초장 부분에서 최신 버젼을 사용하는MainLine version을 선택했으면 여기서도 MainLine version을 택하고, 안정화 버젼을 택했으면 여기서도 안정화 버젼을 확인합니다.
저는 MainLine version을 선택했으므로 이를 기준으로 진행했습니다.
root로 이동, 불필요한 문제를 만들지 않기 위해 루트에서 작업
먼저 몇가지 필요한 라이브러리를 설치
Nginx 최신 버젼을 받아 놓은 곳으로 이동
여러가지 모듈을 같이 설치
2018년 6월 17일 현재 NGINX 최신 버젼이 1.15.0이므로 아래와 같은 순서로 진행합니다.
NGINX_VERSION=1.15.0
cd
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}/
./configure --with-cc-opt='-Wno-deprecated-declarations' --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/run/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --add-module=$HOME/$nps_dir ${PS_NGX_EXTRA_FLAGS}
make
make install
7.4 최적화 setting
nginx.conf에서 최적화 옵션 적용
아래는 시스템에 적용된 내용이다.
# enable pagespeed module on this server block
pagespeed on;
# let's speed up PageSpeed by storing it in the super duper fast memcached
#pagespeed MemcachedThreads 1;
#pagespeed MemcachedServers "localhost:11211";
# This setting should be enabled when using HTTPS
# Take care when using HTTP > HTTPS redirection to avoid loops
pagespeed MapOriginDomain http://happist.com https://happist.com;
# show half the users an optimized site, half the regular site
pagespeed RunExperiment on;
pagespeed AnalyticsID UA-64766674-1;
pagespeed ExperimentVariable 1;
pagespeed ExperimentSpec "id=1;percent=50;level=CoreFilters;enabled=collapse_whitespace,remove_comments;";
pagespeed ExperimentSpec "id=2;percent=50";
pagespeed EnableFilters extend_cache;
pagespeed JpegRecompressionQuality 65;
pagespeed RewriteLevel CoreFilters;
# Filter settings
pagespeed DisableFilters convert_jpeg_to_webp;
pagespeed DisableFilters lazyload_images;
pagespeed EnableFilters defer_javascript; # 페이지 로딩 완료 시까지 자바 실행 지연
pagespeed EnableFilters insert_dns_prefetch; # DNS resolution time 축소
pagespeed EnableFilters prioritize_critical_css;
pagespeed EnableFilters make_google_analytics_async,make_show_ads_async;
# 이미지관련 대부분이 Core에 기본으로 들어가 있음, 사용하지 않으려면 비활성화 해야 함 예를 들어 pagespeed DisableFilters convert_to_webp_animated; 기본 rewrite_images, convert_jpeg_to_progressive, convert_png_to_jpeg, convert_jpeg_to_webp, convert_to_webp_lossless, inline_images, recompress_images, recompress_jpeg, recompress_png, recompress_webp, convert_gif_to_png, strip_image_color_profile, strip_image_meta_data, jpeg_sampling, resize_images, resize_rendered_image_dimensions,
pagespeed EnableFilters sprite_images;
pagespeed EnableFilters resize_mobile_images;
# needs to exist and be writable by nginx 755로 되어 있음
# cache 비우는 방법 Flushing PageSpeed Sever-ide Cache
# rm -rf /var/ngx_pagespeed_cache/* or touch /var/ngx_pagespeed_cache/cache.flush
# ngxrestart
pagespeed FileCachePath /var/ngx_pagespeed_cache;
pagespeed FileCacheSizeKb 1024000000; # cache를 적용 후 다 차면 비운다
pagespeed FileCacheInodeLimit 50000000;
pagespeed CssFlattenMaxBytes 5120;
pagespeed LRUCacheKbPerProcess 8192;
pagespeed LRUCacheByteLimit 16384;
# onfiguring SSL Certificates
pagespeed SslCertDirectory directory;
pagespeed SslCertFile file;
pagespeed RewriteLevel CoreFilters;
pagespeed FetchWithGzip on;
7.5 ngx_pagespeed 설치 유무 간단 확인
ngx_pagespeed가 설치되었는지 간단히 확인하는 방법입니다.
nginx -V(대문자)를 치면 시스템에 설치된 nginx 관련 모듈 리스트가 뜨는데 여기에 ngx_pagespeed가 나오면 제대로 설치된 것이죠.
nginx -V
그러면 아래와 같은 모듈 리스트가 뜹니다. 여기에 ngx_pagespeed가 있는지 확인해 보죠.
nginx version: nginx/1.15.0
built by gcc 7.3.0 (Ubuntu 7.3.0-16ubuntu3)
built with OpenSSL 1.1.0h 27 Mar 2018
TLS SNI support enabled
configure arguments: --with-cc-opt=-Wno-deprecated-declarations --sbin-path=/usr/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/run/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --add-module=/root/./incubator-pagespeed-ngx-1.13.35.2-stable
8. Let’s Encrypt 무료 SSL인증서 발급
보안의 일종으로 Let’s Encrypt 무료 SSL인증서 발급해 보겠습니다. 이 글은 주로 아래 글을 참조하였습니다.
둘째, 필요한 소프트웨어를 GitLab에서 받을 수 있도록 git를 설치
처음 소프트웨어 설치 시 관련 소프트웨어를 업데이트할 수 있도록 Git repositories를 등록해 놓았다면 별도로 설치할 필요는 없는 것 같다.
셋째, 새로운 작업을 시작하기전에 항시 최신 소프트웨어가 없는지 점검하기 위해서 업데이트 명령을 준다.
넷째, 그 다음 git를 설치 명령을 준다.
다섯째, git이 설치되면 git 저장소에서 SSL 인증을 위한 소프트웨어 클라이언트인 certbot를 다운받는다.
cd /root # /root 디렉토리로 이동해 작업 시작
apt-get update # 항상 소프트웨어를 설치하기 전에 최신 업데이트가 있는 지 학인
apt-get install git # git 설치
git clone https://github.com/certbot/certbot # certbot 설치
8.2. certbot으로 인증서를 생성
첫째, certbot이 깔린 폴더로 이동. cd certbot 명령 사용
둘째, nginx를 중단시킨다.
Let’s Encrypt 의 인증 방식인 Standalone plugin 은 서버 인증을 위해서 80포트를 이용하는데 nginx가 80 포트를 계속 사용하고 있으면 인증이 제대로 될 수 없으므로 nginx 서버를 일시적으로 멈추는 것.
셋째, 인증 절차에 돌입.
여기서 certonly 명령을 사용. certonly는 인증서만 설치하겠다는 명령으로 nginx에선 아직 아파치처럼 다양한 명령 옵션이 없다.
넷째, 나오는 화면 요구사항에 맞추어 인증을 진행.
cd certbot # /certbot 디렉토리로 이동해 작업 시작
service nginx stop # 80포트를 사용하지 않토록 nginx를 중단시킴
./certbot-auto certonly # 인증 절차 진행, 조금 시간이 걸립니다.
service nginx start # 작업이 끝나면 다시 nginx를 가동시킴
인증시 이메일주소를 입력 후 적용하고 싶은 사이트 주소를 입력하게 끔 되어 있는데 큰 어려움은 없이 진행됩니다. .
8.3. DH Param 생성, 적용하기
앞의 작업으로 인증서 설치는 끝나지만 보다 보안을 강화하기 위해서 DH Param 생성합니다.
DH Param은 일부 암호화 알고리듬에 사용되는 커다란 난수 하나를 미리 생성해 두어서 암호화 성능을 향상시키고 보안을 높이는 방법입니다.
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
openssl dhparam -out dhparams.pem 4096 # 2048비트로 하려면 4096대신 2048로 대체 한다.
openssl rand 48 > session_ticket.key # 세션 티켓키도 생성 이는 시간이 거의 걸리지 않는다.
8.4. 암호화 알고리즘 설정하기
인증서를 획득하는게 중요한게 아니고 얼마나 철저한 암호화 설정을 하느냐가 중요하기에 암호화 알고리즘을 적용합니다.
아래는 시스템에 적용된 암호화 알고리즘들입니다.
# Letsencrypt 기본 RSA 인증서
ssl_certificate /etc/letsencrypt/live/happist.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/happist.com/privkey.pem;
#OCSP Stapling(인증서가 유효하다는 증명을 미리 받아두어서 사이트에 처음 방문할 때 접속 속도를 높여주는 방법dla)
ssl_trusted_certificate /etc/letsencrypt/live/happist.com/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_dhparam /etc/nginx/ssl/dhparams.pem;
ssl_session_tickets on;
ssl_session_ticket_key /etc/nginx/ssl/session_ticket.key;
# HTST 설정 ; 해당 도메인에 접근시 HTTPS로 접속을 강제하는 옵션
# 밑 옵션을 넣은 후 https://hstspreload.appspot.com 사이트에서 도메인 등록 필요
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
#HPKP 설정
#add_header Public-Key-Pins 'pin-sha256="lrJxl2mZhg9wlQ9JncdCBWyMq9oInWn2Wecefuv61T4=" ; pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=" ; pin-sha256="Vjs8r4z+80wjNcr1YKepWQboSIRi63WsWXhIMN+eWys=" ; max-age=2592000; includeSubDomains';
참고 Let’s Encrypt SSL인증서 발급 관련 참고 – 1주일에 5번만 발급 가능
서버를 세팅하다보면 본의아니게 서버 설치를 반복하게 됩니다.
이런 저런 문제를 해결하고자 고민하다 문제 원인을 못 잡으면 다시 설치하고 또 다시 설치하고를 반복하게 되죠.
그런데 Let’s Encrypt SSL인증서는 1주일에 5번까지 발급 받을 수 있도록 제한되어 있습니다. 여러번 시행 착오를 통해서 5번이 넘어서면 아래와 같은 메세지가 나오면서 발급이 안됩니다.
An unexpected error occurred:
There were too many requests of a given type :: Error creating new cert :: too many certificates already issued for exact set of domains: test.com www.test.com
이렇게 자율주행으로 자동차 생활이 급변할 ㅈ짐을 보이고 있는데 자율주행에 대해서 조금 살펴볼 필요가 있지 않을까요?
오늘은 자율주행 발전 단계에 대해서 살펴보도록 하겠습니다.
2. 자율주행차 6단계에 대해서
요즘 자율주행차는 기술 발전 단계에 따라 6단계로 분류하는데요.
이전까지는 자율주행차 5단계 구분이 일반적이었습니다. 이는 미국연방고속도로안전관리국(NHTSA)에서 제시한 자율주행차 정의였는데요.
Level 0 : 자율주행 기능이 없는 단계로 운전자가 모든 운전 동작을 제어
Level 1 : 초보적 자율 운전 기능 적용 단계(자동 긴급 정지, 정속 주행 ACC 등)
Level 2 : 두개 이상 초보적 운전 자동 기능 적용
Level 3 : 주위 상황을 모두 감시하는 자율주행 기능 적용
Level 4 : 운전자없이 운전이 가능한 상태
그러다가 미국자동차공학회 SAE(Society of Automotive Engineers)가 완전 자율주행차 구현에 필요한 기술이 적용되는 기술을 6단계로 나누어 설명하면서 6단계 구분이 점점 일반화되고 있습니다.
앞서 설명한 미국연방고속도로안전관리국(NHTSA)도 이제는 미국자동차공학회 SAE(Society of Automotive Engineers) 분류에 따라 6단계로 대체하고 있습니다.
여기에서도 SAE(Society of Automotive Engineers) 기준에 따른 6단계을 정의해 보겠습니다.
자율주행 단계 설명 Level of Self-driving 이미지 by Happist
2.0. Level 0 – 자동화 없음
자율주행 기술이 전혀 들어가지 않은 상태로 운전자가 운전 전반을 완전히 제어하는 상태입니다.
자동차중에서 차선을 이탈하거나 앞차와의 간격이 짧아지면 경고를 해주는 기능이 장착된 자동차가 있는데 이 경우도 Level 0에 해당합니다. 왜냐하면 상화응ㄹ 모니터링해서 알려주기만 할뿐 속도를 줄이고, 원래 차선으로 복귀등은 운전자가 직접해야 하기 때문입니다.
2.1. Level 1 – 운전자 보조 : 크루즈 컨트롤, 차선 이탈 경보 장치 그리고 긴급 제동 장치
운전에 해당하는 여러 기능중에서 방향, 속도 제어 등 특정 기능을 자동화해서 자율주행이 운전자의 운전을 조와주는 역활을 하는 단계입니다.
이 단계에서는 크루즈 컨트롤(Cruise Control), 차선 이탈 경보 장치((LDWS) 그리고 긴급 제동 장치(AEB)와 같은 기술들이 적용되어 운전자의 개입없이도 일부 기능을 수행합니다.
그렇지만 이 단계에서 운전자는 차의 속도와 방향을 항상 통제 해야하기 때문에 운전자는 도로 상황과 차량 주행 상태를 점검하며, 운전대에 항상 손을 올려 놓고 있어야 합니다.
쏘렌토에 적용중인 차선이탈경보장치 설명 이미지(Kia new sorento safety lane departure warning system)
2.2. Level 2 – 부분 자율주행 : 스스로 가/감속이 가능
Level 2는 고속도로와 같이 정해진 조건에서 차량, 차선 인식, 앞차와 간격 유지 기능 등 부분적으로 자율주행을 가능케 하는 단계입니다.
최근 자동차등에 도입되고 있는 지능형 운전자 보조시스템(ADAS)가 이에 해당됩니다. 테슬라가 2012년부터인가 지능형 운전자 보조시스템(ADAS)를 적용했고 이를 계속 업데이트하면서 성능을 개선시켜오는 것으로 유명합니다.
지능형 운전자 보조시스템(ADAS) 설명 이미지-조선일보 인용
한국의 경우 제네시스 G80에 적용된 ‘주행 조향 보조 시스템(LKAS)’도 Level2에 해당된다고 할 수 있습니다. 이는 Level 1에서 적용된 ‘차선 이탈 경보 장치’에서 한 단계 발전한 것으로, ‘차선 이탈 경보 장치’는 차선 이탈 시 경보음만 알리지만 ‘주행 조향 보조 시스템(LKAS)’은 자동으로 정해진 차선으로 복귀시켜 줍니다.
Level 2에서는 여러 가능을 복합적으로 할 수 있기 시작하는 단계라고도 할 수 있는데요. Level 1에서 적용된 크루즈 컨트롤(Cruise Control)을 하면서 자신의 차로 가운데를 유지할 수 있도록 해줄 수 있습니다.
고속도로와 같이 차로 구분이 확실하고 차량들이 일정한 속도로 달리는 곳에서는 이런 부분 자율 주행이 가능합니다.
다만 이 단계에서도 운전자는 항상 주변 상황 주시해야 하며 항상 운전대에 손을 올려 놓고 있어야 합니다. 이 단계에서 사고의 책임은 운전자에게 있습니다.
2.3. Level 3 – 부분 자율주행 : 도로 장애물 회피 가능
Level3 부터 자율주행은 운전자 보조 기능에서 벗어나 직접 조향, 가속, 감속, 제동등을 능동적으로 할 수 있는 단계입니다;
이 단계에서는 일정 구간 자율주행 가능한데요, 시스템이 교통신호와 도로 흐름을 파악해 길이 막히면 월활한 길을 찾아 우회하기도 하고, 도로에 장애물을 파악해 이를 피해 운전하기도 합니다.
아 단계를 적용한 케이스로 많이 언급되는 브랜드가 바로 테슬라, 아우디 A8이나 구글 웨이모입니다.
테슬라 오토파일럿 2 설명
Level 3에서 운전자는 주변 상황을 주시해 돌발 상황 등 부분 자율주행 한계 상황에서 일정 시간내에 운전자는 운전 상태로 복귀할 수 있도록 항시 준비하고 있어야 합니다. 자율주행 기능을 믿고 졸거나 멍 때리고 있어서는 안됨니다. (솔직히 이게 잘 지켜지지 않아서 위험할 수도 있습니다.)
그러나 느슨한 상태로 있다가 갑자기 운전 상태로 복귀하는 것은 생각처럼 쉽지 않기 때문에 논란이 많습니다. 따라서 전환 시간 문제로 이 단계를 적용하지 않고 바로 Level 4로 넘어 가겠다는 회사도 있습니다.
2.4. Level 4 – 고도화된 자율주행 : 돌발 상황 대처 가능
이 단계는운전자가 수동 운전으로 복귀할 수 없는 상황에서도 스스로 안전한 자율주행이 가능한 단계를 말합니다.
주행중인 자동차가 돌발 상황을 만나 운전자의 개입을 요청하지만 운전자가 온전한 운전 상태로 복귀하는데 시간이 거리고, 또 운전자가 졸거나 아픈 경우 대응할 수 없는 경우가 많이 생기죠. 이 경우 자동차는 스스로 속도를 줄이고 갓길에 주차시키는 등 상황 대처를 스스로 할 수 있어야 Level 4라 할 수 있습니다.
또한 이 단계는 자율 주행을 적용할 수 있는 도로 조건과 상황이 Level 3보다 많습니다. 복잡한 도심이나 골목이나 커브 등 돌발 상황이 예상되는 도로에서도 자율 주행이 가능한 수준입니다.
구글 웨이모 자율주행 미니밴 waymo Self-Driving minivan – 이미지 구글 웨이모
2.5. Level 5 – 완전한 자율주행 : 운전자가 없어도 되는 단계
마지막 Level 5는 목적지만 입력해 놓으면 운전자 없이 알아서 목적를 찾아가는 ‘FULL AUTOMATION’ 단계입니다.
최근 구글 자회사인 웨이모는 2018년 말부터 완전 자율주행차 호출 서비스를 출시하겠다고 밝혔죠.
테슬라 CEO 엘론 머스크는 2018년 8월에 Auto Pilot 버젼 9에서 완전 자율주행 기능이 포함된다고 밝혔는데요. 테슬라의 이번 업데이트는 신뢰를 잃고 있었던 테슬라 자율주행 기술 이미지을 만회할 수 있을까요?
테슬라 자율주행 기술 전반에 대해서 간단히 살펴 보았습니다. .
1. 완전 자율주행 기능 업데이트를 공언한 테슬라
2018년 6울 10일, 한 고객이 트위터를 통해서 ‘러시아워에 두개 차로가 합쳐지는 길에서 오토파일럿(Autopilot)이 제대로 동작하지 않는다.’ 라는 현상을 제보하죠.
이에 엘론 머스크는 이 문제 제기에 ‘그 이슈는 8월에 배포되는 업데이트 버전9에서 완전히 해결될 것이며, V9은 완전 자율주행 기능이 추가될 것(V9, we will begin to enable full self-driving features,)’이라고 밝혔습니다. .
That issue is better in latest Autopilot software rolling out now & fully fixed in August update as part of our long-awaited Tesla Version 9. To date, Autopilot resources have rightly focused entirely on safety. With V9, we will begin to enable full self-driving features.
물론 여기에는 순수한 자율주행차 기술뿐만이 아니라 자동차 생산, 공급 등 다른 경영적 요소를 다 평가하므로 기술 자체로는 볼 수 없습니다.
▽ 2018년 자율 주행 자동차 경쟁력 비교 차트 by Navigant
3. 테슬라 자율주행 전략의 특징은?
테슬라는 전기자동차를 특징과 더불어 일찍부터 Auto Pilot이라는 자율주행 기술을 적용시켜 왔습니다.
테슬라의 자율주행 전략에는 타사와는 조금 다른 두가지 전략이 있습니다.
3.1. Auto Pilot 업데이트가 항상 가능한 구조적 설계
테슬라 Auto Pilot의 가장 큰 특징은 시간이 지나도 항상 지속적인 업데이트가 가능토록 설계되었다는 점입니다.
테슬라 전기자동차는 소프트웨어처럼 자동차에 적용되는 이런 저런 기능을 수시로 업데이트해 항상 최신의 테슬라 자동차 사용 경험을 제공해 주고 있죠. 그래서 테슬라 자동차는 그냥 자동차가 아니라거 거대한 IT기기라고도 불리웁니다.
잦은 업데이트로 성능을 향상시키는 점에서 스마트폰과 닮아 있는데요. 테슬라의 고객 지원 방식은 자동차 특성을 충실히 반영하고 고객 중심 접근으로 스마트폰중에서는 보다 애플 아이폰과 닯아 있습니다.
안드로이드 스마트폰은 업데이트 보장 연한이 얼마되지 않죠. 기본적으로 사용 연한을 2년 정도로 보기 때문에(실제 2년에 맞추어 설계한다는 소문도 있을 정도) 2년이상 지난 안드로이드 스마트폰들은 대부분 업그레이드에서 제외됩니다.
반면 애플 아이폰은 iOs가 업데이트 될때마다 성능이 허용하는 범위에서 업데이트가 가능한 정책을 세우고 있습니다.
이점이 아이폰 사용자의 브랜드 충성도를 높이듯, 애플을 많이 벤치마킹한 테슬라도 아이폰과 비슷한 업데이트 전략을 츃고 있습니다. 테슬라는 사용 연한이 긴 자동차 특성 그리고 소프트웨어 중심이라는 특성을 살려서 시간이 흘러도 업데이트를 지속해주는 정책을 취하고 있습니다.
또 이준노님이 페이스북에 밝힌 바에 내부 하드웨어 MCU가 변경되면 하드웨어 모듈 업그레이드까지 지원한다고 합니다. 이러한 하드웨어 업그레이드는 일관된 소프트웨어와 하드웨어 전략에 따라 설계단계부터 반영되지 않으면 적용하기 어렵습니다. 하드웨어 업그레이드는 회사가 총력을 기울인다면 한두번은 가능하겠지만 변경이 계속될수록 관리 불가합니다. 하드웨어 업그레이드가 좋은줄은 알지만 아무나 못하는 이유가 다 있는 법이죠.
테슬라 고객이 된다는 것은 위에서 지적한 대로 소프트웨어 뿐만이 아니라 하드웨어 업그레이드까지 가능하므로 시간이 오래지나도 신차처럼 최신 자동차 경험을 즐길 수 있다고 합니다. 이준노님에 따르면 2012년 출시한 테슬라 자율주행 초기인 ADAS(advanced driver assistance system)도 최신으로 유지된다고 합니다.
이런 차별적인 테슬라만의 브랜드 사용 경험이 테슬라 고객들의 높은 브랜드 충성도를 유지할 수 있는 강력한 기반이 되고 있다는 판단입니다.
3.2. Mass 모델까지 확장 전개 가능한 자율주행 기술 추구
또 한가지는 테슬라의 자율주행은 업계 표준이다시피하는 라이더(LIDAR:light detection and ranging)를 사용하지 않고 자율주행 기술을 달성하고자 합니다.
한때 라이더는 대당 7만 5천달러이상이었으나 구글은 이 가격을 90%이상 절감했다고 밝혔습니다. 이로 추정해보면 7천 5백 달러정도로 추정되어 어느 정도 가격 경쟁력을 갖추고는 있지만 여전히 고가이기 때문에 대중화에는 한계가 있습니다.
테슬라의 자율주행 전략은 가능하는 한 라이더와 같은 고가 하드웨어 장비에 의존하지 않고 카메라를 이용해 자율주행을 구현해 Mass 모델까지 자율주행 기능을 확산하겠다는 것입니다.
자율주행에 필요한 라이다가 매우 비싸기 때문에 현재 대부분 업체의 낮은 단계의 자율주행 기능을 최고가 프리미엄 모델에 적용하고 있습니다.
반면 테슬라는 Auto Pilot이라 불리우는 낮은 단계의 자율주행 기능을 5천 달러 비용에 모델 3에도 적용하고 있습니다.
자율주행에 대한 어떤 전략이 가장 효율적일지는 아직 모릅니다. 그렇지만 단순에 프리미엄에서 매스 모델까지 자율주행 기능을 적용해 시장을 석권하겠다는 테슬라의 전략은 기술만 뒷받침해 줄 수 있다면 매우 효율적인 전략이라고할 수 있습니다.
궁극적으로 대중 시장(Mass Market)을 시장하는 회사가 마켓 리더가 될 수 있기 때문이죠.
4. Auto Pilot에서 체면을 구기고 있는 테슬라
최근 테슬라 Auto Pilot관련 사고가 잇다르면서 테슬라 Auto Pilot에 대한 신뢰가 많이 떨어졌습니다.
2018년 3월에는 아주 밝은 날 오전 Auto Pilot으로 주행중이던 모델 X가 중앙 분리대와 충돌해 운전자가 사망하는 사고가 일어났죠.
사고원인은 한낮의 강력한 역광때문에 카메라가 차선을 제대로 인지하지 못했기 때문이라는 분석이 나왓습니다.
떠 2018년 5월에는 테슬라 자동차가 도로에서 이탈해 울타릴르 뚫고 연못으로 빠져 운전자가 사망하는 사고가 발생했습니다.
5. 마치며 – 테슬라는 명예를 회복할 수 있을까?
이처럼 테슬라 Auto Pilot관련 사고가 잦아지면서 테슬라는 아직 불완전한 Auto Piot 기능을 너무 믿고 운전에 신경스지 않는 것을 막기위해 운전자를 괴롭히는(?) 기능을 강화하고 있습니다.
즉 일정 시간이 지나면 운전대에 손을 올리라는 경고를 계속주는 것으로 업데이트 했습니다.
Will be adjusting screen alert to clarify that we mean “slight up or downward force on the wheel”, not really “hold the wheel”
여기서 이야기하는 것이 최선의 방법은 아닐겁니다. 거기서 엄청 자랑질을 해놓긴 했던데 그냥 참조로 보시면 좋을 듯 합니다.
글쓴이는 100여개 사이트를 관리하고 있고 29개의 워드프레스 테마를 사용한 테스트한 결과를 토대로 정리했다고 하는데요.
읽다보면 상식적인 이야기도 있는데 이는 그만큼 원칙은 단순하다는 것을 보여줍니다.
1. 스크롤 하지 않고 볼 수 있는 영역에 광고 배치
사이트 페이지에 접속했을 시 바로 광고가 보이는 게 중요합니다. 따라서 스크롤 하지 않고 보이는 ‘above the fold’ 영역에 배치하는 것이 중요합니다. (서놓고 보니 너무 당연한 이야기 같습니다.)
여기서 fold라는 개념을 알아 보죠.
fold라는 개념은 신문 가판대에서 신문을 놓기 위해 반으로 접어 놓은데요. 이때 접히는 부분을 fold라고 하죠.
그래서 사람들에게 보여지는 부분을 ‘above the fold’라고하고, 보여지지 않는 아래 부분을 ‘below the fold’라고 합니다.
웹페이지에서는 웹페이지에서 스크롤을 하지 않고도 볼수 있는 영역을 ‘above the fold’라고 하고, 그 아래에 배치되는 검색 결과를 ‘below the fold’라고 합니다.
그리고 구글과 같은 검색 엔진에서는 검색 결과가 첫 페이지의 상위 4~5개를 ‘above the fold’라고 하고 그 아래로 스크롤해서 을 해야만 볼수 있는 영역을 ‘below the fold’라고 정의합니다.
fold라는 단어가 나와서 함 찾아 보았습니다. 새롭게 알게 된 개념!!
아무튼 애드센스 광고를 스크롤하지않고 볼 수 있는 영역에 배치하는 것이 중요하고, 이는 글쓴이의 경험으로는 거의 107% 성과 차이가 난다고 합니다.
2. 텍스트와 이미지 광고를 사용
광고에는 텍스트만 또는 이미지만 가능한 광고가 있는데요. 이런 광고보다는 이미지와 텍스트 모두 가능한 광고 단위를 적용하는 것이 좋습니다.
애드센스 광고 단위에서 광고 유형 수정을 선택하면 광고 유형을 수정할 수 있습니다.
여기에는 텍스트 광고, 텍스트 및 디스플레이 광고 그리고 디스플레이 광고만 중에서 선택할 수 있는데요. 텍스트 및 디스플레이 광고가 권장되고 있고 실제로도 효가가 있다고 합니다.
글쓴이의 주장은 59% 증가했다고 합니다.
3. 매뉴얼로 최적화 하라. 구글 자동화는 아직까지는 비효율적이다.
구글에서 자동으로 최적화해주는 기능을 제공하고 있습니다.
그렇지만 많은 경우 오히혀 효율이 떨어진다는 지적이 많습니다. 이 글쓴이도 구글 자동화에 맡기지말고 테마에 맞추어 사이즈, 위치 등을 최적화 했더니 훨씬 효율이 좋아 져다고 합니다.
글쓴이의 주장은 구글 자동화 시보다 무려 54% 증가했다고..
모바일에서는 250×250이 가장 성과가 좋다.
태블릿과 모바일에서는 사이드바를 숨겨라
모바일에서 가장 좋은 위치는 250×250 광고를 콘텐츠 맨 위부분, 중간 그리고 맨 아래에 배치 시 효과적이다.
4. 가장 방문이 많은 Top 50 패이지를 관리하라.
애드센스는 500개까지 특정 페이지의 광고 효과를 모니터링 할 수 있도록 하고 있습니다. 500개내에서는 자유롭게 추가 삭제가 가능합니다.
수익이 잘 나오는 글이 어떤 것인지를 파악할 수 있는 것은 기본이고. 이를 기반으로 관련 콘텐츠 포스팅을 강화한다든지, 연관글 링크를 보강해 더 많은 글을 노출시켜 광고 기회를 증가 시킬 수 있습니다.
아를 통해서 글쓴이가 발견한 사항은
포스트 타입이 광고 효과를 좌지우지 할 수 있다. 예를 들어 이미지 슬라이들 이용한 이미지 포스팅의 경우 무려 172% 클릭의 증가를 가져왔다,
포스팅 주제가 무엇이냐도 매우 중요. 레이디 가가에 대한 포스팅은 5센트에 불과하지만 자동차 보험에 대한 글은 5달러 수익을 가져올 정도로 차이가 난다.
애드센스 효과를 볼 수 있는 테마를 선정
이는 SEO가 질되는 사이트는 더 낳은 구글 랭킹을 획득해 더 많은 방문자를 유도해 애드센스 수익 증가로 이어진다는 상식에 따른 것입니다.
글쓴이는 100여개 사이트에서 29개의 테마를 관리하는데 여기에 사용하는 테마에 따라 수익이 많이 달라졌으며 초대 34% 차이가 났다고 주장합니다.
지금까지 무수히 많은 비판가들이 테슬라의 미래는 없다고 비판했습니다.
그런데 최근 일련의 흐름은 무수히 많은 비판가들이 부르짖었던 상황과는 조금 다른 방향으로 흘러가고 있습니다.
한때 테슬라의 소식은 암울하고 비판적인 내용뿐이던 시기가 있었습니다. 얼마전까지도 그랬습니다.
최근에는 긍정적인 내용이 조금씩 보이기 시작했습니다.
이러한 흐름을 만들어 낸 것들은 무엇일까요?
3.1. 2분기 내 생산 안정화 – 규모의 경제가 가능케 하다.
테슬라의 위기를 촉발한 가장 큰 이유는 바로 모델 3 생산 문제였습니다.
45만대 이상이라고 알려진 모델 3 예약 물량을 맞추기 위해서는 안정적인 생산 체계를 갖추어야 합니다. 이에 1차 목표로 제시된게 주당 5,000대 생산이었습니다.
그런데 이러한 테슬라 모델 3 의 양산 목표가 지속적으로 지연되어 왔습니다. 테슬라 내부적으로 인력 이탈과 갈등이 심해지고 있다는 부정적인 소식이 연이어 흘러 나왔죠.
업계에서는 테슬라가 소량 생산에서 대량 생산 체제로 이행하는 과정에서 생산 지옥(Production Hell)에 빠졌다고 진단했으며, 테슬라는 여기서 빠지나오기 어렵다고 진단했습니다.
그러면서 오랬동안 축적되어 온 기존 자동차 업계의 생산 능력을 테슬라가 쉽게 따라 잡을 수 없으며, 테슬라의 이상이 생산이라는 현실앞에서 무너지고 있다고 평가했습니다.
그러나 최근 모델 3 생산이 안정화되고 목표 달성 가능성이 높아지고 있다는 이야기가 계속 흘러나오고 있습니다.
이러한 상황은 지난 주(2018년 6월 5일) 테슬라 주주총회에서 엘론 머스크가 모델 3 생산은 본 궤도대로 진행되고 있으며, 2018년 6월 말에는 주간 5,000대 달성이 가능하다고 보고하면서 절정에 다달았습니다.
Tesla dual motor means there is a motor in front & a motor in rear. One is optimized for power & one for range. Car drives fine even if a motor breaks down. Helps ensure you make it to your destination & don’t get stuck on side of road in potentially unsafe conditions.
분기별 테슬라 구매 의향 의도를 모니터한 조사 자료를 보면, 시간이 갈수록 오히려 테슬라 구입 의향 언급이 환상적으로 증가하고 있다고 합니다.
3.3. 배터리 코스트 혁신
전기자동차에서 배터리가 차지하는 비중은 매우 높습니다. 자료에 따라 다르긴 하지만 51%까지 차지한다는 보고도 있더군요.
테슬라 배터리 경쟁력에 대해서 많은 비판을 받습니다 장기적으로 경쟁력이 있느냐에 대해서 회의적인 의견이 많기는 합니다.
장기적인 전망을 떠나서 현재 적용괴는 배터리 가격에서 테슬라는 업계 평균보다는 우위를 지켜왔습니다.
아래는 2010년부터 업계 평균 배터리 가격이 어떻게 떨어져 왔는지, 테슬라 배터리 가격이 어떻게 떨어져 왔는지를 그래프로 그려본 것 입니다.
물론 테슬라도 경쟁 업체도 배터리 가격을 공개하지 않고 있기 때문에 아래 그래프는 언론 및 관련 전문가즐이 추정한 값과 일부 메이커의 주장이 섞여 있습니다.
▽ 전기자동차 배터리 팩 가격 업계 평균과 테슬라 비교 추이,
업계 및 언론 자료를 기반으로 그래프 by Happist
테슬라는 모델 3를 적용하면서 새로운 배터리를 개발했습니다.
그동안 테슬라는 파나소닉이 만든 18650 배터리 셀을 상요해 왔습니다. 그러나 테슬라는 모델 3 생산을 위해 파나소닉과 협업해 기존보다 더 큰 2170 배터리 포맷을 적용해 높은 에너지 밀도와 낮은 생산 비용을 실현한 배터리 입니다.
2016년 초 테슬라는 배터리 팩 가격을 190달러 이하로 주장했죠. 그리고 모델 3에 들어가는 배터리는 35%이상 생산 코스트를 줄였다고 밝혔습니다.
이러한 주장에 따라 electrek은 모델 3용 배터리 가격을 124달러까지 추정했습니다.
테슬라 모델 3 생산 문제중의 하나는 바로 새로운 배터리 공급이 원활하지 않았기 때문이기도 했습니다.
초기 모델 3 배터리 팩 코스트는 생산 안정화가 되지 않았기 때문에 비용이 높았을 것으로 추정됩니다.
2018년 5월 이전까지 기가팩토리에서 배터리 팩 1개 생산하는데 무려 7시간이 걸렸습니다.
5월 엘론 머스크는 배터리 생산 병목 현상을 해결하고자 네바다주에 있는 기가팩토리를 방문했습니다. 여기서 생산 공정 효율성을 개선해 배터리 팩 생산 시간을 7시간에서 70분으로 단축 시켰습니다.
이렇게 기가팩토리에서 배터리 생산이 안정화 되어 원래 계획대로 35% 코스트 절감이 이루어 진다면 테슬라의 수익은 확실히 개선될 것입니다.
그리고 테슬라 기가팩토리에서 생산이 증가한다면 일본으로부터 배터리 수입이 줄어들기 때문에 마찬가지로 수익 개선됩니다.
또한 테슬라는 배터리 팩 코스트를 2년 내에 100달러 이하로 떨어뜨리겠다는 계획을 추진하고 있습니다.
이러한 원가 절감이 이루어 질수록 테슬라의 수익은 개선됩니다.
3.4. 비용 통제 – 2018년 연간 30억 달러이하로 축소
이익을 내는 가장 확실한 방법 중의 하나는 비용을 쓰지 않는 것입니다.
비용을 쓰지 않고 매출을 발생시킬 수 있다면 총 마진의 대부분이 이익으로 만들 수 있겠죠.
그러나 현실적으로 비용을 한푼도 쓰지 않을 수 있는 방법은 없겠죠. 그래서 비용 지출을 최소화하겠다는 방침을 세운 것이죠.
테슬라는 2018년 자본 지출을 2017년 34억 달러보다 줄어든 30억 달리 이하로 운영하겠다고 밝혔습니다.
회사 운용에 필수 불가결한 항목을 빼고는 줄이겠다는 것인데요. 심지어는 2019년 출시 목표인 모델 Y에 대한 투자도 당분간 보류하겠다는 이야기까지 하고 있습니다.
사실 1분기 동안 테슬라는 무려 11억 달러에 달하는 현금을 사용했습니다. 그러다보니 테슬라 가지고 있는 돈이 확 줄어 들었습니다.
2018년 1분기 실적 발표에서 테슬라 현금 보유는 27억 달러에 불과하다고 밝혔습니다
▽ 테슬라 분기별 현금 보유량 추이,
자료원 – FT
3.5. 인력 감축을 통한 수익성 확보
그동안 테슬라 위기를 가져온 가장 큰 이유는 모델 3 생산을 비롯한 테슬라의 목표에 부합하는 생산 능력의 미확보였습니다.
또 다른 문제는 기가팩토리와 같은 자회사들의 비효율성입니다. 특히 솔라시티는 테슬라의 전기자동차 생산능력 문제보다도 더 근본적인 위기 원인으로 지목받을 만큼 심각하다는 평가를 받고 있습니다.
엘론 머스크는 빠르게 조직을 키우다보니 조직의 비효율이 증가했다고 평가하고, 경영의 효율성을 제고하고자 테슬라 임직원의 9% 해고하기 결정했다고 밝혔습니다.
언론에서는 현재 테슬라 임직원은 4만 6천명정도로 추정하고 있습니다. 이에 따르면 최소 4천명이상이 정리 해고되는 셈입니다.
엘론 머스크는 트위터에 회사 메일을 공유하며, 지난 몇년동안 테슬라는 빠르게 성장, 진화해 왔으며, 그 과정에서 일부 역활과 일들이 중복되었다고 밝히며 이러한 것들은 과거에는 용인이되었으나 이제는 정리할 필요가 있다고 밝혔습니다.
테슬라는 경영 구조를 보다 수평적으로 변경하면서 커뮤니케이션을 원활하게 만들고, 관료주의를 제거하며, 보다 빨리 앞으로 달려갈 수 있도록 만들고 있다고 밝혔습니다.
Difficult, but necessary Tesla reorg underway. My email to the company has already leaked to media. Here it is unfiltered: pic.twitter.com/4LToWoxScx
아래는 연도별 테슬라 임직원 수 추이 그래프입니다.
테슬라 임직원이 폭발적으로 증가한 시점은 2012년, 2013년, 2014년 그리고 2017년인데요. 각기 전년 비 109%, 98%, 73% 그리고 11% 증가했습니다.
특히 2017년에는 최근 10년 내 가장 폭발적으로 증가해 111% 증가류을 기록했습니다. 아마 이렇게 폭발적으로 증가하면서 발생한 비효율을 제거할 필요성이 제기되지 않았을까요?
이러한 인력 구조조정은 테슬라 역사상 가장 큰 규모로 이루어지는데요. 엘론 머스크는 고통스럽지만 꼭 필요한 조치라고 밝혔습니다.
그런데 이 인력 구조 조정이 생각외로 지지가 높습니다.
테슬라 임직원들에게도, 그리고 심지어는 이번 조치로 테슬라를 떠나는 직원들에게도 필요한 조치라는 지적이 나오고 있습니다.
구조조정 대상이 된 테슬라 직원들의 트윗이 언론에 공개되었는데요. 몇개를 뽑아 봤습니다.
Thanks for the opportunity, Elon! Eye on the mission. Will always be proud to say I worked for Tesla.
No hard feelings about being let go @elonmusk@Tesla Still got my Model X, and still a believer. Not giving up though. Was a honor being 6 Degrees of Elon Musk, (Kevin Bacon) and I will be again, or closer. #BlessingInDisguise?
Everyone is commenting on how transparent you were. You know who didn’t know? My husband who was at work for Tesla today. I saw it on Twitter while he was on a conference call with tons of people who were given no new opportunity 2 hours before the end of their day.
이는 엘론 머스크는 테슬라 미래에 대해 확신하고 있으며, 테슬라 문제 해결 자신이 있으며, 테슬라에 진심으로 임하고 있다는 강렬한 신호를 보내고 있는 것인데요.
또한 테슬라의 미래를 부정하고 주가하락에 베팅하고 있는 월가와 정면 승부를 던진 것으로 보입니다.
2008년 테슬라 초기, 미국 금융 위기로 테슬라가 야심차게 내놓은 로드스타 판매가 지지부진해 파산 위기에 몰렸을 때도 머스크는 테슬라 투자 설명회를 열어 4천만 달러 투자를 유치했고, 계속되는 위기설에 로드스터 1200대 전체 예약금을 보증을 서겠다는 강수를 두면서 위기를 벗어 났죠.
이처럼 위기시마다 정면 승부를 통한 돌파 기질이 이번에도 그대로 발휘된 것입니다.
개인적으로 이번 엘론 머스크의 신규 주식 매입으로 상당히 우호적인 흐름이 형성될 것이고 으로 판단합니다.
이는 주가 상승으로 나타나고 있습니다. 머스크의 주가 매입소식에 테슬라 주가는 강세를 보여 3.75% 또 오르면서 올 최고치를 기록했습니다.
모바일 인터넷이 다른 매체 사용 시간을 빼앗는 것으로 나타났으며, 신문과 잡지 구독 시간이 가장 심하게 줄어들었습니다.
2011년과 비교해 2018년에 신문은 구독 시간이 45% 감소할 것이며, 잡지는 무려 56% 감소할 것으로 예측되었습니다.
TV는 2011년에 비해서 2018년 TV 시청 시간은 3% 감소에 그칠 것으로 예상되어 생각외로 크게 감소하지는 않을 것으로 보았습니다.
반면 라디오는 8% 감소해 상대적으로 더 크게 감소할 것으로 보입니다.
아래는 Zenith 보고서를 Quartz에서 차트로 보도한 그래프를 인용했습니다. 데이타 자체를 오픈할 수 없기 때문에 그래프에서 보여주는 트렌드를 보는 게 좋겠습니다.
모바일 사용 시간 비중은 2018년 24%에 이를 것
아울러 이 보고서는 스마트폰의 보급에 힘입어 모바일 인터넷 사용시간은 2018년 미디어 소비의 24%를 차지할 것으로 에상했습니다. 모바일 인터넷 사용 시간 비중은 2011년 단 5%에서 2018년 24%까지 증가했고 2010년에는 28%까지 늘어나 가장 빠르게 성장을 보이는 디바이스가 될 것으로 전망했습니다.
2019년 인터넷 사용 시간이 TV 시청 시간을 앞설 것
앞서 TV 시청 시간은 생각외로 덜 감소한다고 말씀드렸습니다 따라 TV 시청은 미디어 이용에서 가장 많은 비중을 차짛 왔는데요.
Zenith 예상에 따르면 2019년에는 인터넷 가용 시간이 TV 시청 시간을 앞지를 것으로 전망되었습니다.
어쩌면 이런 리포트는 굉장히 진부한 자료로 받아드릴 수 있습니다. 인터넷 사용 시간 특히 모바일 인터넷 사용 시간의 증가는 거의 상식 수준의 이야기이기 때문이죠.
실제로 글로벌 인터넷 이용시간과 TV 시청시간 그래프를 공유한 recode 트윗에 대해 사람들은 이는 이미 5년전에 일어난 트렌드가 아니냐고 반문하고 있습니다.
테슬라 CEO 엘론 머스크(Elon Musk)가 경영의 효율성을 제고하고자 테슬라 임직원의 9% 해고하기 결정했다고 밝혔습니다.
언론에서는 현재 테슬라 임직원은 4만 6천명정도로 추정하고 있습니다. 이에 따르면 최소 4천명이상이 정리 해고되는 셈입니다.
엘론 머스크는 트위터에 회사 메일을 공유하며, 지난 몇년동안 테슬라는 빠르게 성장, 진화해 왔으며, 그 과정에서 일부 역활과 일들이 중복되었다고 밝히며 이러한 것들은 과거에는 용인이되었으나 이제는 정리할 필요가 있다고 밝혔습니다.
테슬라는 경영 구조를 보다 수평적으로 변경하면서 커뮤니케이션을 원활하게 만들고, 관료주의를 제거하며, 보다 빨리 앞으로 달려갈 수 있도록 만들고 있다고 밝혔습니다.
엔론 머스크가 밝힌 테슬라의 구조조정에는 테슬라 모델 3 생산에 지장을 주는 생산 부분은 빠져 있다고 합니다.
Difficult, but necessary Tesla reorg underway. My email to the company has already leaked to media. Here it is unfiltered: pic.twitter.com/4LToWoxScx
그런데 이러한 테슬라의 구조조정 소식에 테슬라의 주가는 크게 올랐습니다.
테슬라에서 정리해고를 하겠다는 소식이 알려지자 거의 9%가까이 주가가 올랐죠.
비록 미국 금리 인상에 따라 나스닥 주식 전체가 조정을 받으면서 테슬라 주가는 3%대 상승으로 마감했습니다.
3. 정리해고 발표에도 테슬라 주가가 오르는 이유
일반적으로 정리해고 소식은 회사가 매우 어려운 상황에 처해 있다는 것을 의미하기 때문에 부정적인 요인으로 작용할 가능성이 높습니다.
그런데 주식 시장에서 많은 경우 정리해고는 손익 개선의 가능성을 높여준다는 점에서 주가 상승 요인이 되기도 합니다.
테슬라에 근무하는 노동자들에게는 매우 유감스러운 소식이지만 테슬라가 경영 효율화를 통해서 이익 구조를 개선할 수 있다는 전망에 주식 시장은 긍정적으로 반응한 것으로 보입니다.
그동안 테슬라는 한번도 제대로 이익을 낸적이 없었으며, 최근에는 테슬라의 운전 자금조차 곧 고갈될 것이기 때문에 조만간 월가에 추가 투자자금을 유치해야한다는 월가 애널리스트들의 주장이 끊이지 않았습니다.
그러나 엔론 머스크는 자력으로 이 위기를 극복할 수 있다면 추가 투자 유치 가능성을 부정했었죠.
그러면 어떻게 테슬라는 이러한 유동성 위기에서 벗어날 수 있을까요?
이는 테슬라가 최근 보여주고 있는 경영 환경 개선 노력에서 찾을 수 있을 것 같습니다.
3.1. 테슬라 생산지옥(Production Hell)에서 벗어날 조짐을 보이다.
테슬라의 위기를 촉발한 가장 큰 이유는 바로 모델 3 생산이 목표한대로 진행되지 못한데서 시작되었습니다.
45만대 이상의 모델 3 예약 물량을 맞추기 위해서는 안정적인 생산 체계를 갖추어야 합니다. 그리고 테슬라는 2020년까지 연간 50만대 양산 체계를 갖추겠다고 발표했었죠.
그런데 이러한 테슬라의 양산 목표가 지속적으로 지연되어 왔습니다. 테슬라 내부적으로 인력 이탈과 갈등이 심해지고 있다는 부정적인 소식이 연이어 흘러 나왔습니다.
업계에서는 테슬라가 소량 생산에서 대량 생산 체제로 이행하는 과정에서 생산 지옥(Production Hell)에 빠졌다고 진단했으며, 테슬라는 여기서 빠지나오기 어렵다고 진단했습니다.
그러면서 오랬동안 축적되어 온 기존 자동차 업계의 생산 능력을 테슬라가 쉽게 따라 잡을 수 없으며, 테슬라의 이상이 생산이라는 현실앞에서 무너지고 있다고 평가했습니다.
그러나 최근 모델 3 생산이 안정화되고 목표 달성 가능성이 높아지고 있다는 이야기가 계속 흘러나오고 있습니다.
이러한 상황은 지난 주(2018년 6월 5일) 테슬라 주주총회에서 엔론 머스크가 모델 3 생산은 본 궤도대로 진행되고 있으며, 2018년 6월 말정도에 목표로하는 모델 3 주간 생산량 5,000대 달성이 가능하다고 보고하면서 절정에 다달았습니다.
를 보면 일련의 계속되는 테슬라의 위가에도 불구하고 소비자들은 여전히 전기자동차를 구입할 의향을 낮추고 있지 않다는 것입니다.
분기별 테슬라 구매 의향 의도를 모니터한 조사 자료를 보면, 시간이 갈수록 오히려 테슬라 구입 의향 언급이 환상적으로 증가하고 있다고 합니다.
3.3. 인력 감축을 통한 수익성 확보
이 부분은 앞서 자세히 설명했기 때문에 간단히 정리하고 넘어가겠습니다.
그동안 테슬라 위기를 가져온 가장 큰 이유는 모델 3 생산을 비롯한 테슬라의 목표에 부합하는 생산 능력의 미확보였습니다.
또 다른 문제는 기가팩토리와 같은 자회사들의 비효율성입니다. 특히 솔라시티는 테슬라의 전기자동차 생산능력 문제보다도 더 근본적인 위기 원인으로 지목받을 만큼 심각하다는 평가를 받고 있습니다.
엔론 머스크는 빠르게 조직을 키우다보니 조직의 비효율이 증가했다고 평가하고 있습니다.
아래는 연도별 테슬라 임직원 수 추이 그래프입니다.
테슬라 임직원이 폭발적으로 증가한 시점은 2012년, 2013년, 2014년 그리고 2017년인데요. 각기 전년 비 109%, 98%, 73% 그리고 11% 증가했습니다.
특히 2017년에는 최슨 10년내 가장 폭발적으로 111% 증가한 한해가 되었습니다. 아마 이렇게 폭발적으로 증가하면서 발생한 비효율을 제거할 필요성이 제기되지 않았을까요?
4. 마치며
따라 테슬라 전체의 난맥상을 이번 인력 조정 과정을 거치면서 최적화하고, 테슬라를 만년 적자회사에서 벗어나 향후 이익을 낼 수 있는 모멘텀을 만들 수 있다는 신호를 시장에 준것이기 때문에 주가는 상승하는 것으로 보입니다.
최근 2년간 테슬라의 주가를 살펴보면 2017년 하반기부터 모델 3 생산 문제가 대두되면서 하락이 가속화되었지만 최근 일련의 수습 과정을 거치면서 조금씩 회복하는 모습을 보여주고 있습니다.
최근의 테슬라 모습을 보면 굉장히 다이나믹합니다. 테슬라 성공 가능성이 낮아질듯 하면서도 다시 다시 일어나는 모습을 보면 역사의 한장을 보는 듯 합니다.