지난 6월 4일 열린 WWDC 2018에는 멋진 하드웨어는 없었지만 소프트웨어적으로는 많은 변화를 가져왔습니다. WWDC 2018에 대해서 예년에 비해서 볼거리가 부족했다는 지적도 있었는데요.
아래는 Verge에서 정리한 WWDC 2018 요약입니다. 참고로 보세요.
이번 WWDC를 통해서 애플은 미래 전략의 부재를 보여주었다는 부정적인 평가도 있습니다. 항상 날카로운 비평은 귀담아 볼 필요가 있으므로 부족한대로 번역해 보았습니다. 엔지니어 입장에서 쓴 글이라서 문송인 저로서는 이해하는데 어려움을 격기도 했습니다. (100% 이해했다고 장담드릴 수도 없겠네요)
만약 가장 찬란한 순간이면서도 미래에 대한 통제력을 잃어버린 회사를 알고 싶다면 더 멀리 찾아볼 필요도 없이 애플의 두번째로 큰 행사인 WWDC를 보면 됩니다.
애플 연례 개발자 행사는 거의 10년동안 생방송으로 지켜볼만큼 굉장한 구경꺼리였지만 올해는 달랐습니다. 올해는 숲에서 길을 잃고 헤메는 회사의 모습을 보여주었고, 오래 된 히트곡을 반복해서 이전과 똑같은 방식으로 틀어 주었습니다.
이러한 WWDC를 보는것은 고통스러울 뿐만이 아니라 애플이 핵심 플랫폼을 어디로 가져가야 할지에 대한 이해나 일관된 계획이 없다는 것을 실감해야 했습니다.
1년을 건너 뛰는 것은 좋지만 제가 놀란 것은 그것이 매우 무작위적으로 느껴졌고, 인사이트가 없었고 미래에 대한 고민이 없었다는 것 입니다.
애플은 플랫폼이 가진 장점, 회사 문화등을 시간이 지나면서 점점 낡은 것처럼 보이게 만들고 있으며 침몰하기 전에 변화할만큼 충분하게 상황을 인식하고 있는지 의문이 듭니다.
규모있게, 천천히, 매해 Big, slow, yearly)
애플은 WWDC 2017에서 약속한대로 Airplay와 iCloud Message를 중요한 기능으로 탑재하기 위해 2017년 동안 고군분투 해왔지만 WWDC 2018 행사전에 조용히 이를 구현했습니다.
성능 제한, 일련의 중요한 보안 문제 및 오랬동안 아무 이야기 없다가 갑자기 탑재된 기능 그리고 그렇게 많은 엔지니어가 있는데 근본적인 문제가 발생하는 이유등에 대해서 많은 사람들이 궁금증을 가지고 질문했습니다.
성능 향상은 분명히 iOS12의 가장 큰 강조점입니다. 간소화된 알림, 사용자 지정 버튼의 새로운 ‘바로가기’ 기능, 사용 현황 보고, 그룹 페이스 타임, AR 업데이트등 iOS12에서 개선은 사용자들의 환영을 받을 것입니다.
맥OS를 비롯한 이 회사의 다름 플랫폼들도 비숫하게 취급받았습니다. 애플은 맥 OS 요세미티에서 미완성된 채 소개했던 Dark mode를 완성하고, Finder에서 기본 기능을 추가해 맥킨토시를 구성하는 새로운 방법을 제시해 인기를 끌었습니다.
이런 것들이 본질적으로 나쁜 것은 아닙니다. 사실 사람들은 몇 년전부터 페이스 타임같은 것들이 개선되지 않았다고 불평해 왔습니다. 하지만 흥미로운 점은 단지 이러한 문제를 해결하는 것에서 그치지 않고 그것들을 모아서 진정 의미있는 것처럼 포장하는 것입니다. 이번에 언급된 문제들 중 많은 부분은 훨씬 더 빨리 해결할 수 있는 것들 입니다. 여기에 열거되지 않은 많은 수정과 가능들이 있지만 이야기 하고 싶은 것은 이런 것들은 문제 제기되고 몇년간 무시되어 왔던 것들이라는 것 입니다.
애플은 내일 iOS 사용자들에게 포인트 릴리즈, iOS 11의 개선 사항을 발표할 수도 있지만 아닐 수 도 있습니다. 그것들은 결합하면 뭔가 진보되었다는 환상을 줄 수 있습니다. 정기적으로 사용자에게 서비스를 제공하고 기능 업그레이드를 빨리 제공하는 대신 애플은 단순 기능을 더 오래 유지하는 것을 택하고 있습니다.
마틴 브라이언트(Martin Bryant)가 지적한 바와 같이 애플은 타이밍에 문제가 있을 수 있습니다.
그렇습니다. 애플은 iOS에서 ‘지루한’ 최적화 작업을 위해 시간을 투자해야 합니다. 하지만 왜 iOS를 이런 크고 연례 행사에 들러리를 세우고, 대단치 않을 것들로 사람들을 실망시킬까요?
흥미롭게도 이러한 이야기는 더이상 말이 되지 않습니다. 매년 애플은 경쟁 상태가 얼마나 심각한지 설명하는데 많은 시간을 시간을 할애합니다. : 안드로이드폰 사용자는 업데이트를 받지 못하고 있어요! 안드로이드 사용자들은 어떠한 최신 기능도 사용하지 못하고 있답니다! 너희들이 사용하는 폰은 정말 형편이 없어!
현실은 다릅니다. 제조업체와 상관없이 안드로이드 사용자들은 종종 iOS 사용자들보다 더 빨리 최신 기능들을 접합니다. 구글이 운영 체제와 핵심 응용 프로그램들을 서로 분리했기 때문입니다.
구글의 안드로이드 개발 방식은 예상치 못한 성공을 거두었습니다. 혁신적인 단일 기능 업데이트를 제공하는 대신 구글은 시계 앱에서 계산기까지 심지어 카메라까지 한꺼번에 업데이트 됩니다.
애플은 형편없는 업데이트 역사를 가졌다고 연례 행사 때마다 경쟁사를 두둘겼지만 구글 어시스턴트 , 키보드 등을 포함해 수많은 기능이 한꺼번에 일괄 업데이트 된다는 점을 언급하지 않고 있습니다.
안드로이드폰은 스마트폰 전체가 업데이트 됩니다. 안드로이드 지원 라이브러리는 소비자가 OS 업데이트를 받았는지 여부에 관계없이 새로운 기능을 이전 기기에도 업데이트 할 수 있습니다.
아무튼, iOS 키보드에서 버그를 발견하거나 Safari 웹 브라우저에서 이상한 보안 결함이 발견되면 다음 버전의 운영 체제에서 문제가 해결되기를 바랄 것 입니다. 어쩌면 내년이나 그 다음 해에 될지 모르겠습니다. 그것은 문제가 얼마나 나쁜지, 또는 애플이 이 서비스를 얼마나 의지를 가지고 관리하고 있느나에 달려 있습니다.
오해하지 마세요. 안드로이드는 시작 초기에 끔찍한 업데이트 역사를 가지고 있었습니다. 그러나 10년이 지난 이제는 변하고 있습니다.
구글은 디바이스 메이커가 직접 제어할 수 있는 프로젝트 트레블 (Project Treble)로 장족의 발전을 했습니다. 다만 이는 신제품의 초기 단계에서만 유용합니다. 그것만으로는 충분하지 않지만 사람들의 관심을 끌고 있고, 사람들은 (안드로이드 스마트폰을) 구입합니다.
Google updates phones like they're websites. Apple updates phones like they're desktops.
플랫폼 업데이트 할때마다 애플은 고개들을 유혹할 당근을 제시합니다. 바로 이 기능이야말로 당신이 당장 빅 업데이트할 가치가 있다고 확신할 수 있는 대표적인 기능입니다. WWDC 2018에서 MacOS에서는 Dark mode가 그것이라고 할 수 있습니다. iOS에서는 성능 향상을 약속하지만, 실제로 적절한 알람 관리를 할 수 없습니다.
WWDC에서 가장 흥미로운 부분은 2시간에 걸친 기존 연설의 맨 마지막 부분입니다. 2019년 iOS 및 macOS용 앱 개발자들이 사용하는 인터페이스를 통합하기 위한 프로젝트 Marzipan에서 절정에 달했죠.
제가 보기에, Marzipan은 인상적이고 거대한 프로젝트이지만 네이티브 앱 개발을 없애버리겠다고 애플 영역으로 침투해오는 일렉트론(Electron, Cheng Zhao가 개발한 오픈 소스 프레임워크의 하나)의 기세를 막는 것 이상의 역활을 하지는 않는 것으로 보입니다.
한번에 쓸 수 있고 어디에서나 구동시킬 수 있는 있는데 네이티브 앱을 왜 만들어 내는지? 일렉트론(Electron)에 반대하는 사람들은 이러한 아이디어에 광적으로 반응할 것이지만, 기술이 점점 효율적으로 변하고 낮은 수준의 API 억세스를 도입함에 따라 점점 사업성을 얻어가고 있습니다.
Marzipan은 교차 플랫폼 애플리케이션을 보다 쉽게 구축할 수 있도록 지원함으로써 이에 대비하는 대담한 계획입니다. 10억명 이상 사용자를 수용하는 앱을 개발할 수 있고, 개발자들이 친숙한 웹 기술을 사용할 수 있으며 어디에서든지 한번에 코딩하고 실험해 볼 수 있는 일렉트론(Electron)보다 많은 장점을 갖지는 않지만 상대적으로 빠른 시일 내에 구축할 수 있습니다.
시간이 지나면, 개발자들이 Marzipan에 대해 호의적으로 변할지 모르지만 마이크로소프트와 구글이 Progressive Web Application에 베팅하고 있는 현실을 감안해 보면 웹 기반 기술들이 네이티브 앱삼켜버리는 것을 막을 수 있을 것으로는 보이지 않습니다. 이미 일렉트론(Electron)의 성공으로 인해 진입 장벽이 너무 낮아졌습니다.
물론 Marzipan은 Intel 칩셋에서 완전히 맞춤형 Apple-ARM 기반 반도체(충격 공포)으로의 전환이 임박했음을 보여 주는 보다 큰 요인으로 작용하고 있습니다. 아무튼 그 결과로 얻을 수 있는 것은 전체를 제어할 수 있는 제어장치일까요? 하루 종일 사용할 수 있는 배터리? 데스크탑처럼 하루 종일 켜 놓을 수 있는 LTE인가요?
만약 그렇다면, 메시지는 다음과 같습니다 : 우리와 함께 하고, 플랫폼을 함께 개발하세요. 그러면 보상해 드리겠습니다. 하지 마, 그렇게하면 너는 쫒겨나고 아무것도 할 수 없을거야
이봐 시리, 비젼은 있는 거야?
이 모든 것에서 명백하게 빠져 있는 것은 위험을 감수하려는 의지 혹은 애플 사용자들의 현재 상황보다 더 나은 것이 무엇인지 장기적인 안목으로 보려는 의지입니다.
사용자들의 스마트폰 사용이 어떻게 변화하고 있는지 살피고 iOS의 특성을 재설계하는 것 대신, 새로운 기능을 10년 된 쉘에 추가하는 한 해가 되었습니다.
새로운 바로 가기 기능은 사용자가 꿈의 워크 플로우를 연결하고 버튼 하나로 작업을 분류할 수 있도록 합니다. 네, 이것은 iOS에서 커다란 진전입니다.
애플은 아이콘들이 있는 홈 스크린 상단에서 락 스크린과 통합하거나 달력 이벤트에서 날씨를 바로 보여 주는 방법을 제안했을 수도 있지만, 그렇게하지 않았습니다. 대신에, 그것은 알림 형태의 UX를 구성했고, 사용자가 그것을 보고 싶을 때 확인해 보도록 했습니다.
구글은 5월 마운틴뷰에서 개최한 개발자 컨퍼런스에서 미래에 대한 비젼을 (비록 좋지는 않지만) 명확하게 제시했습니다. AI는 앞으로 모바일 기기의 핵심 부분이기 때문입니다.
바로 가기(Shortcuts), 슬라이스(Slice) 및 앱 액션(AppAction)에 대한 안드로이드의 대안은 다음 작업을 추가하기 전에 실제 정보를 볼 수 있는 통합된 인터페이스 구성 요소를 제공합니다.
리프트 호출을 원하십니까? 잘 됐군요. 시스템의 앱 트레이에 현재 예상 탑승 가격을 표시한 버튼이 내장되어 있어요. 이 버튼을 누르기만하면 됩니다. 애플이 사생활 보호에 대해 자랑하는 것과 마찬가지로 이러한 데이터의 상당 부분은 이 기기에만 저장되어 있어 추가 정보를 입력하는 UX대신 바로 실행할 수 있습니다.
구글과 애플은 둘 다 우리가 스마트폰을 덜 사용하는 미래를 예측하고 있습니다. 즉, 시간을 제대로 활용하는 것이 핵심입니다.
그렇기 때문에 구글은 AI가 올바른 정보를 얻는 데에 많은 시간을 투자했습니다. 사용자들에게 필요한 정확한 버튼과 관련된 정보가 제공되므로 실제로 멀리 가서 무언가를 할 필요가 없습니다.
이를 촉진하기 위해 구글은 기기 UX를 다시 세팅하고, 아이콘들을 재정의하고 구글 홈과 함께 serendipitous computing에 집중적으로 투자해 왔기 때문에 사용자를 구분해 낼 수 있습니다.
스마트폰과 운영 체제의 미래에 대한 구글의 비젼과 장기적으로 스마트폰과 상호 작용하는 방법은 일관되고 잘 알려진 이야기입니다. 일상에서 벗어나 기기를 방해하지 마세요.
심지어 자체 사이트에서 애플 생태계에 대해 설명한 것보다 자신의 생태계가 어떻게 더 잘 작동하는지 보여주는 멋진 페이지도 있습니다.
애플과 구글간에 왜 이런 일들이 일어나는지에 대해서, 저는 전략과 접근 방식의 차이가 있다고 생각합니다. 애플의 전략은 새로운 것을 내놓고 무슨 일이 벌어질지에 대한 일관성있는이야기를 만들어 냄으로써 수익을 창출하는 것 이었습니다.
이는 점진적 개선으로는 괜찮지만 분명한 미래 지향성이 부족하며, 대신 모든 사람들이 그것을 저지하기 위해 하는 일에 신경을 씁니다.
애플, 오렌지 그리고 둘을 비교하는 것
구글과 애플은 매우 다른 회사들이기 때문에 비교, 대조하기는 쉽지만, 그들이 주장하는 바는 같습니다. 즉 실제로 무엇이든지간에 미래를 창조하는 것입니다.
하지만 그들의 접근 방식은 점점 달라지고 있습니다. 애플은 점점 더 작은 기능으로 더 많은 것을 쥐어 짜고 화려한 기능을 선 보이며 프라이버시에 초점을 맞추고 있습니다. 반면 구글이나 다른 업체들은 사용자를 이해하기를 강화하고 괘도를 벗어나고 있습니다. (while Google and others have pushed further into understanding the user and getting out of their way.)
이것의 대부분은 비즈니스 모델로 귀결됩니다.
애플은 기능을 한데 모아 집중해 아이 폰 판매량을 늘려 매년 매출을 안정적으로 늘렸습니다. Google의 비지니스 모델은 광고와 사용자에 대한 관련성과 관계가 있어 특별한 기능과 관계가 없고 오직 그들의 툴을 좋아해주기만 하면 됩니다. 비록 광고를 좋아하지 않아도 말입니다.
지난 20년간 애플의 전략은 새로운 혁신 제품이 나올 때까지 기존 제품 라인업을 개발하는 것 이었고 이를 반복해 왔습니다. 이것은 고객들의 삶을 향상시키는 틀에 박힌 것이고 그것은 제대로 작동했습니다.
저는 애플의 미래 비젼이 부유해지거나 진보를 추구한다고 보지는 않습니다. 대신 세련되고 잘 설계되고 잘 마케팅 된 아이디어로 가능하는 한 많은 수익을 내는 것이라고 말하고 싶습니다. 그들이 만들어내는 제품들, 그들이 출시되는 주기 그리고 애플의 모든 소프트웨어 주기들이 그것을 말해 줍니다.
예를 들어 홈팟은 흥미로운 기능을 사용하려면 아이폰을 가지고 있어야 하며, 아이폰이 없는 상태에서는 거의 고장난 거나 마찬가지가 됩니다.
이 게임의 후발 주자인 구글은 스마트폰 판매 수익과 상관없는 럭셔리한 요소와 위험 요소를 모두 가지고 있습니다. 이 부분이 구글 회사의 흥망에 근본적인 영향을 미치지 않기 때문에 위험을 감수할 수 있습니다. 마이크로소프트도 똑같은 일을 했습니다. 스스로가 약자임을 자각하고, 모든 위험을 감수하고 화려한 출시를 준비하는 대신 준비가 될 때 기능을 제공하는 ‘OS-as-a-Service’모델을 채택했습니다.
반면, 오늘날 애플은 아이폰으로 시작하고 아이폰으로 끝나며, 나머지는 거기서부터 흘러나옵니다.
단지 애플의 수익이 존재하는 기반을 찢어 버릴 수 없으며, 또 팀 쿡은 그럴 재능을 보이지도 앟았습니다. iOS는 없애 버리기는 너무 가치가 있으며, 재미 삼아 다시 만들어 볼 수도 없습니다. 그래서 HomePod나 AirPods 같은 실험을 해 보는 것이 애플의 현재 상황입니다. 애플은 엄청나게 돈이 많기 때문에 괜찮습니다. 하지만 접근 방식을 제한하는 것은 흥미로워 보입니다.
스마트폰 시장이 클라이막스를 향해 돌진할 때, 애플은 아직 다음 세대 대안을 마련하지 못했고, (우리들이 다 아는 것처럼) 그것을 마련하는 데는 많은 시간이 필요하기 때문에 여기서부터 균열이 나타나기 시작할 것입니다.
우리는 은유적인 표현으로 치약을 짜냄에 따라 튜브 바닥이 드러나는 것을 근원적으로 목격하고 있습니다. 반면에 다른 사람들은 치약 튜브가 완전히 다르게 작동할 수 있는 부부닝 있는지 알아내려고 노력하고 있습니다.
AR은 차세대 플랫폼으로 잠재력이 있습니다. 애플이 이를 크게 추진하고 있는 것은 분명합니다. 1~2년 내에는 크게 중요하지 않을 iOS에 집중하는 대신 소중한 리소스를 다른 부문으로 이동시키는 것이 바람직하다고 생각하기 쉽습니다.
저는 2020년 애플 VR/AR 헤드셋을 런칭하고, 의미있는 판매를 위해 돌진해야 하는지 확신할 수 없습니다. 다시 말해 AR의 미래를 만든다는 수십억 달러 회사인 Magic Leap이 어제 트위치에 하드웨어를 선보였습니다. “주머니에 넣지마라!, 그렇지 않으면 과열 될 것이다.”
제가 틀리게 되면 행복할 것 입니다. 제가 알고 있는 것을 적는 이 포스팅이 나중에 공개적인 허튼 소리저는 틀리게 되어 기쁩니다.
그리고 저는 제가 아마도 나중에 아이 폰을 애플은 아주 많은 돈의 가치가 있는데, 이는 매년 사람들이 전화기를 사도록 설득하는 것을 포함해 많은 일에 능숙하다는 충분한 증거입니다.
차세대 플랫폼이 바로 나타나지 않으면 어찌 될까요? 컴퓨팅 성능과 전력 개선이 평준화되고 아이폰과 다른 모든 스마트폰의 혁신 속도가 둔화됨에 따라 시장이 안정화되고 있습니다.
소프트웨어 플랫폼은 마이크로소프트가 기업 생산성에 초점을 맞춘 것처럼 완전히 전환되었고, 구글은 사용자가 생태계 내 어디에 있든지간에 사용할 수 있게 되었습니다. 스마트홈에서 스마트 스피커를 통한 인간과 컴퓨터간 사호작용의 재해석에 이르기까지 다양한 기능을 제공하면서 경쟁 우위를 점하고 있습니다.
주변의 지능적인 컴퓨팅으로(ambient, intelligent computing) 정의된 새로운 세상에서, 우리를 대신하여 우리를 돕는 툴과 우리가 유용하다고 생각하는 컨텍스트를 갖춘 툴을 사용하는 세상에서 애플은 단지 아이폰을 뛰어넘는 과감한 베팅하는 것을 꺼리고 있습니다.
제 생각에는 두가지 가능성이 다 있는 것 같습니다. 그리고 가능성이 낮아 보였던 새로운 도전자들이 나타나면서 본격화되고 있습니다.
이 모든 것은 구글, 마이크로소프트 혹은 다른 누군가가 더 낫다고 말하는 것은 아닙니다. 그들 모두는 때때로 약점, 터무니 없는 모순, 이상한 이야기를 가지고 있습니다. 하지만 변화는 분명히 일어나고 있습니다. 기회가 있습니다. 지금까지는 구글이 잘하고 있다고 보여집니다.
네, 결국 이것들은 모두 일을 끝내는 도구일 뿐입니다. 어떤 사람들은 이것을 좋아하고, 다른 사람들은 다른 것을 좋아합니다.
사람들은 항상 자신의 삶에서 더 많은 것을 얻는 데 도움이 되는 것을 선택하고, 자신의 라이프 스타일에 가장 적합한 것을 선택합니다. 수년 간 많은 사람들에게 기본적인 것은 아이폰이었지만, 영원한 것은 없습니다. 제가 보기엔 사람들이 눈치 채기 시작한 것 같아요.
너무 길어 영문본과 번역본을 인쇄해 놓고 사무실에서 읽었는데 다 읽고 나니 머리가 뻐개질 듯 아프더군요.
간만에 긴 글을 한글본과 영어본을 번갈아 읽어보려니 너무 무리했나 싶더군요.
밖 커피숍에서 아이스 아메리카 한잔을 마시며 머리를 식히며, 이 긴글을 조금 요약 정리해 봐야겠다는 생각이 들었습니다.
아래 글은 주로 한글 번역을 기반으로 넷플릭스의 오리지널 콘텐츠를 어떻게 만드는지에 대해 개인적인 관점에서
정리했음을 밝힙니다
원글이 워낙 넷플릭스의 콘텐츠를 제작하는 과정이나 원칙에 대해서 생생하게 이야기하고 있기 때문에 시간을 내서 읽어보면 좋을 것 같습니다.
“더 많은 콘텐츠는 더 많은 시청을, 더 많은 시청은 더 많은 구독을, 더 많은 구독은 더 큰 매출을, 더 큰 매출은 더 많은 콘텐츠를 가능하게 합니다.”
1. 최고의 콘텐츠 제작자에게 투자를 아끼지 않는다.
넷플릭스는 최고의 콘텐츠를 만들 수 있는, 만들어 왔던 최고의 히트 메이커들에게 거액을 투자해 넷플릭스로 스카웃하는 등 투자를 아끼지 않습니다.
ABC의 숀다 라임즈와 FX/Fox의 라이언 머피 등 네트워크 최고의 히트메이커들에게 접근하여 최대 4억불을 약속해서 스카웃 했습니다.
또 오스카 수상 감독인 데미안 차젤레, 기예르모 델 토로과도 작업하고 있으며, 이 시대 가장 성공적인 시트콤 제작자 척 로리에게도 콘텐츠를 제작할 수 있는 권한, 그린라이트를 발급했습니다.
지난 달에는 버락 오바마와 미셸 오바마와도 TV쇼 및 영화를 제작키로하고 거액의 계약을 체결했습니다.
오바마대통령 – 출처 Obama 오바마 트위터
또 넷플릭스는 어떤 쇼들의 제작에는 2,000만불 이상을 과감히 투자해서 월등한 품질의 콘텐츠를 만들어 냅니다.
스탠드업 코미디(크리스 록, 데이브 채펠, 엘렌 드제네레스), 차세대 토크쇼(미셸 울프, 하산 미나즈), 왕년의 스타들의 쇼(데이빗 레터맨, 놈 맥도널드) 등등
2. 권한 이양 – 자체 의사 결정 권한을 갖는 다수의 팀이 존재한다.
넷플릭스는 많은 콘텐츠를 제작하기 위해 분권화된 기획/제작 조직을 만들었습니다.
이들은 반쯤 독립적인 조직처럼 자체 의사 결정으로 콘텐츠를 만듭니다.
심지어 이들은 넷플릭스 최고 콘텐츠 책임자 테드 사란도스가 반대해도 제작을 진핼 수 있는 권한을 가지고 있습니다.
최고 콘텐츠 책임자 테드 사란도스는 이야기 하죠.
우리가 지금 하고 있는 일들을 규모와 품질 모든 측면에서 제대로 하기 위한 유일한 방법은, 팀에게 그들의 의사 결정 권한을 주는 것 뿐입니다.
제 팀의 임원들은 헐리우드의 그 어떤 이들보다 구매 권한이 큽니다. 제 팀은 제 승인 없이 어떤 프로젝트든 진행할 수 있습니다. 심지어 제가 반대하는 경우라도 말이죠!
넷플릭스 제작팀 임원들 Netflix Executives, From left, Amy Reinhard-VP of content acquisition, Bela Bajaria-VP of content acquisition, Ted Sarandos-chief content officer, Cindy Holland-VP of original content and Erik Barmack-VP of international originals, Photo-Nathaniel Wood
3. 로컬 오리지널의 강화
미국에서도 여전히 성장하고 있지만 넷플릭스는 해외에서 큰 기회를 보고 있습니다.
이는 다크>(독일), <인거버너블>(멕시코), < 3%>(브라질> 처럼 미국 외 지역에서 제작되는 영어가 아닌 언어의 오리지널 콘텐츠들을 강화하는 것에서 출발합니다.
외국 시장에서 더 잘 경쟁하고 성장하기 위해, 넷플릭스는 그 지역에서 그 지역의 창작자가 만든 콘텐츠를 구독자들에게 제공할 필요가 있다고 믿고 있습니다.
아러한 로컬 오리지널 콘텐츠의 강화는 빠르게 증가하는 미국 제외한 글로벌 유료 가입자 수 의 증가에서 그 효과를 찾을 수 있습니다.
▽ 넷플릭스 유료 구독자 증가 추이(1998년~2018년 1Q),
넷플릭스 발표 자료 기반 그래프 by Happist
4. 취향 집단으로 Segmentation하다
넷플릭스는 기존의 인구통계적 구분을 ‘취향 집단(Taste Community)’이라는 개념으로 대체해 활용하고 있습니다.
인류학적 추정보다는, 실제 시청 기록을 중심으로 전체 구독자를 약 2,000개이 섬세한 집단으로 나누었습니다.
이렇게 디테일하게 나뉜 취향 집단으로 비슷한 취향을 가진 사람들의 행동을 분석해 시청자들이 더 좋아할 만한 콘텐츠를 찾아 제안함으로써 새로운 것을 더 보게 유도하는 도구로 활용됩니다.
그렇기에 개개인마다 추천받는 콘텐츠가 다릅니다. 그래서 ‘당신의 넷플릭스와 내 넷플릭스는 다르다’.”는 이야기가 나오는 것이죠.
5. 철저히 데이타에 의한 의사 결정
넷플릭스가 과감하게 새로운 콘텐츠를 시도하지만, 진행 도중 아니라고 판명되면 가차업이 포기합니다.
콘텐츠 책임자 테드 사란도스는 넷플릭스 쇼 중 80%는 1~2개 시즌 후 후속 제작이 중단된다고 합니다. 또 반응이 좋았던 쇼들도 철저한 재검증을 거쳐 추가 투자 여부를 결정합니다.
코미디언 마리아 뱀포드의 이야기를 다룬 <레이디 다이너마이트>도 두 번째 시즌이 로튼 토마토 평점 100%로 호평을 받았음에도 불구하고 시청자수가 적었기 때문에 후속 제작은 불발되었습니다.
콘텐츠 책임자 테드 사란도스는 말 합니다.
<레이디 다이너마이트>는 제 개인적으로 정말 매료되었던 쇼였습니다. 전통 사업자들에서는, 임원이 그 쇼의 팬이라는 이유로 속편을 제작하는 경우가 왕왕 일어나는 반면 우리는 그렇지 않죠.
올해 디즈니의 활약을 보지 않더라도 영화 콘텐츠 부분에서 디지즈만큼 강력한 콘텐츠 경쟁력을 가진 기업를 찾아 볼 수 없습니다. 그렇기에 디즈니는 네플릭스와 대항하는 새로운 스트리밍 서비스를 내놓고 콘텐츠 제작과 이를 소비자들에게 전달하는 유통까지 장악하겠다는 꿈을 꾸고 있는 것이죠.
인크레디블 2가 미국에서 개봉되면서(아쉽게도 한국에서는 방학시즌을 맞아 7월에 개봉합니다.) 아직 성수기가 아님에도 불구하고 놀라운 흥행 성적을 내고 있다고 해서 박스 오피스 모조 데이타를 기반으로 그 내용을 살펴 보았습니다.
1. 개봉 첫 주말 흥행 성적 – 역대 8위로 선방
영화의 흥행을 가름하는 지표는 여러가지가 있죠.
미국을 비롯한 전 세계 흥행 수입이 가장 많이 언급되는 지표이고,
초반 영화의 반응을 살펴보기에는 썩토(Rotten Tomato) 지수와 같은 영화 평가 지수
첫 주말에 얼마나 많은 사람들이 영화를 봤느냐는 개봉 cjt 주말 흥행 성적등을 보기도 합니다.
여기서는 개봉 첫주말 흥행 성적을 가지고 살펴보도록 하겠습니다. 개봉 초기 단계이므로 불 수 있는 지표가 아직은 없기 때문이기도 합니다.
인크레디블 2는 개봉 첫 주말 흥행 수입으로 1억 8천 3백만 달러를 올리면서 역대 영화 중 무려 8위에 올랐습니다.
1위는 2018년 5월 개봉했던 디즈니 마블의 어벤저스 인피니트 워가 차지했네요. 2위는 스타워즈 – 깨어난 포스 그리고 3위는 스타워즈 – 라스트 제다이가 차지하고 있네요. 그러고 보면 픽사 영화뿐만 아니라 마블 및 스타워즈와 같은 디즈니가 인수한 스튜디오 작품들의 성적이 좋네요.
디즈니가 적극적으로 가능성이 있는 영화 스튜디오들을 인수한 전략이 크게 빛을 보는 것 같습니다. 아쉽게 여기에는 디즈니 자체 영화는 많지 않습니다.
▽ 미국 개봉 주말 흥행 Top 20, Box Offfice Mojo data기반 그래프 by Happist
2. 픽사 영화중 개봉 첫 주말 흥행 수입 1위
개봉 첫 주말 흥행 성적이 전체 영화중에서는 8위에 불과(?)하지만 이를 디즈니 픽사 영화내에서 따져보면 가장 좋은 성적을 거두었습니다.
디즈니 픽사 영화의 개봉 첫 주말 흥행은 이번 개봉한 인크레디블 2가 선두이고 도리를 찾아서(Finding Dory), 토이 스토리 2가 그 뒤를 잇고 있습니다.
▽ 픽사(Pixar) 미국 개봉 주말 흥행 순위 Top 20, Box Offfice Mojo data기반 그래프 by Happist
참고 1. 연도별 디즈니 영황 흥행 수입
인크레디블 2 관련 통계를 살펴보다보니 디즈니의 영화 흥행 수입 추이까지 살펴보게 되었는데요.
디즈니가 적극적으로 유망한 스튜디오를 인수해 포트폴리오를 잘 갖춘 덕분에 디즈니의 흥행 수입은 전반적으로 크게 상승하는 모습을 보여주고 있습니다. 비록 연도별로 조금 부침이 있기는 하지만 추세적으로 상승하는 모습을 보여주고 있습니다.
연도별로는 2016년에 73억 달러를 기록해 가장 좋은 성적을 기록했고 이어 2017년에 63억 달러, 2015년 62억 달러로 뒤를 달리고 있습니다.
▽ 연도별 디즈니 영화 흥행 수입 추이(단위 : 10억 달러), Box Offfice Mojo data기반 그래프 by Happist
참고 2. 디즈니가 인수한 마블, 루카스 그리고 픽사의 흥행 성적
그러면 디즈니가 인수한 픽사, 마블 그리고 스타워즈 시리즈의 루카스 필름의 성과는 어떤지 살펴 봤습니다.
픽사는 2006년에 74억 달러에 인수했고, 마블은 2009년 42억 4천만 달러에 인수하고 이어 2012년에는 40억 50만 달러에 인수했죠.
이들 삼총사의 인수 당시 인수 금액에 대해서는 이런 저런 논란이 있었지만 결국에는 멋진 투자였다는게 증명되었습니다.
이들 삼총사의 연도별 흥행 수입을 살펴보면 확실히 마블의 성적이 발군입니다. 42억 4천만 달로로 상대적으로 저렴하게 인수했던 마블이 이제는 디즈니 영화부문을 먹여살리는 정도에 이르렀으니 가장 성공한 투자로 보입니다.
다음으로는 어쩌면 마직막 빛을 밝혔을지도 모를 스타워즈 시리즈가 최근 3년동안 좋은 성적으로 보였습니다.
그리고 74억 달러로 가장 많은 투자 금액을 지불했던 픽사도 꾸준하게 흥행 수입이 증가하고 있습니다. 다만 최근 마블이나 스타워즈 시리즈에 비해서는 조금 부족한 모습을 보이고 있습니다.
▽ 디즈니 인수 삼총사(마블, 루카스, 픽사) 연도별 흥행 수입 추이(단위 : 백만 달러), Box Offfice Mojo data기반 그래프 by Happist
최근 디즈니와 컴캐스트의 폭스(Fox)사 인수 경쟁이 넷플릭스에 미차는 영향을 짚어 보았습니다.
미디어 업계 내에서의 지각 변동이므로 당근 넷플릭스에게 영향이 미치겠지만 넷플릭스가 가지고 있는 오리지멀 콘텐츠, 스트리밍 서비스 경쟁력 등을 고혀하면 영향을 제한적일 것이라는 평가입니다.
Executive Summary
미 연방법원이 AT&T와 타임워너간 인수 합병을 승인
이 합병 승인에 자극받은 컴캐스트는 이미 디즈니가 선점하고 있었던 Fox 인수전에 뛰어 듬 또한 버라이존은 CBS 인수를 추진하는 등 미디어 업계의 지각 변동이 일어나고 있음
이러한 미디어 업계간 인수 합병이 넷플릭스에 미치는 영향은 제한적이라는 의견이 있음
① 넷플릭스는 오리지널 콘텐츠에 집중한 결과, 전통 미디어 의존도를 점점 낮추어 가고 있음
② 넷플릭스는 경쟁사들보다 훨씬 앞선 고품질 스트리밍 상품을 개발했고 이릉 운영하는 풍부한 경험으로 차별화 가능
③ 기존의 미디어들이 가진 낡은 비지니스 모델들이 혁신을 가로 막아 혁신을 통한 경쟁력 확보는 기대 난망
한편 디즈니와 컴캐스트의 Fox 인수전은 2가지정도 시나리오가 예상 됨
① 비딩 전쟁(a bidding war)이 가속화되어 누가 되었든 막대한 인수 비용을 지불할 가능성이 높아, 누가 되든 승자의 저주에 걸릴 가능성이 많아짐
② Fox가 TV 부문과 영화부문으로 분할되어 별도로 인수 합병되는 경우도 가능
Fox사는 영화 관련 Hulu가 30% 지분을 가지며 유럽 TV 사업자 스카이가 39% 지분을 가지고 있는데, 이들 업체도 미디어 기업이므로 한 회사에 몰아주는 방안 대신 영화와 TV를 분리시키는 안을 선택할 가능성이 있음
1. 지각변동이 일어나고 있는 미디어 업계
최근 미디어 업계에서 굵직한 사건들이 연이어 일어나고 있습니다. CNN, HBO, 타임워너, 디즈니, 컴캐스트, 넷플릭스 등 우리에게도 익숙한 미디어 기업들과 서비스드링 이합 집산을 거듭하고 있죠.
최근 일어나고 있는 미디어 업계의 사건들 몇가지를 정리해 보겠습니다.
1.1. AT&T의 타임워너 인수 승인
2018년 6월 14일, 미 연방법원은 미국 2위 통신업체 AT&T와 3위 미디어 업체 타임워너간의 인수 합병(M&A)을 승인했습니다.
사실 2016년 10월 이미 AT&T은 타임워너를 854억 달러에 인수하기로 했지만 독점을 우려한 미 행정부의 반대로 이루어지지못하고 법정 다툼을 벌려 왔습니다.
통신업체인 AT&T가 미디어 업체를 인수한 이유는 5G 시대를 맞아 CNN, HBO등을 보유한 타임워너의 동영상을 비롯한 막대한 콘텐츠를 통해서 가입자 유치를 강화하기 위해서라는 분석입니다. 타임워너의 인기 콘텐츠를 AT&T 가입자들에게 독점적으로 제공한 기존 가입자를 유지하고 신규 가입자 유치를 강화하겠다는 전략입니다.
1.2. Fox 인수전이 치열해지다.
또 그동안 디즈니가 공을 들여왔던 21st Century Fox 인수와 관련해 컴캐스트가 Fox 인수전에 뛰어들면서 새로운 양상이 벌어지고 있습니다.
▽ 폭스(Fox)사의 대표 영화 아바타(Avata) 한 장면
디즈니는 2017년 12월 Fox를 524억 달러에 인수키로하고 승인 절차를 밟고 있었는데 이 와중에 컴캐스트가 650억 달러를 제시하면 Fox 인수전에 끼어 든 것입니다.
컴캐스트는 인수자에 의해 거래가 성사되지 않으면 역위약금 25억 달러를 제시했으며, 아울러 Fox가 디즈니에 물어야 할 위약금 15억 2천 500만 달러도 대신 지불하겠다는 조적능 내세웠습니다.
기술과 트렌드가 급변하는 환경하에서 유리한 고지를 차지하는 각기업들의 전략이 미디어 콘텐츠 배포 기업과 콘텐츠 기업 그리고 스트리밍 기업간에 이합집산이 일어나고 있는 것입니다.
1.3. 간단 맵으로 살펴보는 미국 미디어 기업 현황
미디어 산업 규모가 엄청나기 때문에 이 산업에는 엄청나게 많은 기업들이 경쟁하고 있습니다.
이런 미디어 기업 현황ㅇㄹ recode에서 한장의 지도로 정리한 map이 있어서 소개해 봅니다.
각 미디어 기업들의 매출 및 시가 총액 및 관계를 한눈에 알 수 있습니다.
▽ redode가 정의한 미국 미디어 기업 현황 2018년 6월 현재
2. 미디어 기업간 인수합병이 넷플릭스에 미치는 영향?
그러면 이런 전통 미디어 기업간 인수 합병(M&A)는 스트리밍 업계를 리딩하고 있는 넷플릭스에게는 어떤 영향을 미칠까요?
2.1. 기존 미디어들의 이합집산은 넷플릭스에 큰 위협이 되지 못할 것
넷플릭스의 미래에 대해 아주 긍정적으로 평가하는 투자회사 구겐하임의 애널리스트들은 AT&T나 디즈니의 Fox 인수와 같은 인수 합병이 넷플릭스에 미치는 영향은 제한적이라고 주장합니다.
그 이유로 넷플릭스의 오리지널 콘텐츠, 스트리밍 분야에서 앞선 경험 그리고 기존 업체들 자체의 한계 때문에 큰 위협이 될 수 없다고 보고 있습니다. 즉,
넷플릭스는 오리지널 콘텐츠에 집중해 왔습니다. 이는 전통적인 미디어 회사들에 대한 의존을 줄여줄 수 있습니다.
넷플릭스는 경쟁사들보다 훨씬 앞선 고품질 스트리밍 상품을 개발하는 데 성공했고 이를 운영하는 경험을 쌓았기에 경쟁사들보다는 경쟁 우위에 있습니다.
기존의 미디어들은 경쟁에 필요한 혁신을 가로막는 낡은 비지니스 모델들이 오히려 혁신을 통한 성장을 방해하고 있습니다.
그렇기 때문에 기존 미디어 회사들이 고객들을 장악할 가능성보다는 넷플릭스가 기능과 경험(셋탑박스 업체들과의 파트너쉽, 게임 등)을 확대하면서 고객들을 즐겁게 할 가능성이 보다 높아진다고 합니다.
따라서 투자자들은 투자자들은 기존 미디어 기업들의 인수합병에 넷플릭스가 위협을 받기보다는 넷플릭스의 오리지널 콘텐츠 개발과 창출을 확대하는 시장을 늘리고 가입자를 늘려갈 수 있는 능력에 초점을 맞추어야 한다고 제안합니다.
2,2. 디즈니와 컴캐스트의 Fox 인수전은 넷플릭스에 도다른 승리을 안겨줄 수도
한편 Fox 인수를 위해 디즈니와 컴캐스트의 경쟁이 격화되면서 최종적으로 넷플릭스가 승리를 거둘 수 있다는 전망이 제기되었습니다.
▽ 월트 디즈니 최근 1개월간 주가 추이, 컴캐스트의 Fox 인수전 참여에 따른 리스크 부각으로 주가가 하락하고 있다.
2.5. 넷플릭스에 대한 긍정적 전망
반면 2018년 6월 19일 GBH는 넷플릭스 목표 주가를 현재 400달러에서 500달러로 크게 올렸습니다.
GBH는 넷플릭스 가입자들이 주당 10시간을 시청하며, 반면 경쟁사인 Hulu는 5시간을 시청하고 있다는 조사 결과를 공개했습니다.
넷플릭스는 콘텐츠 확보와 배급에 아주 강력한 능력을 보유하고 있으며, 지난 2년간 전 세게 100여국에서 글로벌 유통망과 고객을 확보하면서 2020년 7억명의 가입자 시장으로 커갈 글로벌 시장에서 경쟁력을 키우고 있다고 평가했습니다.
이러한 경쟁력을 기반으로 목표 주가를 올린다고 GBH는 밝혔습니다.
실제 넷플릭스의 주가는 2017년 말 191.96달러에서 2018년 6월 19일 404.98달러로 배이상 올랐습니다. 디즈니, 애플 등등 거대 기업들이 콘텐츠 시장 또는 스트리밍 시장에 참입을 선언하고, 미디어 기업간 합종연횡이 거듭되는 가운데 오히려 넷플릭스 주가는 급등하는 모습을 보여 주고 있습니다.
▽ 넷플릭스 최근 2년간 주가추이, 2017년 말에서 2018년 6월 19일까지 거의 2배 상승하였다.
더우기 이를 제보자가 (비록 한물 갔지만) 헐리우드 배우라서 그 파급력이 큰 것 같습니다.
웨스트 위의 주인공 매리 매코맥이 테슬라 차량 화재를 트윗하다
오늘 배우 메리 매코맥이 SNS에 글을 올려 남편의 테슬라 차량에서 갑자기 불이 났다고 주장했습니다.
메리 맥코맥은 그녀의 트위터에 “오늘 남편 차에 일어나 일로 교통 사고도 없었는데 갑자기 산타모니카 블라이에서 일어난 일로 이 일을 알려주고 차를 세우라고 한 친절한 커플에게 감사하고 다행스럽게 이 차에 아이들이 타고 있지 않아서 신에게 감사한다.”고 적었습니다.
@Tesla This is what happened to my husband and his car today. No accident,out of the blue, in traffic on Santa Monica Blvd. Thank you to the kind couple who flagged him down and told him to pull over. And thank god my three little girls weren’t in the car with him pic.twitter.com/O4tPs5ftVo
이 생산라인은 천막 형태로 최소한의 자원을 투자해 단 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”