그런데 한달도 안되어 테슬라 주가가 750$가 되고 시가총액이 1,406억 달러에 이르면 거짓말 조금보태면 배로 뛰었습니다. 그러기에 쉽게 예단하면 안되나 봅니다.
누구 그렀죠. 테슬라와 일론 머스크를 믿으면 믿고 홀딩하고 아니면 지금 쯤 이익실현하고 쉬어라고…
회사 또는 브랜드에 대한 믿음을 갖지 못한다면 출렁거리는 주가 흐름속에서 대부분 주주들은 공포를 느끼고 주식을 던지기 마련입니다. 반대로 브래드에 대한 믿음이 굳건하다면 지금 폭락해도 곧 회복할 수 있다는, 그리고 이 브랜드의 미래는 창창하다는 것을 믿을 수 있다면 오래 갈 것입니다.
그런 의미에서 테슬라와 일론 머스크에 대한 신뢰가 굳건한 테슬라 주주에게는 오래동안 테슬라 주식을 보유할 충분한 이유를 주었습니다. 그리고 그러한 믿음을 점차 점차 증명해 오기도 했구요.
고로 테슬라 브랜드, 일론 머스크에 대한 믿음이 테슬라 주가 폭등의 직접적인 원인은 아니지만 기반이 되었을 것입니다.
테슬라 로드맵의 가시화
그리고 그동안 일론 머스크가 목놓아 부르짖던 주요 프로젝트들이 점점 가시권에 들어오면서 일론 머스크의 호언 장담들이 조금은 늦었지만 점점 가시화 되면서 태슬라 가치를 증명하고 있기 때문이기도 합니다.
2020년에는 모델 Y가 본격 생산을 시작하고, 상하이 공장과 독일 공장이 본격적으로 가동학 시작하면 테슬라 공급 능력은 시장의 기대를 훨씬 더 뛰어 넘을 것으로 보입니다.
테슬라 생산 공장 및 생산 모델 현황 및 계획,
전기자동차 대세화와 테슬라 적수가 없다는 것을 증명한 슈퍼볼 광고전
업계 사람이나 비지니스를 하는 사람들은 그간 충분한 정보를 기반으로 전기차 대세화를 당연하게 생각했습니다.
그러나 일반인들에게는 아직 그러한 인식이 약합니다. 그래 언제가는 그리될 수 있겠지만 지금안 아니지 않을까? 이런 생각을 가진 분들이 대부분이 아닐까요?
일반사람들에게 전기차는 조금 먼 미래의 일이겠죠. CES 전시에 나오는 컨셉 제품들처럼요.
그러나 이번 2020년 슈퍼볼 광고는 전기차가 어느덧 일상에서도 대세가 되고 있구나를 느끼게 해준다고 생각입니다.
이번 슈퍼볼 시즌에 광고를 집행한 회사들을 보면 최근의 스트리밍 전쟁을 반영하듯 동영상 스트리밍 회사들이 대거 슈퍼볼 광고전에 뛰어들었고, 전통적으로 슈퍼볼을 중시했던 자동차 회사들도 사력을 다해 광고전에 나섰습니다.
자동차 회사들의 이번 슈퍼볼 광고 컨셉은 자동 주차와같은 인공지능 기술을 활용해 새로운 기술, 전기자통차 신모델 소개등이 주를 이루었습니다. 물론 이미지는 특정 기능을 소구하는 광고도 있었지만..
현대자동차 Auto Parking 소개하는 “Smaht Pahk“
폭스바겐 계열의 포르쉐의 최초 전기자동차 Taycan을 모델로 “The Chase”
아디 전기자동차 e-tron 스포츠백을 모델로 “Let It Go”
이렇게 많은 자동차 회사들이 적극적으로 전기자동차 시장에 뛰어들고 이러한 추세가 슈퍼볼 광고전에서도 극명하게 나타났는데요.
그럼에도 불구하고 새롭게 등장하는 회사들이 테슬라의 전기차, 테슬라의 오토 파일엇을 대체할 만한 적수가 없다는 것이 백일하에 들어난 계기도 되었습니다.
폭스바겐이나 아우디가 전기자동차를 들고 나왔지만 테슬라 대신 이들 회사 전기차를 사야할 이유를 잘 설명하지 못하면서 테슬라 독주를 못박아버리는 그런 상황이 된 것이죠.
이러한 전기차 대세의 시대가 왔고, 테슬라를 대적할 회사가 없다는 인식이 어제처럼 테슬라 주식 폭등으로 이어지고 있다는 생각을 했습니다.
주가 변동은 여러가지 복합적인 것들이 모여 생기는 것이므로 이러한 단편적인 것이 전체를 좌지우지하지는 않을 것입니다. 그렇지만 주가에서 심리는 매우 중요한 요소이므로 대세 시장인 전기차 시장에서 테슬라는 대세라는 인식은 매우 중요한 요인이었다는 생각입니다.
2020 슈퍼볼에서 자동차 광고들
여기 2020년 슈퍼볼에서 집행된 자동차 광고들을 모아 보았습니다.
여기 주제에 맞추어 전기차, 인공지능 기능 그리고 감성적 또는 기능 소구 광고들 순으로 나열해 봅니다.
다른 자동차 광고들은 전기자동차가 대세임을 보여주듯 전기차를 광고 모델로 내세웟습니다.
폭스바겐 계열의 포르쉐Porsche)와 아우디(Audi ) 등이 광고전에 뛰어들었지만 그들의 브랜드 정체성을 전기자동차에서 어떻게 정의하고 시장을 장악하고 있는 테슬라와 어떻게 차별할지를 보여주지는 못한듯..
돈자랑하는 광고라는 느낌이 팍팍듭니다.
포르쉐 “The Chase”
폭스바겐이 슈퍼볼에 광고를 집행한 것은 1997년이 후 처음이라고 합니다.
이번에 폭스바겐은 그들의 프리미엄 브랜드 포르쉐의 전기자동차 Taycan를 모델로 전시장의 자동차를 홈친 법인을 추격하는 내용으로, 포르쉐의 완전한 전기자동차의 우수한 성능을 이야기 하는 듯..
그러나 포르쉐 전기자동차를 사야할 어떤 힌트를 주진 못하는 듯
아우디 “Let It Go”
겨울왕국의 주제가 “let It Go”를 사운드 트랙으로 전기자동차 e-tron 스포츠백을 모델로 광고
https://youtu.be/WvEAklsAAts
현대자동차 “Smaht Pahk“
현대자동차의 새로운 기능인 Smart Parking 기능을 유머러스하게 풀어낸 듯
이 광고에 대한 반능은 전반적으로 좋은 듯 합니다. CNN이 평가한 2020 슈퍼볼 광고 Winner & Loser에서 이 광고는 Winner로 선정했네요.
https://youtu.be/85iRQdjCzj0
제네시스 “Going Away Party”나 현대자동차
이 제네스 광고에 대해서는 혹평도 많지만 전반적으로 미국 내에서 반응은 나쁘지 않은 듯 합니다.
CNN은 2020 슈퍼볼 광고 Winner & Loser 평가에서 이 광고를 Winner로 선정하는 등 이 광고를 긍정적으로 평가한 다수의 언론 보도들이 많았습니다.
현대자동차 “Dialect Coach (feat. Rachel Dratch & David Ortiz)”
https://youtu.be/Af5PB7NjxcU
기아자동차 “Tough Never Quits”
https://youtu.be/YyMev6_XZ9s
Jeep – :”Groundhog Day (feat. Bill Murray)”
1993년 크게 히트했던 영화 “Groundhog Day”를 2020년 슈퍼볼 광고를 위해 주인공 Bill Murray가 직접 출연헤 리메이크한 광고로 큰 관심을 받았네요.
CNN은 2020 슈퍼볼 광고 Winner & Loser 평가에서 이 광고를 Winner로 선정
https://youtu.be/AnhzGUcENWo
도요타 “Highlander”
일종의 생물학적 재앙, 황량한 서부 그리고 외계인 침략으로 위기한 지구에 여배우 코비 스멀더스(Cobie Smulders)가 위험에 처한 사람들을 구하는 슈퍼 엄마로 등장해 광고를 이끕니다.
도요타가 궁극적으로 보여주고 싶었던 것은 코비 스멀더스(Cobie Smulders)가 위험에 처한 수많은 사람들을 구조해 태우고도 남을 만큼 공간이 넉넉하다는 것이라고 하네요.
이 광고는 CNN이 평가한 2020 슈퍼볼 광고 Winner & Loser에서 이 광고는 Winner로 선정되는 등 긍정적으로 평가받았습니다.
2년안에 페덱스(FedEx)는 다른 회사에 인수되거나 최소 40%이상 가치가 하락할 것이다. 아마 페덱스(FedEx) 인수할 유력 후보로는 월마트가 꼽힌다. 또는 Shopify와의 합병 움직임도 있다.
우리는 2017년 7월 “아마존 제프 베조스가 overnight delivery(다음 날 배송 또는 당일 배송)에서 엄청난 비지니스 기회를 추구한다면 1,500억 달러 시가 총액을 갖는 DHL, 페덱스 그리고 UPS의 시장 가치는 아마존으로 이동할 것”이라고 예측한 바 있다.
이러한 예측은 이미 일어났다. 2018년 2월 아마존이 배송 서비스를 시작한 이래 S&P 지수는 24% 상승했음에도 페덱스의 시가총액은 무려 39% 감소했다. 반면 아마존 시가총액은 이 기간동안 33% 증가햇다.
2014년 이래로 미국 이커머스 시장은 84% 성장했고, 그 과정에서 배송 업계는 엄청난 비지니스 기회를 잡을 수 있었다. 그러나 페덱스, UPS 그리고 미국 정부(우체국)의 부는 점차 아마존으로 흘러 들어갔다.
아마존은 경쟁이 거의없는 고마진 사업(예를 들어 AWS, AMG)의 성과를 기반으로 경쟁이 치열하고 마진이 박한 산업으로 뛰어들고 있다.
어떻게 이런 일이 있을 수 있을까 – Featurizing
네크워크 효과, 저렴하게 동원할 수 있는 자본, 혁신에 대한 우상 숭배 그리고 바보같은 정부(DOJ,the Antitrust Division of Department of Justice/FTC, the Federal Trade Commission)덕분에 특정 기업이 매우 수익성이 높은 스마트폰, 디지탈 마케팅, 로열티 프로그램, 클라우드 등에서 엄청난 혁신 가치를 창출한 다음 이를 기반으로 다른 산업에서 로스 리더(Loass leader, 이 자체가 엄청난 기능이다)로 차별화하고 지배할 수 있는 독점 시대를 열었다.
혁신 가치 역사상 가장 빠르게 성장했던 소프트웨어 회사인 넷스케이프에 대항해 마이크로소프트가 인터넷 익스플러러를 오피스 프로그앰에 끼워팔기 시작하면서 이러한 것(로스 리더 같은 것 – 역자 주)은 일종의 기능으로 작용하기 시작했다.
비쥬얼 커머스 SaaS 회사인 Olapic이 2016년 매갈될 때 나는 이 회사의 이사로 근무 했다. 그 때 이 회사를 매각해야할지 말아야할지 논란이 많았다.
나는 그 회사 전망을 낙관적으로 보고 있었던 창업자에게 매각을 권유했다.
100만 달러와 1000만 달러사이에는 재산상 크기의 의미만 있지만, 0(매각하지 않고 가지고 있다면 실제 손에 쥐는 것은 아무 것도 없는 것이므로)과 100만 달러(매각해서 손에 쥐는 돈) 사이에는 엄청난 차이가 있다. 그러므로 매각해야한다.
모든 기업가는 기회만 있으면 가족을 위해 경제적 안전판을 될 수 있도록 충분한 돈을 저축해야 한다.
어떤 소프트웨어 회사라도 다음 날 가치가 0이 될 수 있다.
엄청난 재원을 가진 마이크로소프트나 어도브나 오라클과 같은 회사들은 수백명의 소프트웨어 엔지니어를 투입해 우리 제품을 벤치마킹해 새로운 소프트웨어를 만들어 무료 또는 거의 무료에 준하는 패키지로 묶어서 판매할 수 있다. 그러면 우리 소프트웨어 가치는 제로에 수렴해 갈 것이다.
아무튼 아마존은 Prime, AWS 그리고 AMG(Amazon Media Group, 아마존 광고 서비스)와 같은 엄청난 혁신 가치를 가지고 있기 때문에 이 돈으로 페덱스로서는 도저히 따라올 수 없는 수직 계열화 투자를 통해서 시장을 잠식하고 있다.
이는 전쟁에서 기병대와 독일 전차 부대가 싸우는 꼴이다. 백색과 보라색 트럭이 페덱스 기병대라면 독일 전차부대는 아마존아라고 할 수 있다.
아마존 독점이 가능케 한 3가지 무기
이 배송 시장 경쟁에서 아마존 독점을 가능케하는 세가지 무기는 혁신(Innovation)과 불공정 제한 그리고 착취라고 할 수 있다.
혁신(Innovation)
페덱스가 1995년 수립했던 체제에서 거의 벗어나지 못했다면 아마존은 소비자 관점에서 훨씬 더 유리하고 훨씬 더 잘 운영되는 회사이다.
페덱스 CEO가 혁신을 추진하는 대신 주식을 팔아 자본을 확보할 수 있도록 법인세를 낮추도록 대통령 로비에 집중하는 동안 아마존은 엄청난 혁신을 이루어 냈다.
그래서 테슬라가 이렇게 주식 시장에서 잘 나가는 이유를 살펴보기 위해서 테슬라의 주요 실적을 살펴 보았습니다.
Executive Summary
테슬라 연도별 실적을 검초한 결과를 아래와 같이 정리할 수 있었습니다.
테슬라는 2019년 246억 달러 매출을 올려, 전년 비 15% 성장에 그쳤습니다. 예전 7~80% 성장에 비해서는 초라한 수치입니다.
2019년 테슬라는 36.8만대를 판매했고, 이는 전년 비 50% 증가한 것이고 테슬라가 목표로 삼았던 31.5만대보다 훨씬 높은 수치입니다.
그러나 테슬라 매출과 손익을 견인했던 모델 S와 X 판매는 연간 10대 수준에서 6.7만대 수준으로 크게 감소하고 Mass 시장을 겨냥했던 모델 3 판매는 30만대 수준으로 급증했습니다. 결국 평균 판매 단가를 떨어뜨려 판매가 크게 증가했으나 매출은 15% 증가에 그치는 이유가 되었습니다.
테슬라는 여전히 적자에 허덕이고 있습니다. 2019년 8.6억 달러 적자 그러나 2018년과 2019년 일부 분기에서는 오랜 적자를 깨고 흑자를 실현했고, 2019년 처음으로 연간으로 총이익(Gross Profit)은 흑자 전환하는 등 유의미한 결과들이 나오고 있습니다.
테슬라 흑자 전환 가능성은 생산량이 급증하면서 규모의 경제와 생산 능력과 생산 기술이 안정화되면서 생산비가 줄어들고 있기 때문입니다.
주식 시장에서 테슬라 주가가 급증하는 것은 2020년이후 중국 상하이 공장이 안정화되고 독일 베를린 공장과 북미 신공장이 본격 가동되면서 충분한 공급 능력이 확보되고, 기대하던 모델 Y가 본격 생산되는 등 라인업이 강화되어 시장 지배력이 더욱 강화될 것으로 보기 때문으로 추정합니다.
1. 매출 및 매출 성장율 추이
테슬라 매출을 연도별로 살펴보면 흥미로운 현상을 방견할 수 있습니다. 그것은 2019년 매출 성장율이 거의 정체 수준인데요.
이는 테슬라에 대해서 들었던 엄청난 이야기에 비해서 실망스러운 결과라는 것이 처음 받은 느낌 이었습니다.
뭐 곰곰히 생각해보면 다르게 생각할 수 있는 부문도 있겠지만 매출 자체 그리고 성장율만 본다면 고개가 갸우뚱 해집니다.
2019년 테슬라는 246억 달러 매출을 올렸고, 이는 전년 비 15% 성장에 그쳤습니다.
2019년 매출 성장율 15% 성장이 어떻냐고 반론할 수 도 있습니다. 그러나 최근 3년간 7~80%대 성장을 구가해온 테슬라로서는 쉽게 이해가지 않는 것도 사실이죠. 아마도 다른 데이타를 더 살펴바야 할듯 합니다.
테슬라 연도별 매출액 추이( ~ 2021년), Tesla yearly Revenue,, Graph by Happist
2. 테슬라 전기차 판매 추이
그러면 테슬라의 전기차 판매는 어떻까요? 테슬라 전기차 판매야말로 테슬라 비지니스 모델의 전부라고도 할 수 있으니 매우 중요한 지표임에 틀림이 없습니다.
다행이 테슬라 전지차 판매는 시장의 기대를 충족하고 있고, 테슬라가 목표했던 목표를 충분히 달성하고 있습니다.
2019년 테슬라는 36.8만대를 판매(Delivery 기준)했습니다. 이는 전년 비 50% 증가한 것이고 테슬라가 목표로 삼았던 31.5만대보다 훨씬 높은 수치입니다.
테슬라 연도별 전기차 판매( 딜리버리 기준) 추이, Tesla yearly Deliveries, Graph by Happist
비록 증가율 측면에서 모델 3가 본격적으로 생산되기 시작한 2018년의 138% 성장보다는 둔화되었지만 여전히 높은 수준입니다.
더우기 2020년에는 모델 Y가 본격 생산을 시작하고, 상하이 공장과 독일 공장이 본격적으로 가동학 시작하면 테슬라 공급 능력은 시장의 기대를 훨씬 더 뛰어 넘을 것으로 보입니다.
테슬라 생산 공장 및 생산 모델 현황 및 계획, table by Tesla
3. 테슬라 모델별 판매 추이
조금 더 자세하게 살펴보기 위해 테슬라 모델 판매 추이를 살펴보았습니다.
그동안 테슬라 손익을 지탱했고, 테슬라 브랜드를 견인해왔던 모델 S와 X 판매는 연간 10대 수준에서 6.7만대 수준으로 크게 감소하고 Mass 시장을 겨냥했던 모델 3 판매는 30만대 수준으로 급증했습니다.
이는 대당 단가가 크게 떨어지는 역효과를 냈고, 그 덕분에 테슬라 전기차 판매는 50% 증가했지만 매출은 15% 증가 그치는 현상으로 나타났다는 생각입니다.
테슬라 연도별 프리미엄 모델(모델 S+X)과 모델 3와 모델 Y 딜리버리 추이, Tesla yearly Deliveries, Graph by Happist
4.테슬라 손익 추이
테슬라는 회사 설립 후 한번도 이익을 내지 못한 것으로도 유명합니다. 드렇기 때문이 테슬라 주가는 비이성적으로 높다는 비판이 많았죠.
연도별로 테슬라 손익을 살펴보면 이런 지적은 타당합니다. 그러나 2018년과 2019년에 걸쳐 유의미한 결과가 나타나기 시작했다는 점이 흥미롭습니다.
아래는 분기별 순이익 추이를 그려본 것인데요. 2018년과 2019년 일부 분기에서는 오랜 적자를 깨고 흑자를 실현하고 있습니다.
테슬라 연도별 순이익 추이 ~ 2021년), Tesla Yearly Net Income, Grapg by Happist
그런 관점에서 테슬라의 연도별 총이익을 살펴보면 2019년 처음으로 0.65억 달러 흑자를 기록했다는 것을 알 수 있습니다. 크지는 않지만 연간 기준으로 총이익이지만 적자를 면했다는 점은 긍정적으로 볼 수 있죠.
테슬라 연도별 매출총이익 및 매출초이익률 추이( ~ 2021년), Tesla yearly Gross Profit & Gross profit Margin, Grapg by Happist
이에 따라 연간 순이익도 적자가 줄고 순이익율도 -4%로 개선(?)되었습니다.
테슬라 연도별 순이익 및 순이익률 추이( ~ 2021년), Tesla yearly Net Income & Net Margin, Graph by Happist
5. 테슬라 영업이익률 추이
테슬라 연도별 영업이익 및 영업이익률 추이( ~ 2021년), Tesla yearly Operating Income & Operating Margin, Graph by Happist
아마존 전체 매출 성장율이 둔화되었습니다. (4분기 아마존 매출 874억 달러로 전년 비 21% 성장, 33억 달러의 순익을 달성래 순이익율 3.7%로 양호한 손익 추세를 이어 갔음)
아마존이 그동안 심혈을 기울였던 오프라인 공략이 여의치 않습니다. 오프라인 매출은 오히려 감소하고 있습니다. (4분기 매출 43.6억 달러로 전년비 -1% 감소)
반면 온라인 성장세는 여전하고 오히려 성장세가 더 커졌습니다. ( 2019년 4분기 전년 비 14.7% 성장, 전분기 20.6%보다는 다속 하락했지만 아직 상승 추세 유지)
아마존의 차세대 비지니스라고 주목 받고 있는 서브스크립션 서비스 부분은 여전히 성장하나 성장율은 둔화되었습니다. 2019년 4분기 아마존 프라임 회원수가 1.5억명이 넘었습니다. (4분기 매출 52억 달러로 전년 동기 비 32.2% 증가, 예전의 60%대 성장에는 다소 미치지 못하지만 2019년 3~40%대 꾸준히 성장하고 있음)
광고 비지니스 등은 여전히 높은 성장을 유지했지만 성장율은 다소 누그러짐 (광고 부문이 포함된 기타 부문 매출 48억 달러로 전년 비 41% 성장, 이전에 100% 넘던 시기에 비해서 둔화된 것이지만 여전히 40%대 성장율을 유지하면서 고성장 동력을 이어가고 있음)
아마존의 화수분이라 할 수 있는 아마존 웹 서비스 부문도 지속 성장하면서도 높은 영업이익율을 유지하고 있습니다. (4분기 매출 100억 달러로 전년비 34% 성장, 영업이익 26억 달러로 영업이익율 26% 기록)
아마존은 미국 내에서는 엄청난 성과를 내고 있지만, 글로벌 비지니스는 각 지역의 로컬 업체와의 경쟁하면서 좀처럼 튼 성과를 내지 못하고 있습니다. (4분기 매출 238억 달러로 전년 비 14.3% 성장에 그쳤고 여전히 6억 달러의 적자)
아마존의 전반적 트렌드는 2018년 4분기 실적 분석 시 언급했던 내용과 크게 다르지 않습니다. 그래서 이번 2019년 4분기 실적도 비슷한 논조가 유지될 것입니다.
마이크로소프트 애저와 구글의 맹렬한 추격을 받고 있는 클라우드 비지니스를 담당하고 있는 아마존 웹 서비스(AWS)는 여전히 아마존 이익을 만들어 내고 있는 화수분이지만 성장율은 다소 둔화되고 있습니다.
2019년 4분기 AWS는 처음으로 분기 100억 달러를 달성했습니다. 전년비 34% 성장을 이어갔습니다. 이는 엄청난 기록이라 할 수 있죠. 그리고 영업이익도 26억 달러를 기록해 영업이익율 26%로 양호한 기록을 남겼습니다.
다만 전년 비 성장율은 40%대에서 2019년에는 30%대로 하락하면서 경쟁이 치열해짐에 따라 둔화되는 모습을 보였습니다.
아마존 분기별 AWS 부문 매출 및 전년 비 성장율(2014년 1분기 ~ 2019년 4분기) Amazo AWS International revenue & y2y growth rate by quarter, Graph by Happist
6. 아마존 글로벌 비지니스는 여전히 고전중이다.
아마존은 여러 분야에서 좋은 성과를 내고 있지만 몇가지 부문에서는 고전을 면치 못하고 있습니다. 대표적인 것이 글로벌 부문이나 오프라인 부문이죠.
아마존은 미국 내에서는 엄청난 성과를 내고 있지만, 글로벌 비지니스는 각 지역의 로컬 업체와의 경쟁하면서 좀처럼 튼 성과를 내지 못하고 있습니다.
2019년 4분기 글로벌 부문 매출은 238억 달러로 전년 비 14.3% 성장에 그쳤고 여전히 6억 달러의 적자를 냈습니다.
아마존 북미 지역 매출 증가나 아마존 웹서비스와 같은 다른 부문의 매출 성장이 워낙 가파르기 때문에 글로벌 부문의 비중도 한때 40%에 육박했다가 이제는 27% 수중으로 하락했습니다.
아마존 분기별 글로벌 부문 매출 및 전년 비 성장율(2014년 1분기 ~ 2019년 4분기) Amazo International revenue & y2y growth rate by quarter, Graph by Happist
아마존의 북미 지역과 글로벌 비지니스의 성과는 미국에서 고전하고 글로벌에서 날고 있는 넷플릭스와는 완전 반대의 모습을 보여주고 있습니다.
7. 아마존 매출 성장의 둔화
2019년들어 아마존 전체 매출 성장은 확실히 둔화되었습니다.
아마존 매출은 분기당 2~30%대 성장이 기본이었고 특히 2017년하반기 ~ 2018년 상반기엔 3~40%대의 대단히 높은 성장율을 보이면서 애플과 함께 시총 1조달러 클럽 경쟁을 벌이기도 했습니다.
그러나 2019년에는 매출 성장율은 10%로 둔화되면서 실망을 안겨주었죠. 덕분에 아마존 주가도 부진을 면치 못했습니다.
2019년 4분기 아마존은 874억 달러 매출을 올려 전년 동기 비 21% 성장했고(20%대 성장에 따라 월가가 환호 한듯..), 33억 달러의 순익을 달성, 순이익율 3.7%를 기록해 전반적으로 양호한 손익 추세를 이어 갔습니다.
아마존 분기별 매출 및 전년 비 성장율(2014년 1분기 ~ 2019년 4분기) Amazo revenue & y2y growth rate by quarter, Graph by Happist아마존 분기별 순이익 및 순이익율 추이(2014년 1분기 ~ 2019년 4분기) Amazo Net Imcome & Net Income Margin by quarter, Graph by Happist
if [ $operation = "MOVED_FROM" ] || [ $operation = "DELETE" ]; then
# commands to be executed if the file is moved or deleted
elif [ $operation = "CLOSE_WRITE,CLOSE" ] || [ $operation = "MOVED_TO" ]; then
# commands to be executed if a new file is created
fi;Code language:PHP(php)
만약 파일이 다른 곳으로 옴겨졌거나 지워졌으면 WebP 파일을 지웁니다.
if [ -f "$webp_path" ]; then
$(rm -f "$webp_path");
fi;
if [ $(grep -i '\.png$' <<< "$path") ]; then
$(cwebp -quiet -lossless "$path" -o "$webp_path");
else
$(cwebp -quiet -q 90"$path" -o "$webp_path");
fi;Code language:PHP(php)
만약 이미지가 새로 만들어졌다면 아래 조건에 따라 압축이 이루어집니다.
만약 PNG 이미지라면 무손실 압축을 실시
PNG 이미지가 아니라면 손실 압축을 실시
이미지 폴더를 모니터링하고 변화에 따른 후속 조치를 취하는 전체 스크립트는 아래와 같습니다. 이 스크립트를 watchers.sh에서 반영합니다.
nano watchers.shCode language:PHP(php)
아래 스크립트를 watchers.sh에 포합시킵니다.
#!/bin/bashecho"Setting up watches.";
# watch for any created, moved, or deleted image files
inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete $1 \
| grep -i -E '\.(jpe?g|png)$' --line-buffered \
| while read operation path; do
webp_path="$(sed 's/\.[^.]*$/.webp/' <<< "$path")";
if [ $operation = "MOVED_FROM" ] || [ $operation = "DELETE" ]; then # if the file is moved or deletedif [ -f "$webp_path" ]; then
$(rm -f "$webp_path");
fi;
elif [ $operation = "CLOSE_WRITE,CLOSE" ] || [ $operation = "MOVED_TO" ]; then # if new file is createdif [ $(grep -i '\.png$' <<< "$path") ]; then
$(cwebp -quiet -lossless "$path" -o "$webp_path");
else
$(cwebp -quiet -q 90"$path" -o "$webp_path");
fi;
fi;
done;Code language:PHP(php)
일부 CDN을 사용하면 이미지 압축 및 WebP 파일 생성등 로딩 속도를 높이고, 트래픽을 절감해주는 기능을 통해서 최상의 이미지 최적화 효과를 누릴 수 있습니다.
예를들어 Akamai은 이미지 품질을 유지하면서도 이미지 용량을 압축해주며, 모바일 및 데스크 탑 PC 등과 같은 이용자 디바이스별로 최적 크기의 이미지를 보여주어 속도를 개선하며, WebP(크롬, 엣지, 파이어폭스 등 지원)나 JPEG-XR/JPEG 2000과 같이 특정 브라우저에서 최고 효과를 내는 이미지 포맷으로 변환해 보여줍니다.
다만 이런 서비스는 비쌉니다. Akamai은 1TB 트래픽당 350$ 사용료를 받습니다.
무료 플랜이 있는 Cloudflare의 경우에도 자동으로 기기에 맞추어 압축해 주는 서비스는 유료(월 20$)인 프로부터 제공합니다.
당연히 이들은 제한적으로 무료 서비스도 제공하지만 제대로 사용하려면 유료로 서비스를 이용해야 합니다.
위 리스트중에서 맨 처음으로 언급된 Cloudinary는 Free/Plus/Advanced/Custom 서비스가 있는데요.
Free 플랜의 경우 월 트래픽을 25GB를 줍니다.. 저의 경우 최소 300GB가 나오기때문에 Free 플랜은 사용 불가하고 월 99$짜리 Plus 플랜을 사용해야 합니다.
2.4. 서버에서 자체적으로 관리 – 무료
비용 문제나 속도 저하 문제로 플러그인을 사용할 수 없다면 서버에서 자체적으로 이이미지 최적화를 할 수 밖에 없습니다.
다행히 우분투와 같은 서버에서 적용할 수 있는 다양한 이미지 최적화 패키지들이 존재하기 때문에 이를 잘 활용하면 완벽하지는 않지만 해결 가능할 것입니다.
물론 서버에서 작동하도록 만들어야하므로 상당한 서버 운용 능력이 필요하다는 어려움은 있습니다.
구체적인 방법은 다음 장에서 차분히 설명하기로 하죠.
3. 서버에서 이미지 관리 프로세스
그러면 이제부터 서버에서 이미지 관리하는 방안을 살펴보도록 하겠습니다.
참고로 저는 Vultr VPS를 이용하고 있으며, Ubuntu 18.04에 웹서버는 NGINX를 사용하고 있기 때문에 이를 기반으로 설명해 보고자 합니다.
서버 업체 : Vultr(일본 동경)
서버 상품 : High Frequency 4GB RAM, 2 CPU
서버 타입 : Ubuntu 18.04
웹서버 : NGINX
조금 더 구체적으로 어떤 솔류션을 상요해야 할까요? 무슨 작업이 필요할까요?
다양하고 훌륭한 방법이 많이 있겠지만 저는 아래와 같은 프로세스를 사용했습니다.
이미지 최적화를 진행하기 전에 최적화 대상 이미지들을 백업받습니다.
그 다음 업로드된 이미지 리사이즈 여부를 검토, 리사이즈 합니다. 이때 기준은 사이트 도구 – 미디어에서 정의하는 최대 이미지 사이즈에 맞추기로 합니다. 저는 최대 이미지 폭을 1024로 정했기 때문에 폭이 1024를 넘으면 1024로 줄이도록 했고 이미지 높이는 어쩔 수 없이 긴 이미지를 사용하는 경우가 많아서 이는 컨트롤하지 않기로 했습니다. 쇼핑몰의 경우 설명을 이미지로 대체해 아주 긴 이미지를 사용하는 경우가 많죠.
다음으로는 JPEG와 PNG 이미지를 압축합니다.
다음으로는 WebP나 JPEG-XR과 같은 특정 브라우저에서 효율적인 이미지 포맷을 생성합니다.
이미지가 효과적으로 이용자들에게 노출될 수 있도록 Lazy Loading을 적용합니다.
이러한 이미지 최적화 프로세스는 서버에 새로운 이미지가 발생시마다 바로 바로 할 수도 있고 정기적으로 모아 한번에 처리하는 방법이 있습니다.
대부분 서비스는 이미지가 새로 생성되는 순간 관련 작업을 진행해 항상 최적의 상태로 이미지를 최적화합니다.
그러나 이러한 방식은 서버에 무리를 줄 수도 있기 때문에 일정 시간만다 일괄 처리(Batch) 하는 것도 나쁘지는 않을 듯 합니다.
여기에서는 더 적용하기가 쉽기 때문에 크론탭을 사용해 일정 시간마다 일괄 처리하는 방법을 채택해 설명드립니다. 저는 1시간마다 실행토록 만들었습니다.
4. 서버를 이용한 이미지 최적화 시스템
여기서터는 위에서 정의한 프로세스에 따라서 이미지 최적화 시스템(?)을 구축하는 구체적인 방법을 살펴봅니다.
4.1. 이미지 백업
이미지 최적화를 진행 전 백업을 진행합니다.
최적화 시스템 구축 방법에 따라 해당 이미지만을 백업 받을 수도 있고, 폴더를 통채로 백업받을 수도 있습니다.
저는 서버 공간도 남아돌고, CPU도 남아돌고 있기 때문에 폴더채 백업받는 방안을 선택했습니다. 그리고 이는 우선 서버 내에서 백업을 하는 것으로 했습니다.
이어서 백업 스크립트를 만듭니다. 이걸 실핼해도 되고, 뒤에서 설명하는 크론탭에서 자동 실행토록 하면 됩니다.
# 이미지 최적화 진행 전에 백업하기
tar -zcvf /backup/"happistimagebackup$(date +%y%m%d%H%M).tgz" /home/happist/wp-content/uploads/20201>/dev/null2>/dev/nullCode language:PHP(php)
4.1.3. 오래된 백업 파일 삭제
백업을 계속하다보면 엄청난 백업 파일이 쌓이게 됩니다. 그러면 아무리 서버 용량이 많아도 곧 용량 부족 상태에 이르게 되겠죠.
그래서 일정 시간이 경과한 백업 파일은 삭제하도록 합니다. 여기서는 10일 지난 백업 파일은 삭제하도록 했습니다.
이 전 글에서도 언급했지만 사이트에 글을 쓰는 사람이 단 관리자 한명이라면 애정을 가지고 최적화된 이미지를 사용하겠지만 불특정 다수가 글을 쓰는 경우 최적화된 이미지를 사용하는 확율은 그리 크지 않습니다.
더우기 모바일에서 댓글 등의 글을 쓴다면 모바일에서 이미지 편집이 쉽지는 않고 그 귀찮은 일을 할 사람이 거의 없기 때문에 대부분 그냥 활영한 사진을 그대로 올립니다.
스마트폰 카메라 사양이 고급화되면서 이미지 크기도 커졌기때문에 대용량 파일을 그냥 올릴 가능성이 커졌습니다. 물론 댓글이나 상품 리뷰 시 이미지를 사용하지 않토록 만들었다면 별 문제는 없지만 대세는 적극적으로 이미지를 댓글과 상품 리뷰에 적용하고 있는 상황이기도 합니다.
그렇기때문에 정기적으로 이미지 크기와 품질을 최적화해서 적절한 사이즈로 만들어주는 것이 필요합니다.
저는 이러한 이미지 크기를 점검해 지나치게 크다면 사이즈를 줄이는 것을 Imagemagick를 이용해 구현했습니다.
기준으로 폭만 변경하려면 widthxheighr중에서 앞의 width만 적어주고, 높이를 맞추려면 xheight를 사용합니다. 아래 내용을 보시고 제가 사용한 명령어를 그 아래에 소개해 놓았습니다.
적절한 크기의 이미지로 사이즈 조정되었다면 각 이미지를 압축하는 단계로 진입니다. 이미지 압축 대상은 가장 많이 사용하는 JPEG와 PNG 이미지입니다.
JPEG 이미지 압축 방법
JPEG 이미지를 압축하는 방법은 여러가지가 소개되어 있습니다. 각기 자기 방법이 최고라고 주장하고 있죠.
그렇지만 전문가들의 평가를 보면 MozJPEG와 Guetzli를 가장 좋은 JPEG 이미지 압축 방법으로 소개하고 있습니다.
그렇지만 Guetzli는 가장 압축 효과가 뛰어난 대신 인코딩 시간이 많이 걸리고, Progressive를 지원하지 않는등 약점이 있습니다.
그래서 저는 MozJPEG를 사용하는 JPEG-recompress를 사용하기로 했습니다.
JPEG-recompress를 이용해 JPEG와 PNG 이미지를 압축하는 아래와 같은 명령을 사용했습니다.
# jpeg-recompress를 이용 JPEG 이미지 압축
find /home/happist/wp-content/uploads/2020 -type f -iname '*.jpg' -exec jpeg-recompress --quality medium --min 60 --method smallfry \{} \{} \;Code language:PHP(php)