-1.5 C
New York
월요일, 12월 22, 2025

Buy now

[광고] 쿠팡 추천 링크

안녕하세요? 올해까지 삼성전자 25년 직장 생황릃 마치고 퇴직하려 합니다. 퇴직 후 아르바이트로 쿠팡 파트너스 활동을 하려고 합니다. 쿠팡 파트너스는 쿠팡 추천 링크를...

카누 캡슐 커피머신 솔직 리뷰: ‘네스프레소 호환’ 가성비 끝판왕 (ft. 쿠팡 최저가 할인)

'공유 커피' 카누가 만든 카누 캡슐 커피머신 : 캡슐 커피머신 바리스타 브리즈/어반! 네스프레소 오리지널 캡슐 호환으로 활용도는 높이고, 카누만의 황금 레시피로 커피 맛은 깊어졌습니다....
Home Blog Page 346

댁내까지 배달하는 아마존 키(Amazon Key) 서비스의 경쟁력 – 월마트 서비스와 비교를 중심으로

0

얼마전에 월마트에서 냉장고까지 직배송 서비스를 시작한다고 발표를 했죠. 이에 대해서 보안이나 프랑버시 문제로 논쟁이 일긴 했습니다.

이 월마트 서비스에 대해서는 마트에서 냉장고까지 직배송을 제안하는 월마트의 새로운 실험 그리고 미래 쇼핑의 모습에서 자세히 소개했습니다.

이제 아마존에서도 아마존 키(Amazon Key)라 불리우는 댁내 배달 서비스를 발표했습니다. 여기에서는 아마존 키(Amazon Key) 서비스 내용을 살펴보고 월마트 서비스와의 차이점 그리고 이러한 서비스 출시에 따른 인사이트를 살펴보도록 하겠습니다.

1. 아마존 키(Amazon Key) 서비스에 대해서

아마존은 주인이 없어도 댁내까지 물건을 배달하고 청소 업체가 댁내에 들어와 청소까지 할 수 있는 아마존 키(Amazon Key) 서비스를 런칭한다고 발표했습니다.

아마존이 발표한 아마존 키(Amazon Key) 서비스에 대해서는 아마존 키(Amazon Key) 서비스 소개에서 자세하게 설명하고 있구요.

공식적으로 아마존 키(Amazon Key) 서비스에 대해서 영상으로 소개하고 있습니다.

1.1. 보안을 위해서 보안 카메라 및 스마트 도어락을 설치 해야 합니다.

아마존 키(Amazon Key) 서비스를 이용하기 위해서는 Amazon Key In-Home Kit를 설치해야 합니다 이 In-Home Kit에는 보안 카메라와 스마트 도어락이 필요한데요. 아마존은 $2499.99에 이 Amazon Key In-Home Kit를 판매하고 있습니다.

아마존 키 서비스를 위한 인 홈 키트 Amazon Key In-Home Kit

1.2. 아마존 키(Amazon Key) 서비스 내용 – 댁내 배달, 청소 그리고 애완견 산책 등

그러면 아마존 키(Amazon Key) 서비스의 핵심 서비스는 무엇일까요?

댁내 배달(In-Home delivery)

아마존에서 제시하는 가장 중점이 되는 서비스는 댁내 배달(In-Home delivery)입니다. 아마존에서 제안하는 댁내 배달(In-Home delivery)가 어떻게 작동하는지 아래 gif 이미지를 통해서 샇펴보죠.

  • 아마존이 배송은 책임지고 클라우드를 통해서 감시 카메라를 작동시키고 임시 도어락 비밀번호를 생성해 열어 줍니다.
  • 소비자는 원격으로 보안 카메라를 통해 배달 상황을 모니터링 할 수 있으며, 나중에라도 녹화된 동영상으로 이를 확인 할 수 있습니다.

▽ 아마존 크라우드에서 임시 도어락 비밀번호를 생성해 열어 줍니다.

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 01

▽ 문이 열리면 배달할 상품을 댁내에 넣어 줍니다.

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 02

▽ 이러한 배달 과정을 스마트폰 앱을 통해서 시시시각각 상황을 공유합니다..

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 03

▽ 필요에 따라 배달되고 있는 상황을 스마트폰에서 모니터링 할 수 있습니다.

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 04

청소서비스

아마존은 청소 전문업체인 Merry Maids와 협업해 집을 비운 사이에 청소 서비스를 진행 할 수 있습니다.
마찬가지로 청소 진행 상황을 보안카메라를 통해서 모니터링 할 수 있습니다.

▽ 청소 전문업체인 Merry Maids를 통해서 청소 서비스를 의뢰

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 - 청소서비스 01

▽ 필요에 따라 청소 상황을 스마트폰에서 모니터링 할 수 있습니다.

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 - 청소서비스 02

애완견 산책서비스

미국도 애완견 관련 산업이 번성하고 있는데요. 주인이 시간이 많으면 애완견과 많은 시간을 보내면 보살펴 주겠지만 바쁘다면 애완견 산책서비스를 의뢰할 수 있습니다.

사실 미국에서는 이러한 애완견 산책 서비스가 성행하고 있는데요. 아마존은 애완견 케어 및 산책 서비스를 제공하고 있는 Rover.com과 협업해 애완견 산책서비스를 시작한 것입니다.

▽ 아마존 키(Amazon Key) 서비스 – 애완견 산책

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지001-아마존 키(Amazon Key) 서비스 - 애완견 산책

그외 아마존 홈 서비스에서 제공하는 1,200여개 서비스

아마존 키(Amazon Key) 서비스는 조만간 아마존에서 제공하는 1,200여개의 아마존 홈 서비스를 이 아마존 키(Amazon Key) 서비스와 연계 시킨다고 합니다.

1.4. 아마존 프라임 멤버쉽(Amazon Prime Membership) 가입자 대상

이 서비스는 우선 아마존 프라임 멤버쉽 가입자를 대상으로 합니다. 이 아마존 키(Amazon Key) 서비스를 이용하려면 우선 아마존 프라임 멤버쉽에 가입해야 합니다.

2017년 9월 기준 미국에서 아마존 프라임 멤버쉽 가입자는 무려 9천만명으로 미국 절반이상의 가정에서 이에 가입된 상태이니 커버리지가 상당히 넓다고 할 수 있습니다.

▽ 아마존 미국 프라임 멤버수 추이,
그래프 by Happist

아마존 미국 프라임 멤버수 추이 Amazon US prime members trend

1.5. 서비스 지역 – 미국 내 37개 도시에서 제공

아직 미국 전역에서 이러한 아마존 키(Amazon Key) 서비스를 제공하는 것은 아닙니다. 아래와 같이 미국 내 37개 도시에서 서비스를 제공하고 있습니다.

1.Atlanta, Ga.
2.Austin, Texas
3.Baltimore, Md.
4.Boston, Mass.
5.Chicago, Ill.
6.Cincinnati, Ohio
7.Cleveland, Ohio
8.Dallas, Texas
9.Denver, Colo.
10.Detroit, Mich.
11.Houston, Texas
12.Indianapolis, Ind.
13.Jacksonville, Fla.
14.Kansas City, Kan.
15.Los Angeles and Orange County, CA
16.Louisville, KY
17.Miami, FL
18.Milwaukee, Wis.
19.Minneapolis and St. Paul, Minn.
20.Nashville, Tenn.
21.Newark, N.J.
22.Orlando, Fla.
23.Philadelphia, Pa.
24.Phoenix, Ariz.
25.Pittsburgh, Pa.
26.Portland, Ore.
27.Richmond, Va.
28.Sacramento, Calif.
29.Salt Lake City, Utah
30.San Antonio, Texas
31.San Diego, Calif.
32.San Francisco Bay Area
33.Sarasota, Fla.
34.Seattle and Eastside
35.St. Louis, Mo.
36.Tampa, Fla.
37.Washington DC metro

2. 월마트 서비스와 비교

월마트가 이와 유사한 서비스를 먼저 시작하면서 강조했던점은 식료품을 냉장고까지 배달한다는 점이었습니다. 그러면서 월마트 배달원이 주방 냉장고까지 들어와 냉장고에 물건을 넣은것을 보여주고 이를 원격으로 모니터링할 수 있다고 강조햇습니다.

아래는 월마트에서 발표한 컨셉을 유튜브에 올린 동영상입니다.

주방까지 들어온다는 점에서 그런지 모르지만 이 서비스를 발표했을 시 프라이버스 문제가 강하게 제기되고 많은 찬반이 일었습니다.

아래는 CNN 트윗에 나타난 사람들의 반응인데요. 아주 부정적인 반응이 대부분입니다.

이와 반해서 아마존의 접근은 보다 조심스럽고 종합적인 접근을 통해서 이러한 우려를 낮추고 있다는 생각입니다. 이러한 서비스에 대해 아마존과 월마트의 차이를 몇가지로 정리해 보았습니다.

첫번째는 아마존 키(Amazon Key) 서비스라는 브랜딩을 통해서 뭔가 체계적으로 접근하고 있다는 느낌을 주고 아마존이 가지는 혁신 이미지와 결부해서 여기에는 뭔가가 있구나 하는 이미지를 줍니다.

두번째로는 서비스 핵심이 댁내 배달(In-Home delivery) 서비스를 크게 부각시키지 않습니다.
홍보 영상에서 댁내 배달에 대해서 문이 열리면 살짝 열린 문으로 물건만 넣어주고 닫는 모습만 보여줍으로서 프라이버스 문제나 보안에 대한 소비자들의 잠재적 걱정을 최소화토록 배려했다
는 느낌입니다.

그러나 이는 그본적으로 인홈 배달 서비스에 대한 논란을 피해가지는 못합니다.

▽ 문이 열리면 배달할 상품을 살짝 댁내에 넣어 줍니다.

아마존 키 서비스(Amazon key Service) 홍보 영상 이미지 02

세번째로는 댁내 배달(In-Home delivery)서비스외 청소 서비스등과 같이 주인이 없을 시 이미 (주인이 없는 상태에서)서비스되고 있는 서비스를 제안하면서 관점을 분산시키고 심리적인 저항을 줄이고 있습니다.
전략적으로 영리한 접근이라는 생각입니다.

네번째로는 아마존이 서비스하고 있는 1,200여개 홈 서비스와 이 아마존 키(Amazon key) 서비스를 연계함으로써 어느 한 부분 공략이아니라 홈서비스 부분 전체를 아마존 키(Amazon key) 서비스 플랫폼으로 끌어오겠다는 상당히 큰 그림을 보여주고 있다는 점입니다.
이렇기에 아마존에 협력하는 써드 파티들이 엄첨나게 증가해 서비스가 단기간내 풍성해질 가능성이 있습니다.

다섯번째로 서비스 지역에 대해 월마트는 시범서비스로 캘리포니아 일부 지역에서 시범 서비스를 시작했지만 아마존은 단숨에 미국내 37개 도시에서 서비스를 시작하는 과감함을 보이고 있습니다. 그만큼 철저한 준비가 된것인지 모르겠지만 늦게 시작했음에도 불구하고 아마존이 이 컨셉에 대해서 혁신자로서 이미지를 대중에게 확실히 각인시킬 것으로 보입니다.

3. 마치며

유통부분에서 월마트와 아마존이 치열하게 경쟁을 하고 있는 상황에서 댁내 밷ㄹ 서비스와 관련해 월마트가 먼저 포문을 열었지만 아마존이 보다 더 종합적인 서비스로 맞 받아친 상황이 되었습니다.

비록 월마트가 먼저 서비스를 터트렸지만 아마존이 더 종합적인 서비스를 제공하고 단순에 미국 내 많은 지역에서 서비스를 시작함으로써 월마트의 선발의 잇점은 없어졌고 혁신자의 이미지는 아마존이 가져갈 것으로 보입니다. 먼저 시작한 월마트로서는 아쉬울 뿐이죠.

유통 부분에서 아마존과 월마트의 경쟁은 시간이 갈수록 (어쩌면 다들 알고 있는대로) 아마존으로 기울고 있다는 생각이 이 댁내 배달 서비스(In-Home delivery service)를 비교해보면서 점점 더 강해졌습니다.

그리고 집안까지 배달하는 서비스에 대해서는 찬반이 많지만 이미 주인이 집을 비운 사이에 이루어지는 많은 서비스들이 존재합니다. 여기에도 문제가 많이 있을 수 있습니다만 문제점을 보완해가면서 발전하듯이 이 댁내 배달 서비스나 댁내 관련 홈 서비스들이 발전해 갈것으로 보입니다.
아마 아마존이라고 한다면 AI 기술과 클라우드 기술을 통해서 보다 신뢰할 수 있는 배달원과 홈 서비스 업체를 육성하고 관리하면서 이런 문제점을 최소화 할것으로 보입니다.

과시적 소비를 넘어 비과시적 소비를 주도하는 새로운 엘리트, The aspirational class 이야기

0

미국의 상류계층에서는 더이상 상류계층처럼 보여지는 것을 지양하는 새로운 트렌드가 나타나고 있다고 합니다. 트렌드 자료를 서치하다 상류계층들에서 이러한 새로운 소비트렌드에 대한 소개가 있어서 살펴 보았습니다. 조금 시간이 지났지만 트렌드는 현재 진행형이니..

1. ‘The Sum of Small Things: A Theory of the Aspirational Class’ 요약

이는 Elizabeth Currid-halkett이 ‘The Sum of Small Things: A Theory of the Aspirational Class’라는 책을 출판하면서 화두가 되고 있는데요. 그 내용을 간략 요약하면 아래와 같습니다.

'The Sum of Small Things - A Theory of the Aspirational Class 책표지 New conspicuous consumption book

  • 소스타인 베블린(Thorstein Veblen)이 유한계급론(The Theory of the Leisure Class)에서의 정의에 따라 그동안 상류계층의 상징은 과시적 소비(conspicuous consumption)였음

  • 지난 100여년간 생활 수준이 꾸준히 상승해 이른바 ‘과시적 소비의 민주화’가 일어나 본래 상류계층을 구분해준 ‘과시적 소비(conspicuous consumption)’의 차별성이 사라짐

  • 이에 따라 새로운 소비트렌드를 추구하는 ‘aspirational elite’들이 나타남. 이들은 기존 유한계급들과 달리 고학력+전문기술+사회자본+문화자본을 가지고 많은 일을 하고 있음

  • 이들의 소비는 가시적으로 들어나지는 않으나 많은 경제적, 사회적 자원을 필요로 하는 자녀 교육과 같은 부분에 집중되고 있음

  • 이들 ‘aspirational elite’에는 고소득은 아니지만 충분한 교양과 문화자본을 가진 사람들이 포함됨

아래는 인터넷 뉴스 매체로 각광을 받고 있는 쿼츠에서 소개한 미국의 새로운 트렌드 소개 기사를 간략히 소개합니다.

2. 새로운 미국 엘리트 계급을 구분하는 새롭고 잘 띄이지 않는 구분 요소들 by 쿼츠

The new, nearly invisible class markers that separate the American elite from everyone else

▽ 뉴욕 타임 스퀘어 광장에서 요가에 열중하고 있는 뉴요커들,
사진 출처 – 쿼츠

뉴욕 타임 스퀘어 광장에서 요가에 열중하고 있는 뉴요커들 aspirational class

부유한 사람들은 점점 돈 많은 것처럼 보이는것을 지양하고 있습니다. 이는 서구 부유틍들의 변화하는 소비 습관을 연구한 책에서 소개하는 새로운 이론입니다.

1899년 미국의 경제학자이자 사회학자인 소스타인 베블린(Thorstein Veblen) 이제는 고전이으로 일컬어지는 유한계급론(The Theory of the Leisure Class)을 발표했습니다. 베블린(Veblen)은 상류계층이 구매한 상품으로 자신의 부유함을 나타내는 것을 연구한 최초의 연구서이기도 햇습니다. 이러한 부유틍의 행동을 설명하기 위해 기 베블린(Veblen)은 ‘과시적 소비(conspicuous consumption)’라는 용어를 사용했습니다. 이는 초기 자본주의 비판으로 유명해졌습니다.

거의 120년 후, 사회학자 엘리자베스 커드-할 케트 (Elizabeth Currid-Halkett)는 신간 ‘The Sum of Small Things : A Theory of the Aspirational Class)’에서 ‘the Aspirational Class’라는 새로운 계층의 소비 유형을 제시합니다.

그녀는 책을 소개하는 웹 페이지에서 아래와 같이 the Aspirational Class을 특징짓고 있습니다.

고학력이면서 소득 구갼이 아닌 문화 자본으로 규정된 계층으로, 이들은 유기농을 구입하고 NPR 토트 백을 들고 아기를 모유로 기릅니다. 그들은 유기농 면화 셔츠와 톰스 (TOMS) 신발을 착용하고 시리얼 팟 캐스트 (podcast)를 듣는 것과 같은 신중하고 눈에 띄지 않는 소비에 관심이 있습니다. 그들은 보모와 가정부를 고용하고 자녀의 성장을 도모하고 요가와 필라테스를 실천하기 위해 구매력을 사용합니다.

Highly educated and defined by cultural capital rather than income bracket, these individuals earnestly buy organic, carry NPR tote bags, and breast-feed their babies. They care about discreet, inconspicuous consumption—like eating free-range chicken and heirloom tomatoes, wearing organic cotton shirts and TOMS shoes, and listening to the Serial podcast. They use their purchasing power to hire nannies and housekeepers, to cultivate their children’s growth, and to practice yoga and Pilates.

이러한 주장에는 두가지 트렌드를 기반으로 하고 있습니다.

2.1. 이제 누구나 가능한 ‘과시적 소비(conspicuous consumption)’가 상류계층에서 감소하고 있다.

지난 100년 동안 기술의 발전과 세계화로 일반 미국인들도 소비재를 쉽게 소비 할 수 있게 되었습니다. Currid-Halkett는 이렇게 누구나 쉽게 소비할 수 있게 됨으로써 “과시적 소비(conspicuous consumption)의 민주화”가 이루어져 상류계층이 자신의 존재 또는 자신의 부유함을 보여주기엔 덜 매력적인 방법이 되었습니다.
오히려 ‘과시적 소비(conspicuous consumption)’는 2만불 짜리 Birkin bag이나 빈티지 와인과 같이 모방하기 힘든 한정판 버전의 상품에 집중되었습니다.

Currid-Halkett은 미국 가계 소비 데이터 분석을 통해 부유 한 미국인들의 소비가 급감 한 것을 보여줍니다. 그녀가 제사한 데이차를 보면 1996년부터 2014년까지 저소득 가구의 소비 비중이 눈에 띄게 증가했지만 상류계층의 비중은 감소했습니다.

과시적 소비를 넘어 비과시적 소비를 주도하는 새로운 엘리트, The aspirational class 이야기 1

2.2. 비과시적 소비(inconspicuous consumption)는 새로운 과시적 소비(conspicuous consumption)이다.

베블린(Veblen)이 이야기하는 ‘유한 계급(the Leisure Class)’의 귀족들과는 달리 Currid-Halkett는 오늘날 상류계층 대부분은 실제로 그들의 부를 위해서 일을 해야한다고 지적합니다.
“신탁 펀드에 돈을 넣어 놓고 놀고 먹는 플레이보이나 또는 과두 정치 체제에서 첫 데뷔 무도회와 같은 유한 계급(the Leisure Class)은 더 이상 존재하지 않습니다.”

실제로 1970년대와는 반대로 오늘날 상위 소득 20%는 하위 20%의 근로자보다 더 많은 시간을 일합니다.
Americans are working fewer hours—and it’s making income inequality worse

새로운 ‘The aspirational class’는 열심히 일하고, 고학력을 기반으로 습득한 기술을 기반으로 소귿을 창출한다는 사실은 ‘사회적, 환경적, 문화적 인식이 사회 자본의 가장 가치있는 원천이되었다’고 Currid-Halkett는 주장합니다.

그래서 소비 제품에 돈을 쓰는 대신 사회 자본을 확보하고 자녀들을 양육 할 시간을 가질 수 있도록 “비가시적이고 값 비싼 상품과 서비스”에 지출을 집중시키고 있습니다. 이러한 값비싼 상품과 서비스에는 보육, 정원사 및 가장 중요한 교육이 포함됩니다. 그녀는 이러한 유형의 소비를 ‘비과시적 소비(inconspicuous consumption)’라고 부릅니다.

과시적 소비를 넘어 비과시적 소비를 주도하는 새로운 엘리트, The aspirational class 이야기 2

Featured_brooke-lark-254998

Currid-Halkett는 책의 후반부에서 고소득층이 아니지만 새로운 ‘The aspirational class’가 될 수 있다고 주장합니다. ‘Yale의 창작 작문 학위를 가진 사람들, 아직 영화 대본 시나리오 작가, 음악가 및 Teach for America …등이 새로운 문화 및 사회 자본을 형성하는 구성원이기도 합니다.’라고 그녀는 적고 있습니다.

Currid-Halkett가 새로운 주장을 뒷받침하는 많은 도발적인 일화를 많이 제시하지만 이것이 새로운 추세라는 경험적인 증거는 비교적 약합니다.

그럼에도 불구하고 Currid-Halkett의 저서는 오늘날 상류계층들이 어떻게 돈을 쓰는지를 파악하는데 중요한 역할을 합니다. 상류계층들이 요가 팬츠와 케일에 집착하는 것에 농담삼아 이야기할 수 있지만 ‘The aspirational class’의 부상은 실제 일어나는 일일 수 있습니다. 아마 가장 불안스러운 것은 Currid-Halkett의 이러한 소비 경향이 불평등을 악화시킬 수 있다는 결론입니다. 예를 들어, 상류계층 부모의 자녀 교육 및 건강에 대한 지출 증가는 계급 분열을 심화시키고 빈곤층 자녀의 기회를 제한 할 수 있습니다.

3. 마치며

Currid-Halkett의 책에서 소개하는 새로운 트렌드는 산업화의 발전에 따른 엘리트 계층의 그들의 지배를 구현하고 표현하는 사고 체제에서 변화를 잘 지적하고 있습니다. 그러나 과시적 소비(conspicuous consumption)라는 원시 시대부터 존재했던 소비 방식 또는 지배 방식이 완전히 없어진 것은 아니며 어쩌면 분화해서 ‘비과시적 소비(inconspicuous consumption)라는 한 트렌드가 대두되었다는 생각입니다. 이는 사회적 문화적 자본에 충실한 소비 방식이라 이를 추종하는 지식인이나 대중들이 많이 등장하고 하나의 주요한 트렌드로 자리 매김할 것으로 보입니다. 작은 사치나 웰빙이니 하는 트렌드들이 이런 메가 트렌드의 한 부분이 아니었나 싶습니다.
한마디로 뽀대나는 소비 유형이니깐요.

중장기 그래프와 함께 읽어보는 아마존 3분기 실적 그리고 인사이트

0

어제 (미국 시산으로 2017년 10월 26일)발표된 아마존의 2017년 3분기 실적을 간략히 정리해 봅니다.

1. 매출 437억불로 전년 비 34% up

아마존은 26일(미국 현지 시간) 3분기 실적을 발표했습니다. 매출 437억불로 전비 비 34% 증가했습니다. 이는 2012년 1분기이래 22분기동안 가장 높은 성장율입니다. 최근 인수한 홀푸드 매출 13억불을 제외해도 24%가 증가한 것으로 수년동안 평균 성장율을 유지한 상당히 놀라운 수치라고 할 수 있습니다.

▽ 아마존 분기별 실적 추이,
그래프 by happist

아마존 분기별 실적 추이 Amazon Revenue trend by quarter

아마존은 아울러 2017년 4분기 매출을 560억불에서 605억불로 추정 발표했는데요. 아마존 예상 최대치를 반영하면 아마존의 2017년 매출은 $178$로 전년 비 31% 성장하며 최근 5년간 평균 성장율(CAGR)도 24%에 달할 전망입니다.

▽ 아마존 연도별 매출 및 손익 추이,
2017년 매출은 아마존의 예상 최대치 반영,
그래프 by happist

아마존 연도별 매출 및 손익 추이 2017년 예상 최대치

2. 순이익 2.65억불, 주당 52센트

아마존의 순이익(Net Income)은 2.65억불로 저년비 매출 성장에 비하면 높지는 않습니다. 그러마 시장에서는 최근 아마존의 공격적 투자 즉 물류 시설 확충, 유기농 식품 유통업체인 홀푸드 인수 그리고 해외 투자 강화등으로 손익을 굉장히 낮게 예상했었는데 이를 크게 상회하는 실적이라는 평(주당 4센트르 예상했는데 52센트)과 시장 평균 예상치 주당 78센트에 비해서 크게 못미친다는 평이 상존하고 있습니다.

아마존의 투자를 감안하면 훌륭한 손익 실적이라는 평과 아마존이 매출 등을 감안하면 괸장히 낮다는 평이 상존합니다.

블룸버그는 투자를 감안하면 시장에서 예상치 비 높다면 아마존이 가장 높른 시장치를 상회하는 실적을 보여주었다고 그래프까지 그렸습니다.

Amazon Tops Sales Estimates on Subscribers, Whole Foods

아마존 시장 예측치와 실적간 비교 그래프는 불룸버그 Bloomberg

반면 CNBC는 시장 예측치 78센트에 비해서 낮은 52센트를 기록해 발표 후 장외시장에서 아마존 주식이 3% 하락했다는 점을 집중 보도했습니다.

Amazon shares fall after big earnings miss

3. 아마존 웹서비스(AWS)는 매출 46억불로 여전히 좋은 설적을 거두다.

한편 아마존의 수익을 책임지고 있는 아마존 웹 서비스(AWS)매출은 5.8억불을 기록해 전년비 42% 증가하는 좋은 성적을 거두었습니다.

▽ 아마존 웹 서비스(AWS) 분기별 매출 및 전변비 성장율 추이,
그래프 by Happist

아마존 웹 서비스(AWS) 분기별 매출 및 전변비 성장율 추이 Amazon Web Service(AWS) Quarterly revenue trend

아마존 웹서비스(AWS)전망에 대해서는 전망이 엇갈리고 있는데요. 마이크로소프트 애저가 광장히 빠른 속도로 쫒아오고 있어서 지금처럼 강력한 시장 지위 유지가 어려우며 성장율을 계속 하락할 것이라는 비판적 견해가 있습니다.

이러한 우려에 대해서 아마존 웹서비스(AWS)는 전년비 42% 성장이라는 실적을 내놓으면서 시장 성장에 한계가 있다는 비판에 대한 우려를 어느정도 불식시킬 수 있는 것 아닐까 합니다. 물론 전년 동기 비 성장율은 이전 분기에 비해서 많이 낮아진 상태이지만 2017년에 들어서도 여전히 40%이상 성장율을 유지하므로써 여전히 굳건하다는 생각입니다.

전년 동기비 성장율 42%가 낮다고 주장하면 할말이 없게지만요..

아마존 웹 서비스(AWS)와 마이크로소프트의 클랑드 서비스에 대한 사례 연구는 아래 글을 참조하세요.

아마존 주력 사업으로 성장하는 아마존 웹서비스(AWS) 전략 사례

클라우드와 인공지능(AI)으로 부활하는 마이크로소프트 이야기

4. Subscription services 매출 24억불로 전년 동기 비 59% 성장

아마존의 성장을 이끌어왔던 가장 큰 축의 하라고 생각하는 아마존 프라임멤버스에서 주로 발생하는 아마존 Subscription services 매출은 24억불을 달성해 전년 동기 비 59% 성장했습니다.

▽ 아마존 Subscription services 매출 및 전년동기 비 성장율 추이,
그래프 by Happist

아마존 Subscription services매출 및 전년동기 비 성장율 추이

아마존의 Subscription services 부분은 빠르게 성장하면서 아마존 웹 서비스(AWS)와같은 아마존의 수익을 책임져줄 핵심 부분이 되지 않을까 예상해봅니다. 2016년 1분기이ㅐ 전년 동기비 성장율을 50%이상 유지하면서 그 가능성을 점차 높여가고 있다는 생각입니다.

이에 대해서는 아래 글을 참조하세요.

아마존 프라임 멤버스의 Subscription Services는 아마존 웹서비스(AWS)같은 아마존 핵심 사업이 될까?

이러한 아마존의 Subscription services 매출을 견인하고 있는 아마존 프라임 멤버쉽 증가 추이입니다. 2017년 9월 현재 9천만명으로 (이 그래프에는 표현되지 못했지만) 전년 동기인 2016년 9월 6.5천만명에 비해서 39% 증가한 수치입니다.

▽ 아마존 미국 프라임 멤버수 추이,
그래프 by Happist

아마존 미국 프라임 멤버수 추이 Amazon US prime members trend

5. 그외

아마존 실적중 위에서 언급한 내용외 몇가지를 더 추가해 봅니다.

  • 아마존의 온라인 매출은 $26.4B을 기록해 전년 동기 비 22% 성장했
  • 아마존의 써드 파티 판매자들의 매출은 $7.9B으로 전년 동기 비 40% 성장
  • 아마존 매출 중 북미가 차지하는 비중은 58.2%러 예년과 비슷한 비중. 이는 아마존 성장에 비해서 글로벌 매출 성장율이 상대적으로 낮음

아마존 실적에 대해서 시장은 상당히 긍정적으로 반응한 것으로 보입니다.
실적 발표 후 13.2% 주가가 껑충 뛰었으니 말입니다.

▽ 아마존 주가 추이 ,
그래프 : Yahoo Stock

아마존 주가 추이 Amazon Stock trend

Loader Loading...
EAD Logo Taking too long?

Reload Reload document
| Open Open in new tab

아마존 2017년 4분기 실적 – 예상을 넘는 근래 최고의 성적(605억 달러, 38% 성장)을 보이다.

2018년 PC 시장 전망 – 7년만에 성장세로 전환하다 by 가트너

0

며칠전 가트너에서 발표한 2016년에서 2019년까지 모바일폰(스마트폰+피처폰) 수요를 정리했었는데요. 오늘 같이 발표되었던 PC 수요 에상에 대해서 살펴보도록 하겠습니다.
모바일폰(스마트폰+피처폰) 수요에 대해서는 2018년 모바일폰 시장 예측 – 스마트폰 6%로 성장세 전환 by가트너를 참조하시면 됩니다.

아울러 가트너 발표자료는 Gartner Says Worldwide Device Shipments Will Increase 2 Percent in 2018, Reaching Highest Year-Over-Year Growth Since 2015를 참조하시기 바랍니다.

1. 가트너 발표 PC 출하량 예측

가트너의 2019년까지 PC 출하량 예측은 전 셰계 소비자를 대상으로 진행한 온라인 조사를 토대로 PC 수요를 예측한 것입니다. 조사는 2017년 6월 ~ 7월사이에 미국, 영국, 독일, 중국. 인도등에서 약 만 6천 537명을 조사했습니다.

이 조사 결과에 따르면 2017년은 2.63억대로 전년비 2% 정도 출하량이 감소할 것으로 예상되었으며 2018년은 2.65억대로 보합 수준인 1%정도는 성장하며,2019년에는 2.69억대로 2% 성장할 것으로 예상했습니다.

전통적인 데스크탑 PC 출하량은 2018년 4.4% 하락할것이며 노트북 및 프리미엄 울트라모바일 노트북은
2018년 모바일폰(스마트폰+피처폰)은 19.3억대가 출하 예상되어 2017년 비 2.3% 성장할 것으로 예상했습니다.

반면 프리미엄 울트라모바일스 제품군은 2017년 18%, 2018년 19% 그리고 2019년에는 16%로 꾸준히 성장할 것으로 예상되었습니다.

아래는 가트너에서 발표한 2016년에서 2019년까지 PC 출하량 예측치입니다.

Device Type 2016 2017 2018 2019
Traditional PCs (Desk-Based and Notebook) 220 204 195 188
Ultramobiles (Premium) 50 59 70 81
Total PC Market) 270 263 265 269

2. 2018년, 2019년 PC 시장 성장 요인

가트너의 예츨에 따르면 2012년부터 계속해서 내리막을 걸었던 PC 시장은 2018년붙 반등을 시도해 1~2% 성장할 것으로 예상되고 있습니다.
이렇게 하락을 멈추고 보합이상으로 수요가 늘어나는 이유는 무엇일까요?

먼저 기업용 PC수요가 2017년말부터 성장세로 전활 것으로 예상되고 있습니다. 그것은 윈도우즈 10으로 운영체제 전환이 유럽을 비롯한 많은 지역에서 가속화되면서 수요를 끌어올린 것으로 보입니다.

가트너는 2017년 가파른 PC부품 가격 상승에도 불구하고 2017년 윈도우즈 10으로 전환이 안정적으로 이루어지고 있다고 분석하고 있습니다. 이러한 추세가 이어저 2018년에는 0.8% 성장할 것으로 보입니다.

러시아 경제 회복에 따른 기업용 PC 시장 성장

이러한 PC 시장 성장을 이끄는 요인중의 하나는 러시아 시장입니다. 러시아 경제 회복에 따라 2017년 러시아 기업용 시장 수요가 5% 상승하였습니다.
이러한 러시아에서 성장 추세는 2018년에도 계속 이어질것으로 보입니다.

Featured_러시아 모스크바 야경 moscow-2391177

중국 PC 수요의 확대

2017년 중국에서 윈도우즈 10으로 전환은 보안과 개인정보의 이슈로 지연되었는데요. 마이크로소프사는 중국 정부와 협의해 중국 정부가 승인한 윈도우즈 10 버젼을 출시했습니다.

이런한 요인들로 2018년 PC 시장은 성장으로 전환이 얘상되어 2019년까지 성장할 것으로 보입니다.

Featured_중국 컴퓨터 학생classroom-467730

3. 중장기 PC 수요 그래프

가트너의 2019년까지 PC 수요 자료를 토대로 2000년부터 2019년까지 중장기 PC 수요 그래프를 그려 보았습니다. 이에 따르면 2002년부터 성빠르게 성장해온 PC 수요는 2011년 3.65어대를 정점으로 빠르게 하락해 2017년까지 지속 하락하였습니다.

위에서 분석한대로 윈도우즈 10 운영체제로의 전환이 가속화되고 러시아 및 중국에서 수요가 증대함에 따라 2018년, 2019년 성장이 예상됩니다.

▽ 2000년 ~ 2019년까지 중장기 PC 시장 수요 트렌드 by 가트너,
그래프 by Happist

PC 시장 수요 트렌드 by 가트너

PC 시장과 관련된 아래 글들도 참조해 보세요.

어떻게 HP는 PC 시장 1위를 되찾을 수 있었을까? 제품 혁신과 미국 시장 장악

2017년 2분기 세계 PC 시장 점유율 추이 – HP가 왕좌를 굳게 지키다.

PC 시장 규모 및 메이커별 시장점유율 추이.

뉴스를 돈내고 보는 시대가 올까? 미국의 미디어 유료 구독 증가에서 얻는 인사이트

0

중국에서 뉴스 큐레이션서비스가 각광을 받고 있으며(중국 젊은이들은 자신만이 볼수 있는 또는 자기에게 맞춘) 고급 전문정보에대한 니즈가 강하고 이를 위해서는 기꺼이 지갑을 열고 있다고 합니다.

미국도 뉴스를 공짜 서비스가 아니라 유료 가치가 있는 컨텐츠로 인식하는 경향이 높아지고 있습니다. 이에 대해서 미국 정치전문지인 POLITICO(폴리티코)는 최근 미국 밀레니얼 세대들이 유료 뉴스 구독을 크게 늘리고 있다며 이에 대한
분석을 제시했습니다.

1. POLITICO(폴리티코), 젊은 구독자들이 구 미디어로 몰려들고 있다.

Young subscribers flock to old media

폴리티코 온라인 기사 캡춰

트럼프 대통령이 언론에 대한 전쟁을 지속하면서 밀레니얼 세대들의 기존 미디어에 대한 구독이 증가하고 있습니다. 이들 세대의 구독 증가세는 기존 세대에 비해 월등히 높습니다.
2016년 11월 미 대통령선거 이후 잡지 뉴욕커(Newyorker)는 1년전 동기간에 비해 밀레니얼 구독자가 두배이상 증가하였습니다. 이 잡지의 통계에 따르면 18~34세의 구독자는 106% 증가했으며 이 중 25~34세는 129% 증가했습니다.
The Atlantic도 비슷합니다. 18~24세 구독자가 130% 증가했고 18~44세 전체는 70% 증가했습니다.

워싱턴포스트지와 뉴욕타임즈와 같은 신문은 특별한 구독자 데이타를 공유하지는 않지만 워싱턴 포스트 대변인에 따르면 밀레니얼 세대으ㅟ 가입 증가율이 가장 높다고합니다. 뉴욕타임즈관계도 비슷한 경향을 보이며 밀레니얼들에게 노출되는 디지탈 트래픽이 1년전에 비해서 9% 증가했다고 밝혔습니다.

월스트리트 저널조차 학생 가입자를 두배로 늘렸다고 밝히고 있습니다. 그리고 이코노미스트지는 18~24세 그룹과 25~34세 그룹에서 신규 가입이 성장의 핵심 동인이 되고 있다고 합니다.

1.1. 밀레니얼 세대에서 유료구독이 증가하는 이유

밀레니얼 세대는 오랬동안 뉴스에 비용을 지불하지 않을 것으로 파악되어 왔습니다. 그러나 Reuters Institute’s Digital News Report에 따르면 몇가지 변화가 일어나고 있다고 합니다,

첫번째 요인은 유료 구독 경험의 증가

이러한 변화의 첫번째는 넷플릭스, 훌루 그리고 스포티파이같은 구독형 스트리밍 서비스 구독 경험이 양질의 컨텐츠에 점차 돈을 지불하게 되었다는 것입니다.

▽ 비디오 스트리밍 서비스 선두주자 넷플릭스의 자체 제작 드라마중 가장 유명한 하우스 우브 카드 house of Cards

넷플릭스 자체 제작 드라마중 가장 유명한 하우스 우브 카드 house of Cards

두번째 요인은 트럼프

Reuters Institute가 지난 여름 36 개국에서 7 만명이 넘는 사람들을 대상으로 조사한 보고서에 따르면, 미국은 2016년 온라인 뉴스를 유료 구독한 비율이 증가한 유일한 나라였습니다. 2016년에 9% 증가했고 2017년에는 16% 증가했는데 이는 밀레니얼 세대 역활이 컸습니다.

2016년에서 2017년 사이에 온라인 뉴스를 구독한 미국인 18-24 세의 점유율은 4%에서 18%로 상승했고 25-34세는 8%에서 20%로 증가해 이 두 집단의 전체 시장에 차지하는 비중은 30%에 달합니다.

잡지 New Yorker가 공개한 통계에 따르면 ‘트럼프 효과(Trump bump)’는 모든 연령대에 존재했습니다. ‘트럼프 효과(Trump bump)’는 미디어들이 트럼프 대통령에게 욕을 먹으면 오히려 구독률이나 시청률이 올라가는 현상을 일컫는 용어이다. 로이터 연구소 (Reuters Institute) 보고서에서 밀레니얼들은 다른 세대들보다 세 배 빠른 속도로 증가했으나 다른 어느 그룹도 온라인 뉴스를 구독하는 비율이 높지는 않았습니다.
로이터 연구소 (Reuters Institute)는 미국에서 유료 구독자의 수 증가는 주로 트럼프에 반대하는 사람들과 젊은층에 이해서 주도되고 있으며 트럼프에 반대해 기존 저널리즘을 지키기 위해 유료 구독으로 눈을 돌리고 있다고 분석하고 있습니다.

도널드 트럼프

1.2. 뉴스 브랜드 정체성이 중요하다.

노스 웨스턴 Medill School of Journalism의 Stephanie Edgerly 교수는 젊은 사람들이 뉴스에 어떻게 관심을 가지는지 연구했습니다. “NPR 토트 가방이 큰 이유이고 뉴요커가 핫한 상품으로 여겨지는 가방을 지녔던 이유입니다. 뉴스는 브랜드이며, 당신이 자신과 연관시키고 싶어하는 특정 유형의 가치를 상징하며, 현재의 정치 환경에서 이는 더욱 중요해졌다.“ 이야기 합니다.

이는 라이프 스타일 가치를 의미하고 당신이 예술을 소중히 여기는 사회적으로 의식있는 지식인인지 또는 아해하기 어려운 정치적 논쟁을 알고 있는 까다로운 소수 반대자로 인식되기를 원하는지 여부를 나타냅니다.
예를 들어 the Atlantic을 페이스북에서 공유하는 고등학생일지라도 이를 공유할 때 세상을 더 깊고 비판적으로 고민하고 있다는 신호를 보낸다는 것입니다.

▽ NPR 토트백

NPR 토트백 NPR tote bag2

1.3. 이러한 경향이 지속될 수 있을까?

트럼프 시대에 New Yorker나 The Atlantic이 저항의 직은 징조로 작용해 구독을 증가시킬 수 있지만 이러한 흐름이 지속될 것인가에 대한 의문은 있습니다.

로이터 연구소 (Reuters Institute)의 뉴먼 (Newman)은 트럼프 효과 (Trump effect)가 사라지더라도 밀레니엄 세대가 뉴스 서브스에 유료 가입하는 경향이 지속될 등정적인 신호가 있다고 합니다.

그것은 음악과 비디오 스트리밍 서비스에 비용을 지불하려는 사람들과 뉴스에 비용을 지불 할 의사가있는 사람들 사이에는 강한 상관 관계가 있다는 것입니다. 다른 온라인 서비스는 근본적으로 사람들에게 구독이 무엇인지 알려주고 그 경험이 영향을 미친다는 것입니다.

미국인의 84%는 온라인 뉴스에 비용을 지불하지 않지만 구독 비용이 결코 저렴하지 않지만 질 높은 저널리즘이 점차 엘리트 제품이 될 가능성이 있다는 것입니다.

2. 마치며

간단히 살펴보았지만 질 좋은 컨텐츠라면 인터넷 시대의 공유 정신에서 비롯된 공짜의식에서 벗어나 유료 구독자를 모을 수 있는 타당한 이유가 된다는 것이며, 이는 자신을 나타낼 수 있는 독보적인 브랜드 정체성을 갖춘 매체만이 살아남을수 있다는 교훈을 주는 것 같습니다.
인터넷이 만연한 이 시기 구 미디어에 대한 구독의 증가는 기존 인터넷에서 제공해주지 못하는 또는 제공하기 어려운 고품질 컨텐츠를 한군데서 쉽게 볼 수 있다는 장점이 다시 부각되는 것으로 보입니다.

인터넷 정보의 홍수속에서 쓸만한 정보를 찾아 헤매는 현대인에게 자신에게 맞는 니즈를 충족해줄 수 있는 고품질 고품격 컨테츠를 골라 제공해줄 수 있는 큐레이션은 앞으로도 각광을 받을 수밖에 없는 서비스가 될 것입니다.
이러한 조건들이 구비된다면 너무 대체제가 많아 공짜로도 인식되는 뉴스도 한국에서도 그 가치를 인정받는 시기가 올것입니다. 뭐 조금 시간이 많이 걸리겠지만…..

2018년 모바일폰 시장 예측 – 스마트폰 6%로 성장세 전환 by가트너

0

2017년이 막바지에 접어들면서 2018년에 대한 예측들이 나오고 있습니다.

가트너는 PC 및 모바일폰 출하량 예측치를 발표했습니다. Gartner Says Worldwide Device Shipments Will Increase 2 Percent in 2018, Reaching Highest Year-Over-Year Growth Since 2015가 그것인데요.
가트너는 전 셰계 소비자를 대상으로 온라인 조사를 토대로 PC와 모바일폰(스마트폰+피처폰)에 대한 수요를 예측했습니다. 조사는 2017년 6월 ~ 7월사이에 미국, 영국, 독일, 중국. 인도등에서 약 만 6천 537명을 조사했습니다.

이 조사 결과에 따르면 2018년 모바일폰(스마트폰+피처폰)은 19.3억대가 출하 예상되어 2017년 비 2.3% 성장할 것으로 예상했습니다.

프리미엄 수요를 촉발할 애플 아이폰 X 공급차질은 수요를 2018년으로 전전시키고 있다.
급격한 부품 가격 인상은 저가 시장에서 가격 전쟁을 자제토록 만들어 저가 수요가 감소하였다.
결국 프리미엄 수요의 2018년으로 이전 및 저가 시장 수요 위축이 2017년 수요 감소의 요인이자 2018년 수요 증가의 원인이다.

Device Type 2016 2017 2018 2019
Traditional PCs (Desk-Based and Notebook) 220 204 195 188
Ultramobiles (Premium) 50 59 70 81
Total PC Market) 270 263 265 269
Ultramobiles (Basic and Utility) 169 162 161 160
Computing Device Market 439 425 426 429
Mobile Phonest 1,893 1,882 1,926 1,932
Total Device Market 2,332 2,307 2,352 2,361

이를 토대로 기존에 가트너가 발표했던 과거 데이타와 합쳐서 애플 아이폰이 출시된 1997년부터 모바일폰(스마트폰+피처폰)의 수요 추이를 그려보면 아래와 같은 모습을 보여줍니다.

▽ 가트너가 발표한 2019년까지 모바일폰(스마트폰+피처폰) 출하량 예측, 단위 백만대, 그래프 by Happist

가트너 스마트폰 전망(2017년 10월 업데이트)

2018년 모바일폰(스마트폰+피처폰) 시장에 대해서 가트너는 전년대비 2.3% 성장이 예상되어 2016년 및 2017년 연속 출하량 감소에서 벗어나 3년만에 성장세로 전환될 것으로 예상하였습니다.

2018년 모바일폰(스마트폰+피처폰) 수요 중 스마트폰은 86%를 차지할 것이며 스마트폰의 성장율은 무려 6%에 달할 것으로 보았습니다. 이러한 스마트폰의 성장을 견인하는 것은 애플 아이폰 X로 비싼 가격에도 불구하고 북미와 중국 그리고 구주에서 아이폰 X가 큰 인기를 끌면서 수요를 견인할 것으로 보았습니다. 애플 아이폰 X의 수요 견인은 아이폰 교체 수요가 그만큰 강력하기 때문으로 설명하고 있습니다. (제품력보다는??)

애플 아이폰 X가 2017년 4분기 출시되지만 부품 공급이 원활하지 않아서 충분한 수요를 대응하지 못할 것이고 이러한 수요는 2018년 수요로 전이되면서 2018년 스마트폰 수요가 6% 크게 증가하는 원인으로 분석되었습니다.

또한 2017년 모바일폰(스마트폰+피처폰) 수요의 감소는 저가 스마트폰 시장 수요의 감소에서 비롯되었고 이 시장에서는 로컬 업체와 글로벌 탑 플레이어간 수요 챙탈전이 치열한 곳이지만 급격한 부품 가격의 상승은 일부 모바일폰 제조업체의 가격 경쟁력을 약화시켜 공격적인 가격전쟁이 다소 약화되었다고 보고 있습니다. 즉 부품 가격의 상승은 저가 수요 촉발을 위한 가격 프로모션이 약화되면서 수요가 감소했다는 것입니다.

스마트폰 시장 수요 및 시장점유율 관련해서는 아래 글들을 참조하세요.

모바일폰(피처폰+스마트폰) 시장규모 추이와 브랜드별 스마트폰 시장점유율 추이

[2017년 2분기] 세계 스마트폰 시장 점유율 추이 – 삼성의 안정적 리딩 , 화훼이 등 중국업체의 약진

[2017년 1분기] 세계 스마트폰 시장 점유율 추이 – 삼성의 왕좌 복귀, 화훼이와 오포 등 중국업체의 약진

[2016년 4분기]세계 스마트폰 시장 점유율 추이 – 애플의 왕좌 등극, 삼성 몰락의 가시화 그리고 화훼이 점유율 10% 돌파

[2016년 3분기 업데이트]세계 스마트폰 시장 점유율 추이 – 삼성 몰락의 전조(?) 그리고 여전한 중국 업체의 추격

[2016년 2분기 업데이트]세계 스마트폰 시장 점유율 추이 – 삼성이 선두지만 화웨이의 추격이 거세다

LG 스마트폰 실패에서 배우는LG G6 성공 요인 – G6 제품 컨셉과 마케팅에 대한 소고

다시 복기해 보는 노키아 몰락의 이유, 시장과의 정면 승부를 피한 혹독한 댓가

삼성은 어떻게 스마트폰 시장을 따라 잡았을까? 삼성의 성과와 한계를 생각해 본다

갤럭시 노트7 발화사건 그리고 삼성 스마트폰 점유율

사이트 운영을 위한 안내 – 웹서버 세팅에서 워드프레스 설치까지(우분투 17.10, NGINX 1.13.6, Marian DB 10.2, PHP7.2)

사이트가 문제가 있어서 서버부터 워드프레스까지 전부 새로 설치를 했다. 그렇지만 워드프레스 데이타베이스를 그대로 사용했으니 완전한 클린 설치라고는 할 수 없을 것 같긴하다.

그 전 단계를 간략히 정리해 본다. 다음부터는 이를 참조하면 단기간애 서버 설치에서 워드프레스 설치까지 할 수 있을 것 같다. 설치하면서 여기저기 자료를 참조하기가 너무 힘들어서 한번에 참조할 수 있는 자료가 있었으면 좋겠다는 생각을 했다. 그 마스터 자료로 앞으로 개인적으로 활용하고자 한다.

여기서는 우분투 17.10을 기반으로 Nginx 1.13.6, PHP7.1.10, Marian DB 10.2와 같은 웹서버 기본 세팅과 가장 기본적인 보안 설정, 사이트 속도를 올려줄 ngx_pagespeed 설치, Lets’ Encrypt SSL 인증서 설치 그리고 워드프레스 설치의 모든 단계를 짚어 보았다.

1. 우분투 17.10을 선택하다.

우분투를 어떤 버젼을 적용할지 많른 고민을 했다. 장기전인 운용을 염두에 둔다면 16.04버젼을 사용해야 한다. 그렇지만 최신 소프트웨어를 사용해야 직성이 풀리는 본인으로서는 가장 최근 2017년 10월 20일 발표된 17.10 코드명 Artful Aardvark을 적용하였다.

여기 엡서버 세팅은 라엘님의 안내서를 기반으로 최신 버젼으로 바뀐 부분들은 구글링을 자료를 기반으로 업데이트 했다.

아래는 주로 참조했던 자료들이다.

Lael, Ubuntu 16.04 LTS 웹서버 세팅방법 (Nginx + PHP7-FPM + MariaDB)

Install PHP 7.1 with Nginx on an Ubuntu 16.04 VPS

Amir Alamani, How to install MariaDB 10 on Ubuntu 16 & Debian 8)

내가 사용하고 있는 Vultr(아마 다른 가상서버호스팅도 마찬가지)에서는 운영 체제를 선택하면 자동으로 운영체제까지는 자동으로 설치하고 그 이후부턱 개인이 작업 할 수 있도록 해준다.

아래 단계는 운영 체제가 설치된 상황하에서 NGINX 서버 등 관련 소프트웨어를 설치하는 과정을 정리하였다.

1.1. 쉘 기본 언어값 확인

제일 먼저 쉘 기본 언어값 확인한다. apache2 명령어을 적용 시 영어로만 나오면 그냥 넘어가고 중국어나 일본어 나온다면 영어로 바꾸어야 한다.

이번 작업의 경우 아래처럼 영어로 나와서 넘어간다.

# apache2
The program 'apache2' is currently not installed. You can install it by typicdng : 
apt install apache2-bin
Code language: PHP (php)

만약 영어가 아닌 다른 언어가 나온다면 /etc/default/locale 의 파일 내용을 변경한다.

# vi /etc/default/locale
Code language: PHP (php)

에서 아래 내용을 반영한다.

LANG="en_US.UTF-8"
LANGUAGE="en"
Code language: PHP (php)

1.2. 현 운영체제의 프로그램을 최신으로 업데이트

# apt-get update
# apt-get upgrade -y
Code language: PHP (php)

1.3. 시스템 시간 설정

dpkg-reconfigure tzdata
Code language: PHP (php)

GUI 환경에서 Asia를 선택하고 이어서 Seoul을 선택한다.

서버 시간 세팅_Seoul

그러면 아래와 같은 결과를 출력한다.

Current default time zone: 'Asia/Seoul'
Local time is now:      Sat Oct 14 16:24:42 KST 2017.
Universal Time is now:  Sat Oct 14 07:24:42 UTC 2017.
Code language: PHP (php)

1.4. 메일 발송프로그램 설치하기

메일을 발송할 수 있는 sendmail 프로그램을 설치, 압축 해제 프로그램 그리고 SSL을 위한 letsencrypt도 같이 설치하자. 뒤에서 나오는 작업을 하다보면 설치하라고 나오는 프로그램들이다.

메일 발송 프로그램은 시간이 조금 걸린다. 인내를 가지고 기다려야 한다.

apt-get install sendmail -y
apt install unzip
apt install letsencrypt -y
Code language: PHP (php)

그러나 보안상의 이유로 메일 발송 프로그앰은 서버에서 사용하지말라는 권고가 많으므로 참고하길..

1.5. APT 소스리스트 파일에 Nginx, PHP, MariaDB 저장소 추가

sources.list를 열어서 파일 맨 끝에 소스리스트를 추가

# vi /etc/apt/sources.list
Code language: PHP (php)

파일 맨 끝에 아래 내용 추가

# Nginx
deb https://packages.nginx.org/unit/ubuntu/ artful unit
deb-src https://packages.nginx.org/unit/ubuntu/ artful unit

# MariaDB 10.2 repository list - created 2018-01-11 12:11 UTC
# http://downloads.mariadb.org/mariadb/repositories/
deb [arch=amd64,i386] http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu artful main
deb-src http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu artful main
Code language: PHP (php)

1.6. 각 저장소 보안키 다운로드 후 시스템에 등록

nginx 보안키 다운로드 후 적용한다.

cd /root
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
rm nginx_signing.key
Code language: PHP (php)

다음으로는 MariaDB 보안키 다운로드 후 적용.

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Code language: PHP (php)

다음으로는 PHP 저장소 추가 및 보안키 등록

# apt-get install software-properties-common
# add-apt-repository ppa:ondrej/php
Code language: PHP (php)

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
Code language: PHP (php)

여기서 엔터를 눌러주면 된다..

추가된 보안키 목록을 보려면 아내 명령어를 이용한다,

# apt-key list
Code language: PHP (php)
/etc/apt/trusted.gpg
--------------------
pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62
uid           [ unknown] nginx signing key <signing-key@nginx.com>

pub   rsa4096 2016-03-30 [SC]
      177F 4010 FE56 CA33 3630  0305 F165 6F24 C74C D1D8
uid           [ unknown] MariaDB Signing Key <signing-key@mariadb.org>
sub   rsa4096 2016-03-30 [E]

/etc/apt/trusted.gpg.d/ondrej_ubuntu_php.gpg
--------------------------------------------
pub   rsa1024 2009-01-26 [SC]
      14AA 40EC 0831 7567 56D7  F66C 4F4E A0AA E526 7A6C
uid           [ unknown] Launchpad PPA for Ondřej Surý

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      790B C727 7767 219C 42C8  6F93 3B4F E6AC C0B2 1F32
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>
Code language: PHP (php)

지금까지 작업한 APT 패키지 정보를 업데이트 한다.

# apt-get update
Code language: PHP (php)

2. Nginx 설치

Nginx를 설치하고 nginx를 다시 가동(restart)시킨다.

# apt-get install nginx

# service nginx restart
# nginx -v  // Version check
Code language: PHP (php)

2017년 10월 23일 현재 설치 버젼을 체크해 보니 1.13.6이 나온다

3. PHP 7.2치

PHP7-FPM 최신버전인 PHP7.2를 설치한다. 2018년 1월 11일 현재 최신 버젼은 PHP7.2.1이다..

PHP 최신 다운로드 버젼 확인 하러 가기

# apt-get install php7.2
Code language: PHP (php)

PHP7,2을 설치하고나서 관련 모듈을 설치한다. 이 과정에서 일반적으로 널리 사용되는 모듈 list가 많이 돌아다니고 있으므로 이를 기준으로 설치해도 되고, 아니면 PHP7,2 모듈 패키지 리스트를 보고 선택을 다시 할 수도 있다.

아래 명령은 PHP 7.2 modules 리스트를 알려주는데 이를 보고 추가할 모듈 패키지가 있는지 볼 수 있다.

# apt-cache search php7.2
Code language: PHP (php)

위 명령을 내리면 아래와 같은 list가 쭈욱 나온다. 여기를 보고 추가할 모듈 리스트를 추가한다. 그렇지만 대개는 일반적으로 필요하다고 이야기되는 리스트 중심으로 설치하기 마련이다.

PHP 패키지 리스트가 출력된 모습1

그 다음으로는 일반적인 PHP 모듈을 설치한다. Install most commonly used modules

# apt-get install php7.2 php7.2-fpm php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-mysql php7.2-mbstring php7.2-mcrypt php7.2-zip php7.2-fpm  php7.2-gd php7.2-curl php7.2-xml php7.2-mcrypt php7.2-readline
Code language: PHP (php)

php.ini 파일 수정

파일 수정은 fpm과 cli 폴더의 php.ini를 모두 수정해 주어야 한다.

  • 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
Code language: PHP (php)

아래 변경 결과

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Seoul
Code language: PHP (php)

PHP 기본 세팅의 변경,

아래는 PHP 기본 세팅을 변경하는 명령어인데 제한적이지만 작용은 한다. 단 cli폴더와 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
Code language: PHP (php)

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는 삭제한다. (이 파일은 없는 경우도 있다)

[www]
user = www-data
group = www-data
listen = /run/php/php7.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 200
pm.start_servers = 15
pm.min_spare_servers = 10
pm.max_spare_servers = 100

pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

php_admin_value[post_max_size] = 1024M
php_admin_value[upload_max_filesize] = 1024M
Code language: PHP (php)

php.ini 파일 수정이 끝나면 PHP-FPM service를 다시 시작한다.

# systemctl restart php7.2-fpm.service
Code language: PHP (php)

4. MariaDB 설치

안정화된 MariaDB는 10.2까지 출시되어 있었다.(2017년 10월 20일)

MariaDB Downloads, Setting up MariaDB Repositories

4.1. MariaDB 10.2 설치 준비

앞에서 저장소와 키를 등록했으므로 간단하게 아래 명령으로 MariaDB를 설치할 수 있다.

# apt-get update
# apt-get -y install mariadb-server
Code language: PHP (php)

아래는 MariaDB 재단에서 제공하는 Ubuntu 17.10에서 MariaDB를 설치하는 명령어이다.
에서서 PPA와 키를 등록하지 않았다면 아래 명령을 사용해도 좋다.

# apt-get install software-properties-common
# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386] http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu artful main'
Code language: PHP (php)

만약 운영체제가 널리 사용되는 우분투 16.04이라면 아래와 같다.
앞의 두분은 같고 마지막 세줄만은 artful을 xenial로 바뀐다.

# apt-get install software-properties-common
# apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu xenial main'
Code language: PHP (php)

4.2. MariaDB 10.2 설치

위에서 키와 저장소 정보를 가져오게 되면 아래 명령어로 MariaDB를 설치할 수 있다.

# apt update
# apt -y install mariadb-server
Code language: PHP (php)

설치 도중에 New password를 설정하는 화면이 나온다. 설치가 완료된 후 서비스 상태를 확인할 수 있다,

# service mysql status
Code language: PHP (php)

4.3. PHP-FPM에 DB 연동관련 모듈설치

# apt-get install php7.2-mysql
Code language: PHP (php)

기본 언어셋 설정

이는 매우 중요한 세팅으로 반드시 필요하다.

# vi /etc/mysql/conf.d/mariadb.cnf
Code language: PHP (php)

아래 내용으로 변경한다.

# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf

Code language: PHP (php)

[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
Code language: PHP (php)

1.8.2. Nginx 와 PHP-FPM 연결

nginx는 기본적으로 nginx 사용자 권한으로 실행되고, PHP-FPM 프로그램은 기본적으로 www-data 사용자 권한으로 실행되므로 둘의 사용자 권한을 www-data로 일치시킨다.

vi /etc/nginx/nginx.conf
Code language: PHP (php)
  • user nginx; 를 user www-data; 로 변경
  • worker_processes 1; 를 worker_processes auto; 로 바꾼다. 고사양 서버에서 성능이 더 좋아진다고. 일반적으로 트래픽이 적은면 1을 사용하고 트래픽이 많아지면 auto를 사용한다.
service nginx restart
Code language: PHP (php)
vi /etc/nginx/conf.d/default.conf
Code language: PHP (php)
fastcgi_params 내용 수정

fastcgi_params를 열어서 아래 내용으로 변경한다.

vi /etc/nginx/fastcgi_params
Code language: PHP (php)

아래와 같이 변경

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;

fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;

fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;

fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;

fastcgi_param   HTTPS                   $https;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;
Code language: PHP (php)

5. 웹서버 보안 설정

보안에 대해서는 아래 내용을 참조하라

가상서버호스팅에서 서버 보안 설정 방법 – Nginx +Ubuntu 16.04의 경우

랜섬웨어 대응, 서버 및 워드프레스 필수 보안 설정 15가지

가장 기본이 되는 방화벽 설정이다.

  • 일반 및 SSL 설치 시 작동 가능토록 80, 443포트는 열어둔다.
  • ssh에서 널리 알려진 22포트는 해킹의 집중 대상이 되므로 자신많이 알수 있는 포트를 바꾼다. 이 작업은 sshd_config에서 사용할 포트를 지정해야 한다.
  • /etc/ssh/sshd_config 에서 Port 22 를 찾아서 자기가 사용할 포트 숫자를 기억하기 쉽고 10000자리이상에서 임의의 숫자를선택한다. 예를 들어 58722, 65322 등등
ufw enable  # 방화벽을 활성화한다.
ufw allow 80/tcp  # 일반 웹 정보 관련 입출력 통로
ufw allow 443/tcp  # SSL 설치 시 웹정보 관련 입출력 통로 
ufw allow ****/tcp  # ssh용 신규 포트
ufw deny 22/tcp  # ssh용으로 22포트를 사용할 수 없게 한다.
Code language: PHP (php)

6. ngx_pagespeed 설정

워드프레스 속도를 빠르게 만들기위해 구글에서 만든 ngx_pagespeed를 설치한다. 이것을 설치 시 구글 어낼리틱스 코드를 추가하면 별도로 워드프레스에서 구글 어낼리틱스 관련 작업할 필요가 없다.
또 이미지 압축이나 CSS 압축등의 기존 캐시 프로그램이 하는 일들을 대신해 준다. 그외 여러가지 기능이 있다.
add

6.1. 작업 폴더로 이동하기

아래 작업 방식은 아래를 주로 참조하였다,

[워드프레스 속도 개선] Nginx에 페이지스피드(mod_PageSpeed)설치 방법 두번째

그리고 위의 글도 이 방식을 소개한 우성군의 글에서 대부분의 생각을 빌려왔다.

우성군, Nginx PageSpeed 모듈 설치하기

자기가 작업할 폴더로 이동한다,

cd /usr/local/src
Code language: PHP (php)

6.2. ngx_pagespeed 소스 다운 받기

소스를 받으려면 최신 버젼 확인해야 한다. 아래로 들어가서 최신 버젼 확인

최신 버젼 확인 PageSpeed Release Notes

2017년 10월 14일 현재 최신 버젼은 1.12.34.3-stable임을 알 수 있다.

앞으로 1.12.34.3버젼을 많이 사용할 것이므로 이를 연결하는 명령을 준다. NPS_VERSION을 적용하면 이곳은 1.12.34.3로 인식한다고

NPS_VERSION=1.12.34.3
Code language: PHP (php)

아래 ngx_pagespeed 소스 받는 명령어

wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}-stable.zip

unzip v${NPS_VERSION}-stable.zip

rm -f v${NPS_VERSION}-stable.zip

cd ngx_pagespeed-${NPS_VERSION}-stable/

psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.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})

cd ../
Code language: PHP (php)

6.3. Nginx 소스 컴파일 설치

이제 Nginx모듈을 설치하자. 작업 폴더로 이동해 기본 필수 패키지를 설치한다..

cd /usr/local/src 
apt-get -y install build-essential libpcre3 libpcre3-dev zlib1g-dev unzip git
Code language: PHP (php)

Nginx 소스 파일을 다운받는다. 작업 당시 최신버젼은 1.13.6이었다. 버젼이 바뀌면 바뀐 버젼으로 변경

wget -c https://nginx.org/download/nginx-1.13.6.tar.gz

tar zxf nginx-1.13.6.tar.gz

rm -f nginx-1.13.6.tar.gz
Code language: PHP (php)

6.4. Nginx 컴파일을 설치

  • root로 이동, 불필요한 문제를 만들지 않기 위해 루트에서 작업
  • 먼저 몇가지 필요한 라이브러리를 설치
  • Nginx 최신 버젼을 받아 놓은 곳으로 이동
  • 여러가지 모듈을 같이 설치

ngx_pagespeed만 설치할수도 있는데 단독 설치 시 제대로 설치된 않는 경우가 있어서(아마 어디서 출돌이 생기는지 모르겠음) 같이 설치함

cd ~ # 루트로 이동

apt -y install libperl-dev libpcre3 libpcre3-dev libssl-dev openssl libgd2-xpm-dev libgeoip-dev zlib1g-dev libxslt-dev

cd /usr/local/src/nginx-1.13.6

./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-http_perl_module=dynamic --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=../ngx_pagespeed-${NPS_VERSION}-stable ${PS_NGX_EXTRA_FLAGS}


make install
Code language: PHP (php)

6.5. 최적화 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;
Code language: PHP (php)

6.6. ngx_pagespeed 설치 유무 간단 확인

ngx_pagespeed가 설치되었는지 간단히 확인하는 방법이다.
nginx -V(대문자)를 치면 시스템에 설치된 nginx 관련 모듈 리스트가 뜨는데 여기에 ngx_pagespeed가 나오면 제대로 설치된 것이다.

nginx -V
Code language: PHP (php)

그러면 아래와 같은 모듈 리스트가 뜬다. 여기에 ngx_pagespeed가 있는지 확인해 보자.

nginx version: nginx/1.13.6
built by gcc 7.2.0 (Ubuntu 7.2.0-8ubuntu3) 
built with OpenSSL 1.1.0f  25 May 2017
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-http_perl_module=dynamic --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=../ngx_pagespeed-1.12.34.3-stable
Code language: PHP (php)

7. Let’s Encrypt 무료 SSL인증서 발급

보안의 일종으로 Let’s Encrypt 무료 SSL인증서 발급해 보자. 이 글은 주로 아래 글을 참조하였다.

[워드프레스 Tips] Let’s Encrypt 무료 SSL인증서 발급 및 자동 갱신 방법

[워드프레스 Tips] Lets’ Encrypt SSL 인증서 수동 갱신 방법

7.1. git 설치하고 certbot설치 하기

첫째 /root에서 작업을 진행할 수 있게 /root로 이동한다.

둘째, 필요한 소프트웨어를 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 설치
Code language: PHP (php)

7.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를 가동시킴
Code language: PHP (php)

인증시 이메일주소를 입력 후 적용하고 싶은 사이트 주소를 입력하게 끔 되어 있는데 큰 어려움은 없이 진행된다.

4.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  # 세션 티켓키도 생성 이는 시간이 거의 걸리지 않는다.
Code language: PHP (php)

7.3. 암호화 알고리즘 설정하기

인증서를 획득하는게 중요한게 아니고 얼마나 철저한 암호화 설정을 하느냐가 중요하기에 암호화 알고리즘을 적용한다.

아래는 시스템에 적용된 암호화 알고리즘들이다.

# 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';
Code language: PHP (php)

참고 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

이메세지가 무엇일까 구글링해보니 Let’s Encrypt SSL인증서는 5회 발급으로 제한되어 있다고 한다. Let’s Encrypt SSL인증서없이 서버를 테스트해보고 충분하다싶으면 Let’s Encrypt SSL인증서를 발급받는게 좋을 듯..

8. 워드프레스 설치

이제 워드프레스를 설치해보자. 아래 내용은 아래 포스팅을 참조하여 일정부분 수정하였다.

[워드프레스 Tips] 가상서버호스팅(VPS)에서 워드프레스 설치하기

8.1. 가상호스트 루트 폴더(document root) 정하기

기본으로 우분투 16.04의 기본 디렉토리는 /usr/share/nginx/html/ 이다. 사람들의 취향에 따라서 다양한 위치에서 설치하고자하는 욕구가 있으나 보안이나 원인을 알수 없는 문제가 지속 발생하므로 가능하면 /usr/share/nginx/html/ 를 그냥 사용하는 게 좋다.

vultr에서 서버를 세팅하면 몇가지 우분투의 기본 위치는 아래와 같다.

  • 기본 루트 폴더(document root) 디렉토리는 /usr/share/nginx/html/
  • nginx 설정 파일 위치는 /etc/nginx/conf.d

8.2. 디렉토리 소유권 변경

다음으로는 기본 디렉토리의 소유권을 nginx 기본 사용자인 www-data에게 넘긴다.

# chown -R www-data:www-data /usr/share/nginx/html/
Code language: PHP (php)

8.3. 파일 권한 설정(필요 시)

위의 디렉토리 소유권 변경이 제대로 되었다면 파일 권한 설정이 필요없다. 권한 설정은 젣로 작동되지 않을때 강제로 파일 권한을 준다고 생각하고 권한을 강제 조정한다.

파일 권한을 확인해서 파일 권한을 755로 변경한다.

# chmod -R 755 /usr/share/nginx/html
Code language: PHP (php)

워드프레스 관련 디렉토리 소유권을 nginx인 www-data로 넘겼지만 가끔 플로그인들이 제대로 설치가 안되는 경우도 나타납니다. 이럴경우 파일 권한을 더 정확히 줍니다. 아래 폴더들은 디렉토리에 파일을 써야하므로(설치) 일정 권한이 필요합니다.

  • wordpress 폴더
  • wp-content/
  • wp-content/plugins/
  • wp-content/uploads
  • wp-content/upgrade/ (워드프레스 코어 업그레이드 필요)

이러한 폴더들에 대해서는 파일 권한을 확인해서 파일 권한을 755로 변경한다.

chmod 755 /usr/share/nginx/html/
chmod 755 /usr/share/nginx/html/wp-content/
chmod 755 /usr/share/nginx/html/wp-content/themes/
chmod 755 /usr/share/nginx/html/wp-content/plugins/
chmod 755 /usr/share/nginx/html/wp-content/uploads/
chmod 755 /usr/share/nginx/html/wp-content/upgrade/
Code language: PHP (php)

이렇게 선별적으로 권한 변경을 하는게 조금 더 안정적일 수 있는데 귀찮다면 -R옵션을 사용해 일괄 변경하는 방법도 있다.

8.4. Nginx 가상호스트 설정 파일을 생성, 작성

이 단계이후 할일은 Nginx 가상호스트 설정 파일에 이 새로 만든 document root 위치를 반영 시켜주는 것이다.
이 설정은 우분투 버젼 16.04기준 /etc/nginx/conf.d라는 폴더에 있는 default 파일에서 수정 가능하다. 이렇게 할수도 있지만 멀티 사이트를 운영할 시 설정 파일이 너무 복잡해져서 혼란스럽지않게 사이트마다 별도 파일로 관리를 할 수 있다.

변경하기 전 default.conf 파일을 처음 열어보면 아래와 같은 내용을 볼 수 있는데 이 내용을 변경해서 각 사이트명+conf를 만들어 내용을 채워 넣는다.

각 도메일별 서버블록 파일을 만들어 /etc/nginx/conf.d에 올린다.

아래는 본인이 사용했던 설정이다.

server {
    listen       80;
    server_name test1.com www.test1.com;
    return       301 https://$server_name$request_uri;
    }

server {
    listen       443 ssl http2;
    server_name  test1.com www.test1.com;
    root   /usr/share/nginx/test1.com;

    #set same size as post_max_size(php.ini or php_admin_value).
    client_max_body_size 1024M;

    server_tokens off; # 버전 숨기기 활성화

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    charset utf-8;

    ssl_certificate /etc/letsencrypt/live/test1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/test1.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/test1.com/chain.pem; 

    ssl_dhparam /etc/nginx/ssl/dhparams.pem;

    # Enable HSTS. This forces SSL on clients that respect it, most modern browsers. The includeSubDomains flag is optional.
    add_header Strict-Transport-Security "max-age=31536000";

    # Set caches, protocols, and accepted ciphers. This config will merit an A+ SSL Labs score.
    #ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5';


    access_log /var/log/nginx/test1.com.access.log;
    error_log /var/log/nginx/test1.com.error.log warn;

    location / {
       try_files $uri $uri/ /index.php?$args;
       index index.php index.html index.htm;
    }

    location ~ /(\.|wp-config.php|readme.html|license.txt|wp-comments-post.php) { 
       deny all;
    }

    location ~ /\.(ht|git|svn) {
        deny all;
    }

    location ~ /.*\.(inc|ini|conf|cfg)$ {
        deny all;
    }

    #Block scripts from being run that shouldn’t be running
    location ~* .(pl|cgi|py|sh|lua)$ {
        return 444;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    #the site that should not be public
    location ~* wp-admin/includes { deny all; }
    location ~* wp-includes/theme-compat/ { deny all; }
    location ~* wp-includes/js/tinymce/langs/.*\.php { deny all; }
    location /wp-content/ { internal; }
    location /wp-includes/ { internal; }

    # Letsencrypt의 Webroot Plugin을 사용하기 위해서 임
    location ~ /.well-known {
    allow all;
    }

    location @wp_admin_ban {
    rewrite ^(.*) http://test1.com permanent;
    }

    # Add trailing slash to */wp-admin requests.
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    # Aggressive caching for static files that rarely/never change
    location ~* \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|ogv|otf|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|t?gz|tif|tiff|ttf|wav|webm|wma|woff|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
    expires 31536000s;
    add_header Pragma public;
    add_header Cache-Control "max-age=31536000, public";
    }

    location ~* \.(css|js)$ {
    expires 86400s; 
    access_log off;
    add_header Pragma public;
    add_header Cache-Control "max-age=86400, public";
    }

    # Add PHP handler
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;

        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;

        # This file is present on Debian systems..
        include fastcgi_params;

    }

    # Ensure requests for pagespeed optimized resources go to the pagespeed handler
    # and no extraneous headers get set.
    location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
    add_header "" "";
    }
    location ~ "^/pagespeed_static/" { }
    location ~ "^/ngx_pagespeed_beaconCode language: PHP (php)
quot; { } } Code language: PHP (php)

권한부여하고 설정 파일에 반영이 끝나면 설정이 제대로 되었는지 테스트 해본다. 테스트 명령어는 nginx -t

# nginx -t
Code language: PHP (php)

테스트에서 아래와 같은 메세지가 나오면 성공

결과물
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Code language: PHP (php)

이렇게 성공하게 되면 nginx를 정식으로 다시 가동시킨다.

# systemctl restart nginx
Code language: PHP (php)

8.5. 워드프레스 설치를 위한 DB 생성

우선 워드프레스가 사용할 DB 생성이 필요하다. 아래는 Maria DB에 접속해서 DB를 생성하는 과정을 간략히 정리한 것이다.

MariaDB에 접속

mysql -u root -p
Code language: PHP (php)

DB 생성

CREATE DATABASE wp;
Code language: PHP (php)

DB사용자 계정 생성

CREATE USER user1@localhost;
Code language: PHP (php)

사용자 계정 패스워드 설정

SET PASSWORD FOR user1@localhost= PASSWORD('password');
Code language: PHP (php)

사용자가 wp라는 DB에 접근할 권한 부여.

GRANT ALL PRIVILEGES ON wp.* TO user1@localhost IDENTIFIED BY 'password';
Code language: PHP (php)

설정값을 적용

FLUSH PRIVILEGES;
Code language: PHP (php)

8.6. 워드프레스 파일 받아 설치하기

워드프레스 한국 버젼은 워드프레스의 공홈이라하 할 수 있는 https://ko.wordpress.org에서 다운 받을 수 있다.

워드프레스 최신 버젼을 릴리즈 하는 곳

여기에서 최신 버젼의 링크주소를 복사한다.
2017년 10월 11일 현재 최신은 4.8.2으로 링크 주소를 확인하니 아래와 같다. https://ko.wordpress.org/wordpress-4.8.2-ko_KR.tar.gz

cd /home/happist  # 설치할 디렉토리로 이동
wget https://ko.wordpress.org/wordpress-4.8.2-ko_KR.tar.gz  # 워드프레스 최신 버전의 링크주소
tar -xzf https://ko.wordpress.org/wordpress-4.8.2-ko_KR.tar.gz     # 압축을 푼다.
Code language: PHP (php)

8.7. 워드프레스 설치

워드프레스 설치파일을 /home/사용자계정/www에 올려놓았다면 인터넷상에서 사이트 주소를 치면 바로 워드프레스 설치화면으로 들어간다.
여기까지왔다면 거의 성공한 것이나 마찬가지이다.

여기서부터는 그 유명한 5분 설치가 가능하다.
기존에 준비했던 정보들을 입력하면서 진행하면 된다.

아래 설치 단계별 이미지를 순서대로 소개한다. 이를 참조하면 된다.

워드프레스에 오신 것을 환영합니다.

처음으로 나오는 화면

워드프레스 설치 시작 화면_워드프레스에 오신 것을 환영합니다.

데이타베이스 연결 설정

위 장면에서 let’s go를 누르면 아래 화면이 나온다.
여기에서 데이타베이스 연결을 위한 세팅을 한다.

  • db name
  • db user
  • 비밀번호
  • 데이타베이스 호스트 대개 그냥 localhost를 사용한다.
  • 데이타베이스 접두어, wp를 대부분 사용하는 듯
워드프레스 설치 시작 화면_데이타베이스 연결 설정

데이타베이스 설치과정 완료

데이타베이스 세팅이 완료되면 아래와 같이 설치과정을 마쳤다는 메세지가 나온다.
정말로 간단하게 설치가 끝난 것이다.

워드프레스 설치 시작 화면_데이타베이스 설치과정 완료

워드프레스 5분 설치과정에 오신 것을 환영합니다.

위에서 데이타베이스 설정이 끝나면 바로 본격적인 워드프레스 설치과정이 시작된다.
이 단계가 너무 쉽고 간단하기때문에 워드프레스에서는 5분 워드프레스 설치 과정이라고 홍보하고 있다.

여기에서는 관리자가 필요한 항목들을 입력하고 춰드프레스 설치하기를 누른다.

  • 사이트제목
  • 사용자명
  • 비밀번호
  • 이메일주소
워드프레스 설치 시작 화면_워드프레스 5분 설치과정에 오신 것을 환영합니다

워드프레스 설치 완료

그러면 몇분 걸리지 않아 워드프레스가 설치되고 대시보드 화면이 나타난다.

이제부터는 정상적으로 워드프레스로 사이트를 운영하면 된다.

워드프레스 설치성공 후 첫 시작 화면05

워드프레스 세팅

워드프레스가 설치 되었으면 몇가지 세팅 한다.

  • 먼저 고유주소를 세팅, SEO에 좋다고 누가 그래서 ID와 이름으로 고유주소를 만들었다. 이는 생각보다 기렁지고 한글 문제는 속을 썩힌다. – /%post_id%/%postname%/
  • 적절한 테마 설정
  • 테마에 따른 위젯 등 설정

참고

우버의 성장엔진은 무엇인가 By GrowthHackers

2

이 글은 과거에 작성하다 버려둔 글을 다시 꺼내어 조금 포맷을 변경하고 불필요한 내용들을 제외하고 (초기에는 영문+번역을 그대로 소개하려고 했었다.) 단순화해서 다시 포스팅 한다.

2014년 한국에도 Uber taxi가 도입되어 다른 나라들과 마찬가지로 합법 여부를 놓고 시끄러웠고, 한국에서는 최종적으로 불법이라고 결론 났다.

그리고 Uber가 철수하면서 비어있는 틈을 비집고 들어온 것이 카카오택시를 비롯한 택시앱들이다. 그래서 먼저 먼저 카카오택시 및 티맵택시와 같은 한국에 도입된 택시앱 서비스에 대한 분석을 해보았다 이는 아래를 참조해 보자

파괴적 혁신으로서 카카오택시 티맵택시 사례 – 택시앱 ‘박힌돌’ 콜택시를 걷어차다

그리고 우버에 대서 기존 자료를 중심으로 정리해 우버 사례를 소개한 적이 있다.

공유경제의 전형으로서 우버(Uber Case study)

그러다 GrowthHackers라는 곳에서 우버 사례를 분석한 내용이 있어 여기 분석을 기반으로 우번에 대해서 좀더 자세하게 살펴 보고자 한다. 여기에서는 Uber의 Business model은 무엇이고 그 성공 요인은 무엇인지를 중심으로 설명하고 있다.

  우버택시   <

급성장하는 우버의 성장 엔진은 무엇인가?

Uber — What’s Fueling Uber’s Growth Engine?

1. The Need for Uber

우버가 성공할 수 있었던 배경 또는 소비자들의 니즈는 무엇일까?

  • 과거 택시를 잡는 것은 악몽과 같다. 거리에 나가 택시가 잡힐때까지 손을 흔들어야했고 (번호를 알고 있다면) 콜택시를 부르고 20분이상 기다려야 한다. 비가 오는 날 우산을 들고 택시를 잡아 본적이 있는가?
    우버 성장엔진 Uber growth EngineUber관련이미지02

  • 택시를 타고 목적지에 도착했어도 팁을 포함한 정확한 택시비 산정에 골치를 썪여야하고 정확한 잔돈을 가지고 있지않은 기사, 출발 시 미터기를 꺾지 않은 기사 또는 신용카드기가 고장난 기사들과 협상을 해야 한다.

  • 택시 서비스를 즐겁게 이용하는 사람은 거의 없다. 단지 대안이 없어서 이용할 뿐

2. 우버에 대한 초기 반응

Uber는 2009년에 샌프란시스코에서 Luxury Car service로 시작하였고 2010년 6월 공식 서비스를 시작하였다.

지금 Uber의 가치는 $3.76B에 달한다. (이 글을 쓴 당시) 비록 회사는 2009년 설립했지만 2010년 6월까지 공식적으로 출범하지 못했다. 6개월후인 2011년 1월 3000~6000여 사용자를 확보했고 10,000 ~ 20,000탑승을 기록했다.

3. Uber의 혁신 Point

Uber는 몇가지 핵심적인 방법으로 개인 교통 수단을 완전히 변화 시켰다. 그것은 기존 택시 시스템의 문제를 완벽하게 개선한 완벽한 솔류션에 있다.

3.1. 구글맵이 설치된 스마트폰 어플

  • 가장 가까운 택시가 어디에 있는지 알수 있고
  • 구글맵에 만날 장소를 설정 할 수 있다.
  • 또한 택시 기사의 인적 사항을 (rating을 포함) 볼 수 있다.

3.2. 상황을 알려준는 전화 또는 문자 메세지

Uber 기사의 전화나 가고 있는 중이라는 메시지는 당신의 주문이 받아드려졌다고 안도하게 된다.

차가 도착하면 택시 기사는 당신의 이름을 부를 것이고 여러분은 타면 된다

3.3. App에서 설정한 카드로 자동 계산

  • 목적지에 도착하면 app이 당신의 카드에서 택시비를 charge한다.

  • 여기엔 현금을 가지고 실랑이할 필요도 없고, 거스름돈을 가지고 실랑할 필요도 없으며 영수증을 가지고 실랑이 할 필요도 없다.

  • Uber는 전통적인 택시 운송에서의 갈등 요소를 없애고 택시 이용을 광장히 즐거운 과정으로 만들었다.

3.4. 우버 운전사에 대한 이익

우버는 택시 운전사를 직접 고용하지는 않지만 그 지역에서 택시를 타려는 사람과 택시 운전사를 연결자의 역활을 한다.

  • 일을 할 수 없어 쉬고 있었던 많은 운전 기사들에게 돈을 벌 수 있는 기회를 만들었다.

  • 효율적인 연결을 통해서 우버 택시운전자는 하루 $500을 벌수 있도록 해주었는데 이는 다른 택시 운전사들이 1주일 동안 벌 수 있는 금액이라고 한다.
    우버 성장엔진 Uber growth EngineUber homepage_HER TURN TO EARN

즉 우버는 사람들이 일을 할 수 있도록 만들었고, 사람들을 제대로 연결해주어 택시운전사들이 더 많은 돈을 벌 기회를 제공했다.

Fortune, The trials of Uber

4. Uber’ Growth Engine

우버의 성장 엔진을 다시 한번 정리해 보자.
우버 사례에서 가장 중요한 것은 기존 택시 시스템의 불만, 문제점을 거의 완벽하게 해결한 서비스 솔류션에 있었다. 그런 완변란 서비스는 고객들이 전혀 기대하지 못했던 훌륭한 사용 경험을 할 수 있었고 이런 경험은 사용자를 자발적으로 서비스를 소개하는 강력한 구전 효과를 낳았다.

  • 서비스 개선을 열망하는 tech group을 target으로 이 그룹에서 지지를 이끌어내려고 노력했다.

  • 이벤트를 지원하고 Free 탑승기회를 주고 인지도를 높혔다.

  • 서비스를 시작한 샌프란시스코는 택시서비스가 나쁘기로 악명이 높은 곳이었다. 그리고 자신들의 불편을 해결해줄 새로운 서비를 찾고 있던 테키한 전문가 그룹이 많은 곳이었다. 새로운 서비스를 경험한 이들은 블로그와 쇼셜 미디어와 기타 도구를 통해 그들의 친구들에게 이 새로운 서비스를 알리면서 널리 알려졌다.

  • 이러한 서비스는 다른 도시로 빠르게 도입되면서 마찬가지로 선순환을 타면서 Uber는 지속 성장하게 된다.

이러한 우버의 성장 엔진을 도식화하면 아래 이미지와 같이 정리될 수 있다. 즉 도시 내에서 런칭 → Free 탑승 기회 제공 → (롼벽한 서비스에 기반한) 와우 사용자 경험 → 강력한 구전 효과 발생의 선순환

▽ 우버 성장 엔진 사이클

  우버 성장 엔진 사이클  <

참고

공유경제의 전형으로서 우버 사례(Uber Case study)

구매로 이어지는 온라인 리뷰 5가지 요소

2

온라인 리뷰가 판매에 어느정도 영향을 미칠까요? Northwestern University와 PowerReviews가 조사 연구한 보고서 내용이 소개되었는데요. 이 내용을 번역해 공유합니다.

5 Online Review Factors that Can Influence Conversion

1. 구매로 이어지는 온라인 리뷰 5가지 요소, 5 Online Review Factors that Can Influence Conversion

온라인 리뷰가 구매에 미치는 요소 5가지 - 고가 제품과 저가 제품의 온라인 리뷰에 따른 구매 전환 효과
고가 제품과 저가 제품의 온라인 리뷰에 따른 구매 전환 효과

마케팅 담당자들은 온라인 상 고객 리뷰가 중요하다는 것을 알고 있지만, 고객 리뷰가 최종 수익에 얼마나 영향을 주는지 알고 있을까요?

Northwestern University의 Spiegel Research Center와 온라인 고객 평점 및 리뷰 솔류션 업체인 PowerReviews는 세 회사의 고객 리뷰와 수백만 구매 데이타를 분석하여 이러한 질문에 대한 답을 풀려고 했습니다. 이 세 회사 중 하나는 고급 선물 용품 회사이고 다른 두회사는 저렴한 각겨의 소비 제품을 판매하는 회사입니다.

결과는 어떠할까요? 고급 선물 용품 쇼핑몰에서 비슷한 두가지 유형의 제품을 비교 시 리뷰가 5개인 제품의 구매 확율이 고객 리뷰가 없는 제품의 구매 확율보다 270% 높다는 것을 발견하였습니다.

여기 “온라인 리뷰가 판매에 미치는 영향”이라는 제목의 보고서 내용을 아래와 같이 정리합니다.

이 연구 보고서의 다른 주요 결과에 대한 요약은 다음과 같습니다.

1.1. 온라인 리뷰는 고가 제품 및 고관여 제품에 더 큰 영향을 미친다. Reviews have a greater influence on conversion for high-priced and high consideration products

고가 제품을 판매하는 소매 업체 데이타를 기반으로 리뷰가 있는 저가 제품 구매 전환율은 190% 상승했지만 리뷰가 있는 고각 제품 구매 전환율은 380% 증가했습니다.

가격이 구매 위험도를 증가시키는데 영향을 줄 수 있으나, 그게 유일한 요인은 아닙니다. 위 보고서에 따르면 얼마나 제품이 소비자의 정체성담고 있는지 또는 일상적인 구매 여부도 이에 포함 될 수 있습니다.

결정의 불확실성은 고객 리뷰가 가장 큰 영향을 미칠 수 있다고 Spiegel Research Center의 전무 이사인 Tom Collinger는 이야기 합니다.

Review and rating 리뷰와 평점 관리 reviews image

1.2. 부정적 리뷰가 반드시 나쁜 것은 아니다. Negative reviews aren’t necessarily a negative

높은 고객 평가를 받은 제품이 가장 높게 구매 전환된다는 말은 논리적으로 타당해 보이지만 항상 그런 것은 아닙니다.

보고서에 따르면 구매 의향은 고객 평점이 5점 만점에 4 ~ 4.7점 수준에서 최고치를 기록한다고 합니다. 고객 평점이 4,7점에서 5점사이의 제품은 믿기에는 너무 좋은 점수라는 인식을 갖게 되어 구매 의향이 떨어진다고 보고되었습니다.
다시 말해 비판적 고객 의견은 오히려 신뢰감을 줍니다.

“부정적인 고객 리뷰의 영향력은 긍정적인 리뷰보다 크다”고 Spiegel Research Center의 전무 이사인 Tom Collinger는 말합니다.

1.3. 고객 리뷰의 양이 가장 중요하지는 않다. Volume of reviews is not a main factor

연구에 따르면 고가 제품에서 구매 전환율을 올리기 위해서는 최소 5회의 고객 리뷰가 필요하며 저가 제품은 일반적으로 2~4회의 고객 리뷰가 중요한 영향을 미친다고 합니다. 그러나 아래 그래프에서 보여주듯이 더 많은 고객 리뷰가 있다고 더 많이 팔리는 것은 아닙니다.

▽ 리뷰의 양과 판매량의 상관 관계,
고객 리뷰의 양과 판매는 비례하지는 않는다.

온라인 리뷰가 구매에 미치는 요소 5가지 - 리뷰의 양과 판매량의 상관 관계

Collinger는 “리뷰의 양이 너무 많으면 고객 리뷰를 추가하기 어렵다.”고 합니다.

고가 제품 소매 업체 데이터를 기반으로 한 보고서에 따르면 거의 대부분 처음 10개 고객 리뷰에서 구매 가능성이 높아지고 처음 5개 리뷰가 가장 큰 영향을 미칩니다. (고객 리뷰가 너무 많은 경우) 앞의 10개 리뷰가 제품에 긍정적인 인식과 평가되도록 선정된 것인지는 확인할 수 없다고 지적했습니다.

1.4. 고객 리뷰의 출처가 중요하다. Source of reviews matters.

연구는 검증된 구매자와 익명의 소비자가 작성한 리뷰의 효과 차이가 있는지를 분석했습니다. 여기서 검증된 구매자란 상품을 구매한 고객으로 구매 후 리뷰를 작성해 달라는 요청은 받은 사람들이고 익명의 소비자들은 제품을 구매했지만 그들의 제품 리뷰를 직접적으로 확인할 수 없는 사람들입니다.

보고서에 따르면 검증된 구매자 리뷰는 “실질적으로 보다 더 긍정적”인 것으로 나타났습니다. 검증된 구매자의 평균 상품 평점은 5점 만점에 4.34점이었으나 익명의 소비자는 평균 3.89점을 주었습니다. 검증된 구매자들은 별 5개 즉 만점을 준 비율이 높았으며, 익명의 소비자들은 별 1개 의 가장 낮은 등급을 준 비율이 높았습니다.

▽ 검증된 구매자와 익명의 소비자간 평점 비율 차이

온라인 리뷰가 구매에 미치는 요소 5가지 - 검증된 구매자와 익명의 소비자 차이

게다가 소비자들이 검증된 구매자들의 리뷰(검증된 구매자라는 표기가 있음)를 볼때 익명의 소비자가 작성한 리뷰에 비해 15% 구매 확율이 높아진다고 합니다.

그러나 리뷰어들은 편견에 영향을 받을 수 있습니다. 검증된 구매자는 익명의 소비자보다 리뷰 작성시 장애가 적습니다. 익명의 소비자는 상품 리뷰 사이트로 이동해서 가입해 계정을 만들고 리뷰를 작성해야하지만 검증된 구매자는 구매 후 리뷰 요청 메일을 클릭하기만하면 리뷰를 작성할 수 있습니다.

따라서 연구원들은 매우 부정적인 경험을 가진 익명의 소비자들이 힘들더라도 이러한 추가 절차를 밟을 가능성이 높다는 가설을 세웠습니다. (아주 부정적인 사람들이 더 적극적으로 평가를 하고 평점을 남기므로 익명의 소비자들의 평균 평점이 낮다는 것 – 역자 주)

또한 검증된 구매자는 이메일 링트를 타고 들어와 리뷰를 작성하므로 다른 사람들의 평가나 평점을 보지 못하는 경우가 많습니다. 익명의 소비자들은 다른 사람의 평가나 평점을 봅니다.

결론적으로 익명의 소비자들은 다른 사람들의 평가나 평점에 영향을 받을 수 있다고 합니다.

1.5. 사용자 경험이 가장 중요하다. Experience trumps all

고객 리뷰가 높은 영향을 발휘 하려면 최적의 제품과 쇼핑 경험을 제공하는 것입니다.
제대로 된 제품과 쇼핑 및 구매 경험을 최적으로 제공한다면 나머지는 저절로 풀리 것이다“고 Colliner는 이야기 합니다.

[워드프레스 Tips] 워드프레스에서 최종 업데이트 날짜 표시 하기

워드프레스 테마로 newspaper를 사용하면서 업데이트 일정을 표시하는 방법을 포스팅했었습니다.

[워드프레스 Tips] 워드프레스 Newspaper 테마에서 최근 업데이트 날짜 표시하기

테마를 Grace나 Basic 등 보다 가벼운 테마로 바꾸면서 공통적 Newspaper에서 적용했던 방법을 응용하려 했더니 Custom code를 찾는 게 더 힘들더군요. 그래서 일반 원드프레스 테마에서 적용할 수 있는 방법을 찾아 봤습니다.

구글링하니 이미 관련 좋은 팁들이 있어서 이를 간단히 응용해 적용했습니다.

테마 function.php에 코드 추가

이를 위해서는 function.php에 관련 코드를 추가하거나 Custom code를 변경하는 방법이 있는데 위에서도 언급했다시피 테마마다 날짜 표기하는 Custom code 들이 있는 곳이 다릅니다.

가벼운 테마라고 적용한 Basic 테마는 도대체 어디에 날짜관련 Custom code가 있는지 한참 찾다가 포기했습니다.
그리고 공통저그로 적용할 수 있는 function.php에 코드 추가하기로 했습니다.

테마의 function.php에 아래 코드를 추가합니다.

function wpb_last_updated_date( $content ) {
$u_time = get_the_time('U'); 
$u_modified_time = get_the_modified_time('U'); 
if ($u_modified_time >= $u_time + 86400) { 
$updated_date = get_the_modified_time('Y-M-D');
$updated_time = get_the_modified_time('a h:i');
$custom_content .= '<p class="last-updated">Last updated on '. $updated_date . ' at '. $updated_time .'</p>';  
} 

    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'wpb_last_updated_date' );

업데이트 일정 표기 방법 적용 결과

위 코드에서 취향에 따라 날짜만 표시하고 싶다면 $updated_time 부분 코드를 지우거나 작동하지 않토록 마킹하면 됩니다.

$updated_date = get_the_modified_time('Y-m-d');
/* $updated_time = get_the_modified_time('a h:i'); */
$custom_content .= '<p class="last-updated">Last updated on '. $updated_date . ' </p>';

Custom CSS에서 스타일을 지정

그냥 두어도 되나 업데이트 일자를 강조하려면 custom css 코드를 추가합니다.

그리고 function.php에서 문구를 한글로 변경합니다. 오늘이 한글날이이므로.

hackYa님의 사이트가 이런식으로 적용되어 있는데요. 최종수정일을 강조해주니 보기가 좋고 더 신뢰가 되더군요.. 문구도 비슷하게 따왔습니다.

저는 아래와 같이 코드를 넣었습니다.

.last-updated {
    font-size: 1.2em;
    font-style:italic;
    color: #26a69a;
}

▽ 최종 적용 결과

업데이트 일정 표기 방법 적용 및 Custom css 적용 결과

이 글은 아래 글을 토대로 응용하면서 작성하였습니다.

How to Display the Last Updated Date of Your Posts in WordPress