7.1 C
New York
월요일, 12월 22, 2025

Buy now

[광고] 쿠팡 추천 링크

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

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

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

웹서버 자동 실행 crontab(크론탭) 적용 시 문제점과 해결 방안

생소한 분야에서 익숙해지는 것은 정말 어렵습니다. 최근 서버를 나름 최적화하는데쉽지가 않습니다.

그동안 서버에서 정기적인 자동 실행을 해주는 crontab(크론탭)이 제대로 작동하지 않아서 몇주간 문제가 무엇인지 어떻게 해결해야 하는지 고민했는데요. 그 내용을 기록차 공유합니다.  누군가는 도움이 되라라고 믿으면서..

이와 관련해 많은 서칭을했지만 한국에서는 생각보다 일반인아니 초보자가 참고할만한 자세한자료가 없긴 합니다. 이 자료도 자세하지는 않지만 초심자입장에서 적어보았습니다.

예전 포스팅에서도 적었지만 crontab(크론탭)이 생각보다 까다로와서 작동되지 않은 경우가 많은데요. 이번에도 갑자기 작동이 안되어서 한 일주일을 헤매었습니다. 그 헤매면서 알게 되었던 내용들입니다.

이 내용은 리눅스 작업 Crontab(크론탭) 적용 스케줄러 및 오류 해결 방법과 전체적인 전체적인 맥락을 같이 하고 있습니다.

여기서는 구체적인 crontab(크론탭) 사용 설명은 따로 하지 않겠습니다.크론탭(crontab) 설치 및 설정에 대해서는 아래 글을 참조해주세요.

서버에서 자동 실행을 가능케 해주는 crontab(크론탭) 설정 방법

1. crontab(크론탭) 설정 – 2가지 방법의 유의 사항

crontab(크론탭)을 설정하는 방법에는 두가지가 있습니다.

첫째는 crontab -e 명령어를 사용해서 등록하는 것이구요. 이런 방식은 root가 작업하는 것으로 인지하므로 root 주체를 표기할 필요가 없습니다.

40 4 * * * mysqlcheck.sh

 

둘째는 /etc/crontab 파일에서 직접 등록하는 방법입니다. 이경우는 vi, nano와 같은 편집기로 crontab 파일을 열어서 편집을 합니다. 이는 작업 주체가 다양할 수 있기 때문에 반듯이 root 를 표기해 주어야 합니다.

40 4 * * * root mysqlcheck.sh

 

여기에서는 crontab -e를 사용하는 방법에서 나타나는 문제점등을 중심으로 설명드리겠습니다.

2. crontab(크론탭) 설정 시 유의 사항 몇가지

지금부터는 crontab(크론탭) 사용 시 주의점과 문제 해결 방법을 적어 봅니다.

2.1. 실행파일 sh는 복사하지 말것

crontab 설정 시 실행파일 sh 파일을 기존에 만들어 놓은 것을 FTP로부터 복사해 오는 경우가 있습니다 왜 그런지는 모르지만 이렇게 복사해오는 경우 제대로 작동하지 않습니다.
nano 편집기로 바로 만든 실행 파일은 정상적으로 작동하지만, 복사해온 실행 파일은 멀쩡히 해당 디렉토리에 존재하고 파일 권한도 충분하고 소유권도 root로 되어 있어 문제가 없어보이는데 Permission denied, not found같은 메세지를 내 보냅니다.

여러변 테스트를 통해서 내린 결론은 crontab 실행 파일은 서버 세팅 시 새로 만들어야겠다는 결론이었습니다.

조금 귀찮지만 sh 파일을 편지기를 사용해 다시 만들자구요.

2.2. 변경 후 반드시 cron 다시 실행시키기

crontab(크론탭) 명령을 등록 후 반드시 cron을 다시 실행해야 변경 내용에 제대로 반영됩니다.

service cron start  # 가동
또는 
service cron restart # 재가동

2.3. 실행 파일은 일반 경로에 위치, path 설정 – not found

cron은 보안때문에 사용자 개인 설정 파일을 참조하지 않습니다. 즉 사용자의 쉘 초기화 파일(.bashrc, .bash_profile)을 읽지 않습니다.
그러므로 실행 프로그램(예를 들어 *.sh)들은 /usr/bin이나 /bin과 같은 일반 경로에 있어야 cron이 제대로 찾아서 실행시킬 수 있습니다. 이런 경로에 없다면 /bin/sh: 1: /bin/dbbackup.sh: not found 같은 메세지가 메일로 보내집니다.

물론 실행 파일을 root에 놓는다면 문제는 없지만 다른 경로에 놓는 경우는 반듯이 참고해야 합니다.

From: root@root (Cron Daemon)
To: root@root
Subject: Cron <root@root> /bin/dbbackup.sh
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <path=/bin:/usr/bin:/usr/local/bin:/home>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>

/bin/sh: 1: /bin/dbbackup.sh: not found

2.4. 실행 파일 권한 문제 – Permission denied

가끔 실행 파일에 제대로 권한이 성정되지 않았다면 아래와 같은 메세지가 메일로 보내집니다.

/bin/sh: 1: dbit.sh: Permission denied

 

그렇기 때문에 충분한 권한을 줍니다.

chmod +x dbbackup.sh

2.5. crontab 작동 확인 – service cron status

그리고 crontab이 제대로 작동하는지 확인하기 위해서 service cron status 명령을 사용합니다.

service cron status # checks if cron is running

 

그러면 아래와 같은 메세지를 보여줍니다.

# service cron status
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-01-17 03:17:19 KST; 17h ago
     Docs: man:cron(8)
 Main PID: 16188 (cron)
    Tasks: 3 (limit: 4915)
   Memory: 45.9M
      CPU: 5min 9.772s
   CGroup: /system.slice/cron.service
           ├─ 5389 /usr/sbin/CRON -f
           ├─ 5461 /usr/sbin/sendmail -i -FCronDaemon -B8BITMIME -oem root
           └─16188 /usr/sbin/cron -f

Jan 17 20:35:03 root sendmail[5293]: w0HBZ3GQ005293: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:
Jan 17 20:35:03 root CRON[5221]: pam_unix(cron:session): session closed for user root
Jan 17 20:35:03 root sendmail[5380]: My unqualified host name (happist) unknown; sleeping for retry
Jan 17 20:36:01 root CRON[5389]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 17 20:36:01 root CRON[5390]: (root) CMD (dbit.sh)
Jan 17 20:36:03 root sendmail[5380]: unable to qualify my own domain name (happist) -- using short name
Jan 17 20:36:03 root sendmail[5380]: w0HBa3Jw005380: from=root, size=418, class=0, nrcpts=1, msgid=<20180117113

10$ 제휴 프로모션으로 Vultr 가입하기

웹서버 자동 실행 crontab(크론탭) 적용 시 문제점과 해결 방안 1

페이스북의 영리한 브랜드 전략 – 광고를 줄이고 소통을 늘려 강력한 브랜드를 만들다

0

최근 페이스북 CEO Mark Zuckerberg가 광고를 줄리고 가족 및 친구 중심의 컨텐츠를 강화하겠다는 발표에 대한 시장 및 사람들의 반응이 흥미로운데요. 페이스북의 행보에 대해서 간략히 그 의미를 짚어 보았습니다.

1. 광고를 줄고 친구, 가족 등 연결을 늘이겠다는 페이스북

며칠 전(2018년 1월 12일, 미국 시간) 페이스북 CEO Mark Zuckerberg가 페북에 글을 올려 앞으로 페이스북은 미디어, 브랜드들보다는 친구나 가족의 글이 더 많이 보이도록 하겠다는 밝혔습니다.

이러한 발표 후 페이스북 광고 수입의 하락을 염려한 시장 반응에 따라 페이스북의 주가가 급락하는 사태가 벌어졌습니다.

1월 8일 188.28$에 달했던 주가는 발표한 1월 12일 179.37$로 당일만 4.47% 하락한 것이죠.

저커버그 ‘뉴스피드 가족 중심’ 발표 뒤 페이스북 주가 급락

궁금해서 페이스북의 최근 1년간 주가 그래프를 찾아 보았습니다.
1년 전 127.87$이던 주가는 페이스북의 성장에 따라 쉬지 않고 올라서 올라 2018년 1월 12일 하락한 179.37$로 계산해도 40%가 올랐으므로 이런 하락이 어떤 의미를 줄지 두고 봐야겠다는 생각이 들 정도입니다.

페이스북 가족 중심 정책 변화(20180112) 선언 후 주가 추이

2. 페이스북의 정책은 페이스북 브랜드에 어떤 영향을 미칠까?

그러나 페이스북의 이러한 정책의 변화는 장기적 페이스북 브랜드에 긍정적으로 작용할 것으로 보입니다.

2.1. 브랜드 정체성에 더 가까가는 정책이 될 것이다.

그것은 페이스북이 처음 세워졌던 브랜드 정체성에 더 가까이 가는 것이기 때문입니다. 원래 페이스북은 가까운 친구와 가족간의 소통을 목표로 시작한 서비스이고, 이는 소셜 미디어의 가장 큰 목적과도 부합니다.

페이스북 서비스가 점차 커가나면서 페이스북의 정체성은 비지니스적으로 규정되는 경향이 강했습니다. 가장 빠르게 성장하는 광고 플랫폼이라는 정의가 그것인데요. 페이스북 매출이 성장하는데에는 사용자의 증가, 트래픽의 증가에 힘입어 강력한 광고 플랫폼으로 성장이 큰 기여를 했습니다.

이미 페이스북을 떠나는 사람들는 페이스북의 지나치게 자주 등장하는 광고를 꼽는 사람이 많습니다. 그리고 광고와 다른 뉴스 컨텐츠 중심으로 흐르다보니 사람들은 점점 자기 이야기를 올리지 않게 되었습니다.
여전히 아주 일부는 자기 이야기를 유통하는 공간으로 이용하고는 있습니다. 그렇지만 대다수는 방관자처럼 바라만보고 있으며 일부는 뉴스 등 정보꺼리를 올리고 있죠.

이제 페이스북은 초기에 잡았던 가족과 친구들의 소통의 장을 벗어난지 오래되었습니다.

이러한 문제를 Mark Zuckerberg도 잘 알고 있죠. 페북 글에서 그는 아래와 같이 이야기하고 있습니다.

But recently we‘ve gotten feedback from our community that public content — posts from businesses, brands and media — is crowding out the personal moments that lead us to connect more with each other (최근 우리 커뮤니티로부터 이런 피드백을 받고 있습니다. 비즈니스ㆍ상품ㆍ미디어에서 올린 포스트, 즉 ‘퍼블릭 컨텐트’가 서로를 서로에게 연결해 주는 개인적인 순간을 쫓아내고 있다는 것입니다.)

그렇기에 Mark Zuckerberg는 이런 현상을 타개하기 위해서 브랜드나 광고가 제공하는 ‘퍼블릭 컨텐츠’를 줄이고 개인간에 올린 포스트를 더 자주 노출하겠다고 합니다.

The first changes you’ll see will be in News Feed, where you can expect to see more from your friends, family and groups. As we roll this out, you’ll see less public content like posts from businesses, brands, and media(여러분들이 보게 될 첫 번째 변화는 뉴스피드에서 여러분의 친구ㆍ가족 같은 그룹에서 올린 포스트를 더 많이 보게 될 것입니다. 이리되면 여러분들은 앞으로 비즈니스ㆍ상품ㆍ미디어 관련 포스트인 ‘퍼블릭 컨텐트’를 더 적게 보게 될 것입니다.

이러한 페이스북의 정책은 가족과 친구들간의 소통이라는 본래의 목적에 더 부합하기 때문에 장기적으로 긍정적으로 보여집니다.

2.2. 오히려 페이스북 사용시간을 더 늘어날 수 있다.

이마케터가 발표한 자료에 따르면 페이스북에서 소비하는 시간은 2017년까지는 증가하겠지만 2018년부터는 정체 또는 감소할 수 있다고 합니다.
이마케터는 미국인들이 하루에 페이스북에서 보내는 시간은 2013년 18분에서 2017년 23분으로 증가하지만 2018년에도 변동없이 23분을 유지할 것으로 예상하고 있습니다.

페이스북 피로 현상이 강화되면 페이스북 이용 시간은 더 빨리 줄어들 수도 있습니다.

▽ 미국인의 페이스북을 사용하는 시간 추이,
출처 : emarketer

미국인의 페이스북에서 보내는 시간 추이 이마케터 emarketer

캐니다 소재 Facebook marketing 전문업체인 MavRCK에서 페이스북의 게시물 2,500만건을 분석한 결과를 보면 사람들은 페이스북 사용에 피로를 느낀 사용자들의 이탈이 계속 증가했고, 이에 참여도도 크게 줄고 있으며 페이스북을 이용 방법과 목적이 변화하고 있다고 합니다.

페이스북 사용 조사 – 참여와 관심도 감소 그리고 자발적 컨텐츠에의 높은 관심 by MavRCK

어쩌면 우리가 생각하는 것보다 빠르게 페이스북 브랜드 진부화가 빨리 이루어 질 가능성도 있습니다.

그러나 이번 마크 주크버그의 발표대로 페이스북의 광고 매출을 손해보드라도 가족과 친구 중심의의 컨테츠가 강화되고 본연의 모습을 되찾을 수 있다면 페이스북 사용 시간이 더 늘어나고 집중도가 높아지지 않을까요?

MavRCK의 조사에 의하면 페이스북 포스팅에 대해 좋아요는 7.9% 감소, 댓글 37% 감소 그리고 공유도 28% 감소했고 더 나아가 직접 만들어 올리는 포스팅도 약 39% 감소했다고 합니다.

그렇지만 페이스북 사용자들은 오리지널, 사용자가 직접 만들어 올리는 컨텐츠에 대한 관심은 증가해, UGC(User Generated Contents) 즉 사용자가 직접 만들어 올리는 컨텐츠는 브랜드에서 만드는 포스팅보다 6.9배 더 높은 관심을 받는다고 합니다.

즉 페이스북을 더 활성화하려면 친구나 가족간의 소통이 강조되어야하고 그 가운데 만들어지는 컨텐츠가 높은 관심을 받고 페이스북에 사용 시간을 잡아 둘 수 있는 방업이라는 것입니다.

2.3. 페이스 매출은 어떻게 될까? – 감소는 불가피하지만…

페이스북이 광고 노출을 줄이고 친구 가족간 관련성 높은 글 노출을 강화하면서 광고 매출 감소는 불가피할 것으로 보입니다.

2017년 3분기 기준으로 광고 매출은 10,142M$인데 반해 페이먼트 등 광고 이외 매출은 186M$로 비교가 안될정도로 광고 메출이 절대적입니다.
그렇기 때문에 이번 발표로 시장이 민감하게 반응하며 주가가 급락하는 상황이 연출된 것입니다.

페이스북 세그멘트별 매출추이

또 한편으로는 페이스북의 의도대로 친구와 가족 중심으로 소통이 강화되면서 커뮤니케이션 질이 좋아진다면 소비자의 몰입도가 높아지고 이에따라 페이스북 광고 효율이 좋아지고 광고 단가도 오를 수 있는 선순환을 기대해 볼 수도 있지 않을까 싶습니다.

그리고 페이스북 광고가 감소하기 때문에 페이스북에 의존하던 기업들이 (이미 광고 시장은 구글과 페이스북의 과점 시장으로 변한지 오래입니다.) 컨텐츠의 질을 높이는 노력을 경주하면서 이 또한 페이스북 컨텐츠를 높여서 선순환이 된다면 매출은 생각보다 줄어들지 않을 수 있습니다.

또한 페이스북은 페이스북과 인스타그램등으로 구성되어 있는데 인스타그램 광고가 급격히 성장하면서 이를 어느정도 상쇄하지 않을까 싶습니다.

하버드 졸업 축사하고 있는 마크 저커버그

3. 마치며

자고로 어떤 서비스든 지나치게 비지니스에 경도된다면 오래 갈 수 없습니다.
한때 우리나라에서는 잘 나갔던 캌오스토리가 지금은 거의 힘을 못쓰고 있는데 그 이유중의 하나가 지나친 상업화입니다. 카카오스토리는 사용자의 허락없이(이는 페이스북도 마찬가지) 사용자들의 포스팅 사이사이 광고성 컨텐츠가 도배되다시피 합니다. 조금 스크롤하다보면 금방 지칠정도입니다.

또한 싸이월드 몰락의 주요한 원인중의 하나는 지난친 상업화에 있습니다. 서비스 개선이나 샐운 소비자 가치를 높여주는 서비스대신 기존 서비스에서 최대한 유료화로 수익을 극대화할 수 있는 쪽으로 운영되었고 사람들은 점차 무료에다 사용 경험도 우수한 페이스북으로 이동해 버린 것이죠.

페이스북이 지나친 광고 중심에서 벗어나 소통이라는 본래의 취지를 강화하는 것은 페이스북 브랜드가 단명하지 않고 오래 갈수 있는 여건을 탄탄하게 만드는 정지 작업으로 보여집니다.
탐욕에 굴하지 않고 본연의 모습을 찾으려는 페이스북의 노력이 어떻게 귀결될지 무척이나 기대가 됩니다.

페이스북은 언제까지 승승장구할까? 관련 통계로 살펴보는 페이스북의 미래

서버 모니터링 프로그램 Htop 사용 방법 – Ubuntu 기준

Vultr 가상서버호스팅에서 워드프레스를 운영하는 방안을 체계적으로 설명하는 일련의 시리즈를 정리하고 있습니다.
이러한 시리즈 중의 하나로 Vultr 서버 상태를 보다 면밀히 살펴보고 문제점을 찾아 개선 방안을 모색해 볼 수 있는 리눅스 시스템 자원 모니터링 프로그램 Htop를 활용하는 방법을 설명하고자 합니다.

물론 이 사용법은 Vultr 뿐만이 아니라 Linode 등 모든 가상서버호스팅 업체에서도 동일하게 적용됩니다,. 즉 리눅스에서 파생된 운영체제라면 모두 사용할 수 있지요.

1. Htop(Linux Process Monitoring)란 무엇일까?

Htop이란 윈도우즈의 작업관리자와 비슷한 개념으로 리눅스에서 시스템 사용량 즉 CPU 사용량, 메모리 사용량 등을 어느 정도 비쥬얼적으로 모니터링할 수 있는 프로그램입니다.

리눅스에는 이러한 시스템 자원 상황을 모니터링하는 프로그램에는 Top, Htop, Atop, Nmom, Glances, Saider 등이 있는데요. 최근 Top을 개량한 Htop이 많이 호평을 받고 있습니다.

2. Htop 설치

아래에서는 간단히 Htop를 설치하는 과정을 설명합니다. 리눅스에 익숙하신 분이라면 진짜 몇분 걸리지 않는 일이지요.

2.1. 시스템 업데이트 및 업그레이드

항상 새로운 프로그램을 설치하기전에는 update 및 upgrade를 합니다.

apt-get update
apt-get upgrade

2.1. Htop 설치

Ubuntu에서는 apt-get 명령어를사용해 서버 모니터일 프로그램인 htop을 설치 합니다.

apt-get install htop

Htop 설치는 리눅스의 다른 프로그램과 마찬가지로 금방 끝납니다. 길어야 1분내외..
Htop설치 시 아래와 같은 메세지를 Xshell 터미널에 뿌려주네요.

@happist:~# apt-get install htop
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  htop
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 76.6 kB of archives.
After this operation, 216 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu artful/universe amd64 htop amd64 2.0.2-1 [76.6 kB]
Fetched 76.6 kB in 0s (85.5 kB/s)
Selecting previously unselected package htop.
(Reading database ... 108849 files and directories currently installed.)
Preparing to unpack .../htop_2.0.2-1_amd64.deb ...
Unpacking htop (2.0.2-1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up htop (2.0.2-1) ...

3. Htop의 사용

여기에서는 Htop의 사용법을 간략히 설명해 보겠습니다.
기본적으로 Htop은 터미널에서 htop를 쳐서 바로 사용 가능합니다. 너무 간단하죠.

htop

그러면 아래와 같은 화면을 보여줍니다.
Htop은 기본적으로 하나의 화면에서 모든 정보를 볼 수 있도록 되어 있으며, 상단에는 시스템의 주요 내용을 요약해 보여주고 있고, 그 아래에는 각 프로세스들의 각 활동 내용을 자세하게 보여줍니다.
이 모든 상황은 1초 단위로 업데이트 됩니다.

구체적으로 Htop 화면 상단 왼쪽에 CPU, Swap, Memory 사용량을 총량 비 사용량을 표시해 줍니다. 일CPU가 여러 개일 경우는 CPU 번호별로 사용율을 보여줍니다. 오른쪽에는 테스크 정보와 쓰레드 정보를 보여주고 있습니다.

또한 맨 하단에 각 기능별 단축키가 표시되어 있는데, Htop에서 F1 ~ F10까지 단축키에 각 기능들이 정의 되어 있습니다.

리눅스 시스템 모니터일 프로그램 htop 사용법

각 프로세스 정보 내용

위 화면에서 각각의 프로세스 정보는 아래와 같습니다.

프로세스 프로세스 정보 설명
PID 프로세스의 ID 번호
USER 프로세스의 소유자
PR 프로세스의 우선순위
NI 우선순위에 영향을 주는 프로세스의 nice 값
VIRT 프로세스가 사용중인 가상 메모리 양
RES 프로세스가 사용중인 물리 RAM의 양 (단위는 킬로바이트)
SHR 프로세스가 사용중인 공유 메모리 양
S 프로세스의 현재 상태(zombied, sleeping, running, uninterruptedly sleeping, traced)
%CPU 프로세스가 프로세서를 사용한 시간의 사용율
%MEM 프로세스가 사용중인 RAM의 사용율
TIMR+ 프로세서를 사용한 시간
COMMAND 프로세스를 시작하도록 한 명령어

단축키 설명

▶ F1(help) : htop 사용법을 알려 줌, 주로 단축기 용도를 설명

Htop 사용법 F1 설명

▶ F2(Setup) : htop 설정 단축키

Htop 사용법 F2 설명

▶ F3(Search) : 찾고 싶은 프로세스를 검색

Htop 사용법 F3 설명

▶ F4(Filter) : 원하는 용어를 입력, 필터링해 볼 수 있음

Htop 사용법 F4 설명

▶ F5(Tree) : 프로세스의 부모 자식 관계를 트리 형태로 보여주는 기능
F5를 토글해서 기능을 활성화하거나 비활성화 할 수 있다.

Htop 사용법 F5 설명

▶ F6(Sort) : 프로세스 별로 나누어 보여 준다. CPU, 메모리, 사용자, 우선순위, 프로세스 이름 등으로 정렬하여 쉽게 모니터링 가능.

Htop 사용법 F6 설명

▶ F7, F8(Nice) : 프로세스의 우선 순위를 바꾸는 단축기, F7은 올리고 F8은 내리는 기능을 함.
즉 해당 프로세스를 선택하여 F7 또는 Ehsms “]” 키를 사용하여 높이며, ‘F8’ 키 또는 ‘]’를 사용하여 우선 순위를 내릴 수 있음.

▶ F9(Kill) : 프로세스를 종료. 해당 프로세스 선택 후 F9 또는 ‘k’키를 입력하여 해당 프로세스를 종료시킴. 만약 여러 프로세스를 한번에 종료시키는 방법은 ‘space’ 키로 다수의 프로세스를 선택 후 ‘F9’ 키를 눌러 프로세스를 종료시킴.

Htop 사용법 F9 설명

▶ F10(quit) : htop 종료

10$ 제휴 프로모션으로 Vultr 가입하기

서버 모니터링 프로그램 Htop 사용 방법 - Ubuntu 기준 2

우분투 17.10에서 데이타베이스 관리 프로그램 phpMyAdmin 설치 방법

오늘은 웹호스팅을 하든 가상서버를 사용하든 단독 서버를 사용하든 모두 데이타베이스 관리시 사용할 수 있는 사용할 수 있는 phpMyAdmin 설치 방법을 알아 보고자 합니다.

갑자기 phpMyAdmin이 제대로 작동하지 않아서 원인을 살펴보면서 다시 설치도 해보고 등등 문제 해결 과정에 관련 내요을 정리하고 싶었습니다.

1. phpMyAdmin이란?

phpMyAdmin이란 MySQL을 인터넷상에서 편리하게 관리할 목적으로 php로 만든 오픈 소스 프로그램입니다.

여기에서 데이타베이스, 테이블, 필등, 열 등을 생성하고 삭제할 수 있으며 SQL 명령을 입력해 실행 시킬 수 있고 사용자 및 사용자 권한 등 데이타베이스가 할 수 있는 다양한 작업을 할 수 있습니다.
위 내용은 위키백과 내용을 토대로 수정, 정리하였습니다.

하지만 인터넷상에서 데이타베이스를 제어할 수 있는 만큼 해커들에게는 공격의 요소가 되고 있습니다. 따라서 보안을 중요시 한다면 phpMyAdmin을 사용하지 않는 것이 좋다고 합니다.
터미널 명령어로 다 처리할 수 있으니까요.

2. phpMyAdmin 설치 방법

phpMyAdmin을 설치하는 방법은 여러가지가 있는데요.
phpMyAdmin처럼 상대적으로 가벼운 프로그램은 별도 설치없이도 파일을 불러서 사용할 수 있기도 하며 또 정식 인스톨 과정을 거쳐 사용하기도 합니다.

2.1. 단순 복사 설치

앞에서 이야기했듯이 phpMyAdmin은 가벼운 프로그램을 지향하기 때문에(지금은 충분히 무거워졌다는 평가 많습니다. 영어 버젼의 압축 용량이 5MB가 넘으니깐요.) 별도의 설치 없이 SFTP로 복사해 사용 가능합니다.

이 방법은 리눅스의 압축 해제 방법등등을 잘 모르는 진짜 초입자가 할 수 있도록 조금 돌아가지만 쉬운 방법으로 설명했습니다.

먼저 phpMyAdmin 다운로드 페이지로 이동하면 최신 phpMyAdmin 버젼 리스트를 볼 수 있습니다. 여기에서 영어버젼, 만국어버젼(여러 국가 언어를 지원)이 zip 파일 또는 tar,gz 또는 tar.xz 형태로 다운받을 수 있습니다.

여기서 zip을 선택해 누르면 다운로드해주어 고맙다는 메세지/지원 요청 메세지와 함께 다운받을 폴더 선택이 나옵니다. 그러면 폴더를 선택하면 다운을 시작합니다. 인터넷 속도가 빠르니 금방이죠.

▽ phpMyAdmin 다운로드 페이지

우분투 17.10에서 데이타베이스 관리 프로그램 phpMyAdmin 설치 방법_phpMyAdmin 다운로드 페이지 crop

▽ phpMyAdmin 다운로드 선택시 감사 및 지원 메세지

우분투 17.10에서 데이타베이스 관리 프로그램 phpMyAdmin 설치 방법_phpMyAdmin 다운로드 메세지

이 다음에는 윈도우즈 폴더에서 압출을 푼 다움 SFTP로 원하는 폴더를 만들고 거기로 압축 해제된 phpMyAdmin 파일들을 올립니다.

압축 해제된 영문 버젼 용량을 보니 무려 23MB가 나오네요. 많이 무거워 졌다는..

폴더는 일반적으로 홈페이지가 설치된 아래쪽에 많이 만들어 줍니다. 그리고 보안을 위해서 폴더 이름은 자기만 알 수 있는 폴더 이름을 사용합니다.

phpMyAdmin을 SFTP로 올리는 모습

이러면 인터넷 상에서 phpMyAdmin이 복사된 폴더 주소를 치면 바로 phpMyAdmin으로 연결될 수 있습니다.

phpmyadmin-%ec%9b%90%eb%9e%98%ec%9c%84%ec%b9%98

이러한 단순 복사해 올리는 방식은 최신 버젼으로 변경시 업데이트를 또한 수동으로 해주어야 합니다. 이는 조금 불편한 일이죠.

2.2. 터미널 설치

이번에는 터미날 사용등이 가능하다면 이를 통해서 설치하는 방법을 찾아 보도록 하겠습니다.

먼저 phpMyAdmin도 계속 버젼이 업그레이드되므로 새로운 버젼이 나오면 바로 바로 업데이트 될 수 있도록 이를 지원해 주는 phpMyAdmin용 PPA(프로그램 개인 저장소)를 설정합니다.

add-apt-repository ppa:nijel/phpmyadmin
apt-get update

만약 이 PPA를 삭제하고 싶다면 아래 명령어를 사용합니다.

add-apt-repository --remove ppa:nijel/phpmyadmin

다음으로는 phpMyAdmin을 설치합니다.

apt-get install phpmyadmin php-gettext

이러면 설치를 시작하고 중간에 아래와 같은 메세지가 뜹니다.
이는 데이타베이스 관련한 세팅을 하겠냐는 것인데요. 이는 이미 MariaDB와 같은 데이타베이스를 설치하면서 끝냈기 때문에 No를 선택합니다.

phpMyAdmin 설치 시 나타나는 메세지

다음으로는 웹서버로 무엇을 선택할것인지를 묻는데요. 여기에는 nginx는 없습니다. nginx에 설치하여면 그냥 esc키를 눌러 취소하면 됩니다.

phpMyAdmin 설치 시 나타나는 2번째 메세지 웹서버 선택

그러면 phpMyAdmin 설치가 끝난 것인데요. 그런데 이 설치 디렉토리가 /usr/share/phpmyadmin에 설치되어있기 때문에 이를 사이트에서 쉽게 접근할 수 있도록 사이트 아래 디렉토리로 연결해 줍니다.
연결 디렉토리는 보안을 사용해 자기만 알 수 있는 이름을 사용합니다.

ln -s /usr/share/phpmyadmin /var/www/html

그러면 웹상에서 예를 들면 http://example.com/phpmyadmin와 같은 명령을 사용해서 phpMyAdmin에 접속할 수 있습니다.

2.3. phpMyAdmin 제거

phpMyAdmin을 사용하다 phpMyAdmin을 제거하고 싶으면 아래 명령을 사용하면 됩니다.

apt-get purge phpmyadmin

10$ 제휴 프로모션으로 Vultr 가입하기

우분투 17.10에서 데이타베이스 관리 프로그램 phpMyAdmin 설치 방법 3

아직도 종현 추모로 가득차 있던 코엑스 스타필드의 SM Town

오늘 은결이가 아무아리움을 가야한다고 주장해서..코엑스를 다녀왔다. 우리 집은 은결이가 가장 힘이 세다.

코엑스, 아니 지금은 신세계 주도로 리모델링해서 스타필드 코엑스라고 불리우는 곳.

은결이와 엄마는 아쿠아리움으로 향했고 은우와 난 뱔마당과 SM Town을 다녀왔다. 이 중 SM Town의 풍경을 공유해 본다.

SM Town은 아시다시피 JYP, YG와 함께 우리나라 3대 기획사중의 하나이다. 최근 YG가 치고 나오고 방탄소년단을 배출한 빅히트엔터테인먼트같은 신생 업체가 두각을 나타내면서 주춤한 모습이 잠깐 보이고는 있다.

암튼 은우가 스타필드(코엑스)에 온 이유는 오직 SM Town에 가기 위해서이니 별마당을 거쳐서 SM Town으로 향했다.

종현 추모

SM Town에서 본것의 90%는 종현 추모이다. 지난해 12월 27세의 젊은 나이로 세상을 등진 종현을 추모하는 메모와 편지와 꽃다발이 SM Town 전체를 덮고 있었다.

생활에 바빠 그냥 스치고 지났는데.. 그날 은우가 슬퍼해서 잠깐 잠깐 고민에 빠진 것말고는 별로 한게 없어.. 추모 메모들을 보면서 그의 명복을 빌었다.
문득 건물 전체르 뒤덥고(?) 있는 추모물들을 보면서 종현이는 그래도 행복하겠다는 생각을 했다.

그냥 지나칠 수 없어서 건물 곳곳에 혼재하는 추모 모습을 담아 보았다.

서울 코엑스 SM Town 풍경-0903 종현 추모 메모

서울 코엑스 SM Town 풍경-0905 종현 추모 메모

서울 코엑스 SM Town 풍경-0907 종현 추모 메모

서울 코엑스 SM Town 풍경-0908 종현 추모 메모

서울 코엑스 SM Town 풍경-0914 종현 추모 메모

서울 코엑스 SM Town 풍경-0915 종현 추모 메모

서울 코엑스 SM Town 풍경-0918 종현 추모 메모

서울 코엑스 SM Town 풍경-0932 종현 추모 메모

서울 코엑스 SM Town 풍경-0935 종현 추모 메모

종현 CD를 사다 – 종현 소품집 – 이야기 Op.2

SM Town을 나오면서 마지막으로 종현의 CD를 샀다. 은우에게 종현의 노래중 가장 유명한 앨범이 뭐냐고 물었는데 은우가 이 앨범을 골라 주었다

울 코엑스 SM Town 풍경-종현 추모 종현 앨범 종현 소품집을 사다-1004

흔히 볼 수 있는 외국인

SM Town에는 SM 엔터테인먼트 소속 연예인(? 표현이 맞는지 모르겠다.)의 팬들이 모여드는 곳이라 이런 일에 열심인 소녀팬들이 정말 많았다. 그가운데 아저씨는 나외엔 딱 1명만 보았다.

이런 소녀팬 그리고 연인들외 외국인도 많이 눈에 띄었다. 특히 히잡을 쓴 아랍분들도 많았는데 조금 생경한 느낌이 들었다. 중동에도 한류가 여전히 강하다는 반증이 아닐까 싶기도 하다.

서울 코엑스 SM Town 풍경-0946

스타을 기다리는 팬들

밖으로 나오니 일단의 (주로) 소녀들이 엄청 모여 있다. 그들의 스타가 오늘 생일이라고 축하해주기 위해서 모였다고..

흔하면서도 생경한 풍경…

서울 코엑스 SM Town 풍경-0951

서울 코엑스 SM Town 풍경-0954

그 동안 회사와 집만 오가던 나로서 SM Town에서의 마주한 풍경은 생경했지만, 그 동안 뉴스를 통해서 무수히 들었고 영상으로 너무도 많이 접해서 그리 놀랍지는 않았지만 여러가지 다시 생각케하는 계기를 만들어 주었습니다.

이미 거의 한달이 지나감에도 불구하고 여전히 SM Town 건물 전체를 뒤덥고 있던 종현 추모의 흔적은 대중에게 사랑받는 것이 무엇을 의미하는지, 그리고 사후에 훨씬 더 인정을 받았던 음악성을 보면서 한길에 매진하고 평범함을 거부한 채 다른 사람들보다 더 뛰어남으로 소수든 다수든 지향점을 마드는 것의 중요성을 알려줍니다.

중동을 비롯한 여러 나라 사람들이 SM 소속 스타들을 좋아하고 그들과 관련된 상품(앨범, 기념품 등등)을 구매하는 것을 보면서 그리고 현장에서 은우랑 이야기했던 방탄소년단을 생각하면서 한류에 대해서 그리고 이 분야에 대한 케이스 스터딜ㄹ 해 보아야겠다는 생각을 했습니다.

그리고 팬의 생일을 맞아 대규모로 운집한 팬들을 보면서 이렇게 자발적으로 사람들의 마음을 움직이는 메커니즘이 그리고 어느 한 사람을 향항 이런 종류의 사랑은 어떻게 형성딜까라는 궁금증이 일면서 내가 더 이해해야할 것들이 참으로 많다는 생각을 했습니다.

[워드프레스 최적화] 구글 AMP(Accelerated Mobile Pages) 제거로 사이트 정체성 유지하기

구글에서 제안하는 Accelerated Mobile Pages를 적용해서 사용하고 있는데요.

1. AMP(Accelerated Mobile Page)란 무엇이냐구요?

인터넷이 빠르게 모바일로 전환되고 모바일 광고도 매우 빠르게 증가하고 있습니다. 그런데 모바일의 속도는 모바일 인터넷의 증가 속도를 따라가지 못하고 모바일에서 속도 문제가 매우 중요해졌습니다.

1.1. 구글 AMP(Accelerated Mobile Page) 개요

일반적인 문서도 속도가 느린데 여기에 구글 광고까지 실으면 더욱 느려지기 대문에 구글로서는 빠른 모바일 환경으로 빨리 전활할 필요가 있었습니다. 이런 배경하에 나온 것이 구글 AMP(Accelerated Mobile Page)입니다.

구글 AMP(Accelerated Mobile Page)는 속도를 최대한으로 올리기 위해서 불필요한 코드를 모두 제거하고, 구글 입장에서 꼭 필요하다고 생각하는 항목만 반영하도록 Accelerated Mobile Page 문법을 상당히 엄격하게 적용하고 있습니다.

  • JavaScript가 페이지 렌더링을 차단하는 것을 막기 위해 비동기 JavaScript만 허용한다.
  • CSS는 모두 인라인으로 지정해야 하며 50KB를 넘을 수 없다.
  • 스크립트는 처럼 AMP에서 제공하는 스크립트 외에는 외부 JavaScript를 허용하지 않는다.
  • 기본 HTML 태그 대신 , , 같은 AMP 전용 태그를 사용한다.
  • 모든 리소스는 크기를 지정해서 리소스를 다운로드 한 후에 브라우저가 레이아웃을 다시 그리지 않도록 한다.

1.2. 심심하게 나오는 AMP 페이지 구현 오류

구글에서는 속도 개선을 위해서 Accelerated Mobile Page 문법을 상당히 엄격하게 적용하고 있다보니 조금만 정한 규정에서 어긋나도 바로 “Accelerated Mobile Page에 문제가 있다.”는 경고를 띄우고 구글 검색 시 “페이지에 AMP 구현 오류가 있습니다.”를 표시해 줍니다.

AMP 오류 문제 _페이지에 AMP 구현 오류가 있습니다.

문제는 “페이지에 AMP 구현 오류가 있습니다.”라는 문구가 뜨는 포스팅이 증가하고 있다는 것이죠.

처음에는 그러려니하다가도 이를 볼때마다 신경이 쓰이긴 합니다. 다만 한가지 다행인점은 이 메세지는 오직 사이트 owner에게만 보여진다는 점입니다.

1.3. AMP(Accelerated Mobile Page)의 문제점

이 AMP(Accelerated Mobile Page)가 모바일 인터넷의 속도를 증가시키지만 별도의 구글 캐시 서버를 통해서 내용을 보여주므로 구글 중심의 정책이라 비난을 많이 받고 있습니다. Outsider님, 나는 AMP를 좋아하지 않는다. 참조

또한 블로그나 웹사이트의 정체성을 굉장히 훼손하면서 속도를 증가를 추구하고 있어 블로그들의 이해와는 반하는 결과를 낳고 있습니다.

  • 구글 애드센스 넣기가 보다 까롭습니다. 뭐 방법은 많이 있으니 전문가들에게는 큰 문제가 아닙니다.
  • Social share button을 추가하기 매우 어렵습니다. AMP에 맞추어 별도 작업을 해주어야 합니다.
  • 포스팅에서 글쓴이가 연결했던 Link 등의 정보가 구글 제공 link로 대체되는 경우가 많습니다.
  • 사이트 디자인 등의 아이덴티티를 완전히 변화시킵니다.
구글 AMP포맷으로 구현된 happist.com 컨텐츠 모습

그렇기때문에 AMP를 포기하고 다시 예전으로 돌아가는 경우도 증가하고 있으며, 인터넷에는 AMP 삭제 방법에 대한 문의도 늘고 있습니다.

2. 끊임없이 AMP와 사이트와 충돌이 발생하다.

이러한 구글의 정책에 맞추어 제대로 페이지를 구성하면 문제가 없습니다. 그러나 많은 자료들이 아주 예전부터 만들어쟜고 이 문서들은 AMP 정책과 맞지 않는 것들이 많습니다.
한때는 하루 몇십개씩 수정을 시도해 보았지만 날이갈수록 요구사항이 까다로워지고 새로운 프로그램 적용이나 플러그인을 설치하면 충돌이 발생하는 것 같더군요.

최근 워드프레스 최적화를 한다면서 그동안 형식적으로 적용해 작동하는지 하지않는지 제대로 않았던 서버의 각종 옵션들을 재점검했습니다. 그 결과 생각외로 작동하지 않은 옵션 명령들이 많았습니다.

구글 웹마슽에서 AMP 페이지

제 옵션 명령들을 정상적으로 작동하도록 만들자 이제는 문제가 AMP 페이지에서 터져 나왔습니다. 대부분의 포스팅들이 모든 문제가 있어서 AMP 인덱스에서 빠졌다는 것입니다.

그 원인으로는 잘못된 CSS 스타일시트를 적용해다는 것인데요. 아무래도 구글 ngx_PageSpeed를 제대로 설정했더니 이와 충돌을 일으키는 것으로 보였습니다.

그동안 AMP 삭제에 대해서 고민을 많이 했는데 이 정도 수준이면 포기해야겠다는 생각이 들었고 본격적으로 삭제하기 시작했습니다.

3. 구글 AMP 삭제 방법

어떻게 AMP를 삭제할까요?

구글은 AMP 삭제 방법에 대해서 친절(?)하게 안내하고 있습니다.
Remove AMP Content from Google Search

그러나 이는 디테일하게 설명된 자료는 아니라서 전문가가 아니라면 어려울 수 있습니다. 좀 더 자세한 방법을 알아 봅니다.

3.1. 웹 페이지 헤드에서 rel=”amphtml” 삭제

구글은 웹 페이지의 헤드에 있는 rel=”amphtml” 마크업 링크를 통해서 AMP 페이지라는 것을 인지합니다.

그러므로 ==웹 페이지 헤드에서 rel=”amphtml” 삭제하는 것이 AMP를 삭제하는 지름길== 입니다.

어떻게 웹 페이지 헤드에서 rel=”amphtml”를 삭제할 수 있을까요?

쉽게 하는 방법중의 하나가 이런 문구를 찾아서 삭제해 주는 플러그인을 활용하는 것입니다. 바로 Real-Time Find and Replace라는 플러그인을 이용하는 것입니다.

  • 우선 Real-Time Find and Replace 플러그인을 설치, 활성화합니다.
  • 도구에서 Real-Time Find and Replace 플러그인을 선택한 다음 ① Add 버튼을 눌러 ② Find 필드에는 ““입력하고 Replace에는 비워 놓습니다. ③ 그 다음 Regex를 눌러서 선택되도록 체크 표시한 후 ④ Update Setting을 누릅니다.

3.2. AMP 페이지를 인덱스하지 않토록 코드 추가

이렇게 rel=”amphtml” 마크업을 삭제하면 구글에게 더 이상 이 사이트에는 AMP 페이지나 포스트가 없다는 것을 알려 주는 것입니다. 그러면 구글은 이 관련 페이지들을 다시 인덱스하게 됩니다.

그런데 여기에는 문제가 하나 있습니다. 이제 Google은 AMP 버전 페이지를 일반 버젼의 중복 된 URL로 간주 할 수 있습니다.
이를 방지하기 위해서 제거된 AMP 페이지가 더이상 인덱스 되지 않는 방법을 추가해야 합니다.

이를 위해서 AMP for WP 플러그인을 삭제하지말고 여기에서 옵션 코드를 추가해 줍니다.

AMP for WP 플러그인에서 코드 추가

즉 AMP for WP 플러그인을 열고 SEO 섹션으로 이동한 다음 ““ 코드를 추가해 줍니다.

이제 AMP 페이지를 인덱스하지 않토록(NOINDEX)하도록 설정을 마쳤습니다.

3.3. 구글 서치 콘솔에서 사이트맵 제공

이제는 구글에 최신 사이트맵을 제공해서 우리 사이트를 최신으로 업데이트하고 인덱스에 반영해 달라고 요청해야 합니다.

  • 먼저 최신 사이트맵을 만듭니다. 사이트맵 플러그인이 설치되어 있다면 자동으로 제출 될 수 있겠지만 그렇지않다면 수동으로 사이트맵을 만듭니다.
  • 수동으로 사이트맵을 들 수 있는 곳은 xml sitemap generator – free unlimited pages, Online XML Sitemap Generator등이 있습니다. Online XML Sitemap Generator이 빠르지만 만들 수 있는 갯수를 제한하고 있으며, xml sitemap generator – free unlimited pages는 어느정도 제한이 없습니다.
  • SFTP로 사이트 루트에 사이트맵을 올립니다.
  • 이제 구글 서치 콘솔로 이동합니다. 크롤링 – Sitemaps로 이동해 사이트맵을 등록하고 제출합니다.

그러면 진짜 이제부터는 구글 소관으로 넘어갑니다. 구글은 AMP페이지를 NOINDEX하고 오리지널 페이지를 전부 다시 인덱스해줍니다. 시간이 조금 걸리지 않을까 싶네요.. 시간을 측정해보지는 않았습니다.

3.4. AMP 플러그인 삭제

시간을 지나 AMP 페이지가 구글 서치에서 사라지는 것을 확인하면 AMP 플러그인을 삭제합니다.

3.5. 필요 시 리다이렉트

AMP 플러그인을 삭제하고 불안한 경우가 있습니다. 아마 위 프로세스를 밟았다면 이상은 없겠지만 만사 불여튼튼이므로 혹시 AMP 주소 링크가 걸려온다면 원문으로 리다이렉트할 수 있도록 합니다.

리다이렉트 플러그인 사용

이러한 리다이렉트를 가능하게 해주는 첫번째 방법은 리다이렉트 플러그인을 설치하는 것입니다.

Redirection

첫번째로 Source URL 필드에 아래 코드를 입력

/(.*)\/ampCode language: PHP (php)

그리고 Source URL 입력 후 바로 옆에 있는 정규표현식(Regax) 옵션에 체크해 줍니다.

다음 Target URL에는 운영하는 사이트 주소를 포함해 다음과 같은 형식의 코드를 입력합니다. 여기 사이트인 happist.com이라면 아래와 같겟죠.

https://happist.com/$1Code language: PHP (php)

Group 부분을 눌러 드랍다운 메뉴 중 “Redirections”을 선택합니다.

마지막으로 Add Redirect 버튼을 눌러 저장 합니다.

서버에서 리다이렉트 명령 추가

플러그인을 사용하지않고 서버에서 리다이렉트 명력을 추가할 수 있습니다.

아파치라면 .htaccess 파일에, nginx라면 nginx 설정 파일에 리다이렉트 명령을 추가해 줍니다.

아래는 아파치 서버에서 사용하는 리다이렉트 명력어입니다.

# AMP 삭제 후 AMP 주소로 오는 요청을 오리지널 페이지 주소로 되돌림
RewriteRule ^(.*)\/amp$ $1 [R=301,L]
Code language: PHP (php)

NGINX에서는 아래처럼 rewrite 명령을 사용했습니다. 이 명령은 서버 블락에 넣어 줍니다.

# AMP 삭제 후 AMP 주소로 오는 요청을 오리지널 페이지 주소로 되돌림
location ~ /amp/$ {
  rewrite ^(.*/)amp/$ $1 permanent;
}
Code language: PHP (php)

4. 참고 자료

구글 AMP 삭제 관련해 아래 자료들을 참고했습니다.

AMP 삭제 방법을 굉장히 자세하게 알려주는 포스팅으로 제가 주로 참고한 내용 How to Disable Google AMP & Remove AMP Content from Google Search

마찬가지로 AMP 삭제 방법 3가지에 대해서 설명하고 있는 포스팅 Google has explained how you can remove your AMP content from Google search

How to Fix 404 on AMP pages after deactivating the AMP plugin

AMP 삭제 후 404 에러를 방지하기 위해 리다이렉션이 필요한데 이를 위해 Redirection plugin을 설치해 사용해 볼 수 있습니다.

그러나 rewrite를 이런 플러그인을 사용하지 않고 위애서 제시한 RewriteRule과 write를 사용해서 처리할 수 있습니다.

참고

[워드프레스 최적화] 브라우저 캐싱(Browser Caching) 설정으로 빠른 속도와 트래픽 절감이란 두마리 토끼를 잡아 보자

오늘은 브라우저 캐싱이라고 불리우는 웹 브라우저에서 캐싱을 통해서 워드프레스 속도를 높이는 방법에 대해서 살펴 보도록 하겠습니다.

1. 브라우저 캐싱(Browser Caching)이란?

사용자와 서버간 응답 속도를 높이기 위해서는 웹 페이지 구성 요소들을 압축하는 방법과 사용자 PC에 관련 내용을 저장해 놓고 재방문시 사용하는 브라우저 캐싱(Browser Caching)이 있습니다. 이 중 압축방법에 대해서는 앞에서 설명을 드렸습니다.

브라우저 캐싱(Browser Caching)은 보다 전문적이 용어로는 HTTP 캐싱이라고 불리우는데요. 가장 간단하게 설명해서 웹 페이지 구성요소(즉 이미지, CSS 파일 등)을 사용자의 PC에 저장했다가 그 페이지를 다시 방문 시 사용자 PC에 저장된 요소를 꺼내 보여줌으로써 속도를 빠르게 하고 트랙픽 절감 효과를 주는 기법입니다.

브라우저 캐싱(Browser Caching) 플로우 차트2

이는 사이트를 처음 방문할땐 효과가 없지만 재방문시는 속도를 빠르게 할 수 있습니다. SEO에서 중요시하는 TTFB(Time To First Byte)에는 도움은 안되지만 전체 사용에서는 효과를 볼 수 있습니다.
흔히 컴퓨터 Temp 폴더를 보면 그동안 방문했던 사이트의 이미지 등등이 모여 있는 것을 볼 수 있는데요. 이게 바로 그 사이트에서 브라우저 캐싱(Browser Caching)을 설정했기 때문에 남아 있는 것입니다.

브라우저 캐싱(Browser Caching)을 위해 HTTP1.1 프로토콜에서는 만기일 (Expiration) 메커니즘과 검증 (Validation) 메커니즘을 사용합니다.

  • 만기일 매커니즘 : 브라우저가 웹 페이지를 재방문 시 사용자 PC에 저장(caching)된 구성 요소의 만기일을 확인하고, 만기일이 지나지 않았으면 저장(Caching)된 구성 요소를 불러와 웹 페이지를 보여주는 방식입니다. 이 만기일은 서버 응답 헤더의 expires 항목 또는 Cache-Control 항목의 max-age를 통해서 설정 가능합니다.
  • 검증(Validation) 매커니즘 : 사용자 PC에 저장(Caching)된 구성 요소가 캐쉬가 최신 상태인지를 확인하기위해 서버에 유효성 검사(validation) 요청을 보내서 저장(Caching)된 구성 요소 데이터를 새로 내려받을지를 검사하는 메커니즘입니다. 그 사이 서버에서 내용이 변경되었다면 다시 데이타를 받아 업데이트를 하고, 변경이 없다면 데이타를 새로 받지않고 저장(Caching)된 구성 요소의 만기일만 새롭게 업데이트 합니다.

2. 워드프레스에서 브라우저 캐싱(Browser Caching) 적용하기

워드프레스에서 브라우저 캐싱(Browser Caching) 적용하는 방법은 여러가지가 있습니다. 하나는 워드프레스 사용자라면 궁하면 떠올리는 플러그인이 있습니다. 워드프레스는 브라우저 캐싱(Browser Caching)을 도와주는 많은 플러그인이 있습니다. 또 하나는 서버 설정을 변경해 브라우저 캐싱(Browser Caching)이 가능토록 하는 방법입니다.

2.1. 브라우저 캐싱(Browser Caching)을 지원하는 플러그인

브라우저 캐싱(Browser Caching)을 적용하는 가장 간단한 방법은 플러그인을 사용하는 것입니다. 워드프레스에는 별의별 플러그인이 있는데 당연히 브라우저 캐싱(Browser Caching)를 지원하는 많은 플러그인이 있습니다.
우리가 흔히 캐시 플러그인이라고 불리우는 것들 중 많은 플러그인들이 브라우저 캐싱(Browser Caching)을 지원합니다.

이런 플러그인의 설정에서 속도를 향상 시키는 방법의 하나로 브라우저 캐싱(Browser Caching) 적용 여부를 선택하도록 되어 있습니다.

예를들어 W3 Total cache에는 아래에서 보는 것처럼 정말 많은 설정이 있는데요. 이중 아래 부분을 보면 브라우저 캐싱(Browser Caching)을 적용하는 부분이 있습니다. 다만 상세한 설정 옵션이 없어서 이를 반영하려면 별도 작업이 필요합니다.

다소 길드라도 워드프레스를 최적으로 사용하려면 얼마나 많은 항목들을 조정할 수 있는지를 보여주기 위해서 이미지를 첨부합니다.

W3 Total Cache 설정 화면 crop

저는 이러한 플러그인 사용을 별로 좋아하지 않기 때문에 이어서 서버에서 플러그인을 사용하지 않고 브라우저 캐싱(Browser Caching) 적용 방법을 살펴 보고자 합니다.

2.2. HTML 문서 내 meta 태그 활용

조금 오랜된 방법으로 HTML 문서내의 meta 태그 내에 브라우저 캐싱(Browser Caching) 관련 정보를 삽입하는 방법이 있습니다.

예를들면 아래와 같이 meta 태그안에 브라우저 캐싱(Browser Caching) 명령을 넣은 것입니다.

<HTML><HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD><BODY>
</BODY>
</HTML>

그러나 이런 방식을 지원하는 브라우저가 한정되어 있으므로 최근에는 거의 사용되지 않는 방법입니다. 마이크로소프트에서 제공하는 IE 계열에서는 지원합니다.

2.3. 플러그인 없이 서버 설정으로 브라우저 캐싱(Browser Caching) 적용하기

서버에서 브라우저 캐싱(Browser Caching) 적용하는데 사용할 수 있는 명령 옵션은 아래와 같습니다.

Pragma

이전 버젼인 HTTP 1.0에서 사용하던 캐시를 제어하기 위해 사용되던 명령 옵션으로 esponse에 대한 HTTP 명세가 없고 request에서만 사용 가능해 처리되지 못하는 것들이 많은 명령 옵션입니다.
HTTP 1.1.로 업그레이드되면서 이를 대부분 대체 되었기에 사용하지 않토록 권장되고 있습니다.
(사실 조도 이렇게 공부하기 전까지는 이 명령 옵션을 같이 사용하고 있었습니다.)

Expires

저장(Caching)된 구성 요소의 만료 일자를 정의합니다. HTTP date 형태로 날짜를 지정하며 로컬타임이 아닌 GMT를 사용합니다.

Expires: Fri, 30 Oct 2018 20:11:21 GMT

규칙적으로 컨텐츠가 변경되는 경우는 유리하나 일일이 일정을 지정하기 어렵기 때문에 별로 상요되지는 않습니다.

Cache-Control

요즘 대부분 사용하는 명령 옵션으로 max-age로 마료 기간을 표시하고, Public/Private 등으로 cache 방식을 지정하는등 여러가지 옵션을 가지고 있습니다.

  • max-age=[seconds] : 앞서 설명된 Expires와 동일한 의미지만 고정된 절대시간이 아닌 요청 시간으로부터 상대적 시간을 표시
  • s-maxage=[seconds] : max-age와 동일한 의미지만 shared caches (예: proxy)에만 적용됨.
  • public : 일반적으로 HTTP 인증이 된 상태에서 일어나는 응답은 자동으로 private 이 되지만 public을 명시적으로 설정하면 인증이된 상태더라도 캐시하도록 한다.
  • private : 특정 유저의 브라우저에서만 캐쉬하도록 설정. 여러 사람이 사용하는 네트워크상의 중간자 (intermediaries)역할의 shared caches에는캐쉬되지 않음
  • no-cache : 응답 데이터를 캐쉬하고는 있지만, 일단 먼저 서버에 요청해서 유효성 검사(validation)을 하도록 강제. 어느 정도 캐쉬의 효용을 누리면서도 컨텐츠의 freshness를 강제로 유지하는데 좋음.
  • no-store : 어떤 상황에서도 해당 response 데이터를 저장하지 않음.
  • no-transform : 이미지나 문서를 자동으로 최적화된 포멧으로 변환하지 않토록 함.
  • must-revalidate : 금융거래등엑서 특정 상황(네트워크 연결이 끊어졌을때 등)에서는 fresh하지 않은 캐쉬 데이터는 상요하지 않토록 함.
  • proxy-revalidate ; must-revalidate와 비슷하지만 proxy caches 에만 적용.

2..3.1. 아파치 서버 적용 예

아파치 서버에서는 적용하는 법입니다. 아파치에서는 Htaccess파일 앞부분에 관련 명령을 넣습니다.

먼저 Expires 헤더를 정의하는 방법입니다.

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

또 다른 방법으로는 Cache-Control 헤더를 추가하는 것이죠. 여기서는 max-age로 캐시 기간을 설정합니다.

# 1 Month for most static assets
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)


quot;>
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

2.3.2. Nginx에서 브라우저 캐싱(Browser Caching) 설정

    # 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; # HTTP1.0에서 사용하던 명령으로 같이 사용하지 않음
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location ~ \.(?:css|js)$ {
    expires 86400s; 
    #add_header Pragma public; # HTTP1.0에서 사용하던 명령으로 같이 사용하지 않음
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

이렇게 브라우저 캐싱(Browser Caching) 적용토록 세팅했다면 이게 제대로 반영되고 있는지 확인해 봅시다.
이는 크롬 개발자도구 - 네트워크의 헤더 정보에서 확인할 수 있습니다.

▽ 크롬 개발자 도구에서 브라우저 캐싱(Browser Caching)이 적용된 모습을 확인

브라우저 캐싱(Browser Caching)이 적용된 모습

광고 - Vultr 25$ 프로모션

Vultr에 관심이 있다면 아래 프로모션으로 Vultr에 가입해 보세요.
물론 그전에 더 좋은 프로모션이 있는지 체크해 봐야 합니다.

Vultr의 좋은 점이 다양한 프로모션이 많아서 초기에 저렴하게 이용할 수 있다는 점이었죠. 최근에는 그런 좋은 조건들이 많이 사라진 것 같긴 합니다.

25$ 프로모션으로 Vultr 가입하기

[워드프레스 최적화] 브라우저 캐싱(Browser Caching) 설정으로 빠른 속도와 트래픽 절감이란 두마리 토끼를 잡아 보자 4

우분투 서버에서 PPA(Personal Package Archives, 개인 패키지 프로그램 저장소) 삭제하기

오늘 이야기는 멜트다운 이슈로 업데이트가 꼭 필요한 상황인데 보안 문제로 일부 PPA(Personal Package Archives, 개인 패키지 프로그램 저장소)에서 업데이트 안되는 상황을 해소하는 방법입니다.

다시 이러지말아야지 하면서도 서버를 만지다보면 문제를 발견하게 되고, 이 문제 해결 과정에서 나중을 위해서 기록으로 남겨야할 필요성이 들면서 다시 포스팅을 하게 되었습니다.

멜트다운 문제로 업데이트를 시도하다.

요즘 멜트다운 문제로 시끄럽습니다. 이 서버 분야에서는 특히 민감한 문제인 것 같습니다. 하여 제가 사용하는 우분투에서도 며칠전 프로그램 패치를 내놓았습니다. 그리고 제가 운영하는 Vultr에서도 며일내로 업뎅트를 한다고 공지가 나왔더군요.

아무튼 이 중요한 시기에 업데이트를 하려고 서버에 접속했는데요. 그동안 몇번 업데이트를 하려다 이런 저런 이유로 못했는데요. 이슈가 점점 커가는 듯 싶어 오늘만은 업데이트하리라는 굳은 결심을하고 서버에 진입했지만 생각지도 못했던 문제에 봉착했습니다.

업데이트를 진행하다 서버는 아래와 같은 메시지를 내놓고 중단해 버렸습니다.

@happist:~# apt-get update
Get:1 http://security.ubuntu.com/ubuntu artful-security InRelease [78.6 kB]
Hit:2 http://archive.ubuntu.com/ubuntu artful InRelease                                               
Hit:3 http://ppa.launchpad.net/ondrej/php/ubuntu artful InRelease                                     
Hit:4 http://nginx.org/packages/mainline/ubuntu xenial InRelease                                        
Get:5 http://archive.ubuntu.com/ubuntu artful-updates InRelease [78.6 kB]                               
Ign:6 http://ppa.launchpad.net/rtcamp/nginx/ubuntu artful InRelease                                     
Hit:7 http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu xenial InRelease                                  
Get:8 http://archive.ubuntu.com/ubuntu artful-backports InRelease [72.2 kB]                    
Err:9 http://ppa.launchpad.net/rtcamp/nginx/ubuntu artful Release        
  404  Not Found
Reading package lists... Done                                            
E: The repository 'http://ppa.launchpad.net/rtcamp/nginx/ubuntu artful Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

이게 무슨 문제인가를 살펴보니 rtcamp/nginx라는 PPA(Personal Package Archives를 사용하는 없데이트는 보안상 허용되지 않는다고 합니다.

아무리 생각해도 rtcamp/nginx는 무엇 때문에 설치했는지 기억이 나질 않은데요. 아마 이런 저런 시도를 하면서 rtcamp/nginx라는 PPA를 사용해 Nginx를 설치했나 봅니다.

이렇듯 서버를 운영하다 보면 알게 모르게 여러가지 PPA(Personal Package Archives, 개인 패키지 프로그램 저장소)에서 프로그램을 설치하게 됩니다. 그런데 이 PPA(Personal Package Archives)는 아무래도 신뢰성이 떨어지므로 꼭 믿을만하고 널리 알려진 PPA(개인 패키지 저장소)를 이용하라는 가이드를 많이 받고 있죠.
이런 PPA가 별 문제없이 지속적으로 작용하면 좋으련만 가끔은 보안등의 이유로 시스템에서 거부하는 경우가 생김니다. 이번이 그런 케이스인가 봅니다.

문제가 되는 PPA 삭제 방법

보안이 문제된다면 당연히 이러한 위험 요소가 있는 PPA 사용은 회피해야 겠지요. 그리고 이 PPA 자체를 서버에 남겨 놓아서도 안될것입니다.

그러면 이 PPA를 어떻게 없앨까요?

리눅스에서는 PPA 삭제는 설치와 유사한 방법으로 진행합니다.

add-apt-repository --remove ***(PPA)

이러한 방법에 따라 rtcamp/nginx라는 PPA를 삭제해 보죠.

add-apt-repository --remove rtcamp/nginx

그러면 아래와 같은 메세지를 내면서 계속 삭제를 하려면 엔터를 치고, 삭제를 멈추려면 Ctrl-c 를 치라고 합니다. 당근 엔터를 쳐야지요.

그러면 별다른 메세지없이 지워집니다.

Nginx build by rtCamp. This is mainly used and maintained for EasyEngine project - http://github.com/rtCamp/easyengine

You can use it directly as well.
More info: https://launchpad.net/~rtcamp/+archive/ubuntu/nginx
Press [ENTER] to continue or Ctrl-c to cancel removing it.

그 다음에는 정상적으로 update 및 upgrade가 됩니다.

@happist:~# apt-get update

Hit:1 http://ftp.kaist.ac.kr/mariadb/repo/10.2/ubuntu artful InRelease
Get:2 http://security.ubuntu.com/ubuntu artful-security InRelease [78.6 kB]                                                
Hit:3 http://ppa.launchpad.net/nginx/stable/ubuntu artful InRelease                                                        
Hit:4 http://archive.ubuntu.com/ubuntu artful InRelease                                                                    
Get:5 http://archive.ubuntu.com/ubuntu artful-updates InRelease [78.6 kB]                                                  
Hit:6 http://ppa.launchpad.net/ondrej/php/ubuntu artful InRelease                                                          
Get:7 http://archive.ubuntu.com/ubuntu artful-backports InRelease [72.2 kB]                                                
Hit:8 https://packages.nginx.org/unit/ubuntu artful InRelease
Fetched 229 kB in 1s (135 kB/s)                    

Reading package lists... Done

광고 – Vultr 25$ 프로모션

Vultr에 관심이 있다면 아래 프로모션으로 Vultr에 가입해 보세요.
물론 그전에 더 좋은 프로모션이 있는지 체크해 봐야 합니다.

Vultr의 좋은 점이 다양한 프로모션이 많아서 초기에 저렴하게 이용할 수 있다는 점이었죠. 최근에는 그런 좋은 조건들이 많이 사라진 것 같긴 합니다.

25$ 프로모션으로 Vultr 가입하기

우분투 서버에서 PPA(Personal Package Archives, 개인 패키지 프로그램 저장소) 삭제하기 5

동영상이 쇼핑 방법을 바꾸고 있다 – 쇼핑에 가장 큰 영향을 미치는 동영상 정보

0

Executive Summary

  • 컨텐츠가 있는 곳에 검색이 있다. 쇼핑 정보가 가장 많은 아마존 검색이 활성화 되었다. 가두리지만 일정 정보를 모아 놓았던 네이버에 검색이 몰렸다. 그리고 컨텐츠가 풍부해지는 유튜브로 검색이 몰리는 것

  • 유튜브 검색은 쇼핑을 위한 검색으로 진화 중, 유튜브 사용자 40%는 상품 구매전에 유튜브에서 검생을 일상화 함

  • 소셜 정보 중 동영상이 구매로 이어지는 전환율이 가장 높았음. 86%는 동영상에서 영향을 받았으며, 텍스트는 겨우 44%에 불과

  • 동영상 쇼핑 검색에서 새로운 기회들이 창출되고 있음

1. 컨텐츠 있는 곳에 검색이 있다.

요즘 유튜브의 역활이 굉장히 커졌습니다.
예전에는 네이버 검색이나 구글 검색을 당연하다고 생각했는데, 요즘 젊은 세대는 무엇을 찾을 때 유튜브 검색을 당연 시하고 있습니다. 우리 은우나 은결이도 동영상을 많이 보기 때문이지만 검색의 상당 부분을 유튜브에서 하고 있더군요.

이는 보고 싶은 컨텐츠가 있는 곳에서 검색을 하는 것으로 어쩌면 당연한 귀결일 것입니다. 미국에서 쇼핑 검색의 70%를 아마존에서 하는것처럼 말입니다. 물론 그 사람들도 구글 검색을 그 못지 않게 합니다만 아마존 검색이 더 전환율이 높기 때문에 구글로서는 가슴 아푼 일이겠지요.

▽ 컨텐츠 있는 곳에 검색이 있다는 것을 보여주는 아마존,
미국 영국 프랑스 독일 소비자들이 상품 구매전에 탐색하는 사이트

미국 영국 프랑스 독일 소비자들이 상품 구매전에 탐색하는 사이트 Sites Used by Internet Users in Select Countries to Find and Research Products Before Making a Purchase, Aug 2017

유튜브 검색이 활성화되고 젊은층에서 유튜브 검색이 더 활성화되는 이유는 유튜브에 젊은이들이 좋아하는 컨텐츠가 있기 때문입니다.

2. 왜 소비자는 유튜브에서 상품 검색을 할까?

이러한 유튜브 검색이 이제는 단순 동영상 검색을 넘어 구매로 넘어가기전의 상품 정보 검색에서도 맹위를 떨치고 있다고 합니다.
이러한 현상에 대해서 이마케터가 How Video Is Changing The Way Consumer Shop이라는 자료를 발표했는데요. 이 내용을 간략 정리해서 공유합니다.

소비자들의 상품 구매전에 유튜브 검색이 크게 증가했습니다. Think with Google에서 밝힌 데이타에 따르면 유튜브 사용자의 40%는 상품에 대해서 더 알아 보기 위해 유튜브와 같은 동영상 플랫폼을 방문했다고 조사되었습니다.

그러면 이 소비자들은 유튜브와 같은 동영상 풀랫폼에 어떤 이점이 있다고 생각할까요? 당연하게도 그들은 제품을 실제 볼수 있기 때문이라고 답합니다. 동영상에 비해서 일반 상품 판매 사이트나 블로그는 동영상 중심으 제공하는 유튜와 같은 플랫폼 만큼의 디테일한 정보를 줄 수 없습니다.

구글 Think With Google에 따르면 Target이나 Homegoods같은 곳에서 쇼핑하는 사람들을 대상으로 제작해 상품 평가 시 가상 태그를 붙여 유튜브에서 보도록 유도했던 “shop with me”와 같은 상품 소개 동영상 시청율은 지난 2년간 1,000% 증가했다고 합니다.

이러한 동영상은 동영상 시청 시간이 증가하고(평균 미국 성인은 하루 81분 디지탈 비디오를 본다고 함), 동영상 컨텐츠가 점점 풍부해지면서 구매 과정에서 동영상의 영향이 점점 커지고 있습니다.
동영상은 다른 매체에 비해서 이미지와 나래이션을 추가하여 가장 설득력이 강한 컨텐츠로 거듭나고 있으며, 동영상을 통해서 감정 이입을 쉽게 할 수 있는 잇점이 있습니다. 활자 매체에 비해서 몰입도가 높고 이성적인 경계를 쉽게 무너뜨릴 수 있어 기존 매체가 가지지 못한 강력한 영향력을 가지게 된 것입니다. 동영상을 통해서 다른 사람들이 신상품을 고르려고 고민하는 것을 볼 수 있고, 또 신상을 입고 있는 것을 보면서 그리고 신상을 입고서 멋진 시간을 보내는 것을 보여줌으로써 기존 매체가 할 수 없었던 엄청난 감정 이입을 가능케 합니다.

인플러언서 마케팅 및 소셜 미디어가 소비자 행동에 미치는 영향을 조사한 gen.video와 Geometry Global의 조사에 따르면 소셜 사용자들에게 동영상을 통한 구매 결정 영향이 가장 컸다고 밝히고 있습니다.
이 조사에 따르면 소셜 미디어 컨텐츠 중 구매에 미치는 영향은 동영상이 86%로 가장 높았고 이미지가 78% 그리고 텍스트는 44%에 불과했습니다. (중복 응답이므로 총합이 100%를 넘는다.)

이에 대한 그래프는 아래를 참조하세요.

동영상이 쇼핑 방법을 바꾸고 있다 - 쇼핑에 가장 큰 영향을 미치는 동영상 정보 6

3. 마치며

어쩌면 트렌드가 동영상으로 흘러갔다는 사실은 진부한 언명일 수 있습니다.
근래 동영상의 중요성에 대해서 엄청나게 이야기되었기 때문이고 인스타그램이나 스냅챗이나 오래전부터 (짧은) 동영상에 승부를 걸고 있고, 페이스북이나 애플이 영상 컨텐츠를 활성화하기 위해 엄청난 노력을 한다는 것은 주지의 사실이니깐요.

그러나 쇼핑의 관점에서는 아직도라는 생각이 있을 수 있는데 이 부분도 이미 많은 부분이 shift되고 있다는 것을 보여주고 있습니다.

여기서 엄청난 새로운 기회들이 만들어지고 있습니다. 그게 어떤식으로 구현될지 고민해 봐야겠습니다.

4. 참고 자료

구글과 페이브북의 디지탈 광고 독점과 광고업계의 아마존을 통한 견제 움직임

금연 광고를 이렇게 멋지게 만들 수 있다니!! 뉴욕에서 다시 온에어 되는 아일랜드 금연 광고 I Will Survive

0

여기 아일랜드 금연 광고가 있습니다. 이 광고는 2017년 4월 아일랜드에서 제작, 방영되어 큰 호평과 소기의 금연 캠페인 성과를 거두었습니다.

아일랜드 HSE의 금연 광고 I Will Survive

아일랜드 정부 보건 서비스인 HSE가 공개한 이 광고는 글로리아 게이너(Gloria Gaynor)의 유명한 1978년 노래를 립싱크하면서 금연을 맹세하는 장면을 담고 있습니다.

이 광고는 뛰어난 작품성으로 2017년 많은 광고제에서 수상(Kinsale Shark 페스티발, Epica상 수상 등)했고 2018년 뉴욕시는 이 광고를 뉴욕에서도 온에어 하겠다고 결정했습니다.

실제 사람들이 금연를 결심하는 결정적인 진실의 순간이 있습니다. 이 광고는 글로리아 게이너(Gloria Gaynor)의 노래 “I Will Survive”의 음악과 가사를 사용했습니다. 이 노래는 금연을 결심하는 많은 사람들이 담배로부터 해방되는 기분과 건강한 상태가 되는 것을 축하하는 감정과 상태를 잘 반영하고 있습니다. – 아일랜드 HSE 관계자

실제로 2007년이후 담배를 피우는 아일랜드 사람들의 비율은 29%에서 22%로 낮아졌습니다. 이는 인구의 27%가 과거에는 담배를 피우는 사람들이었고 아일랜드 15세이의 백만명 이상이 금연을 성공적으로 이루었다는것을 말하고 있죠.

이 광고의 댓글에는 광고를 피우지 않은 사람들 이야기보다 더 많은 금연 사연들이 올라왔습니다.

Gloria Gaynor — I Will Survive Official Video HD

I Will Survive 노래 가사

I Will Survive Lyrics


At first, I was afraid, I was petrified
Kept thinking, I could never live without you by my side
But then I spent so many nights thinking, how you did me wrong
And I grew strong and I learned how to get along

And so you’re back from outer space
I just walked in to find you here with that sad look upon your face
I should have changed that stupid lock
I should have made you leave your key
If I’d known for just one second you’d be back to bother me

Go on now, go, walk out the door, just turn around now
‘Cause you’re not welcome anymore
Weren’t you the one, who tried to hurt me with goodbye?
Did you think I’d crumble? Did you think I’d lay down and die?

공익광고-금연관련