풍문으로만 듣던 Golang. 황무지에 꽃을 피우자.

벤치마크-'Go 언어. Golang.'

(출처 : http://www.techempower.com/benchmarks/#section=data-r9&hw=i7&test=json)

'Go가 이렇게 빠르다고?'
JSON serialization에서 특히 강세를 보이고, 다른 테스트에서도 상위권을 차지하는
이 벤치마크 결과를 본 후 Go 언어에 본격적인 관심을 두게 되었다.

웹을 주로 다루는 개발자의 관점에서 Go 언어의 첫 느낌.
그동안 많은 개발자의 사랑을 받은 자바, 파이썬, 루비, PHP 등엔 필요한 도구들이 이미 개발되어있다.
농사로 치자면 이런 언어들엔 트랙터와 콤바인은 물론, 이앙기와 탈곡기 등 필요한 도구가 다 잘 갖춰있다.
그런데 Go 언어로 개발하려니, 삽 한 자루로 굳은 땅을 개척해야 하는 느낌이었다.
와. 진짜.
잡초 조차 보기 힘든 황무지에 삽 한 자루 들고 발을 디딘 느낌이란...
참으로 막막하지만, 소로우가 살던 월든 호수를 동경하는 개발자로서 이런 황무지가 왠지 끌린다.
이 황무지 Go언어를 근 일 년 정도 접하며 느낀 점은 썩 괜찮다는 거다.
아직 많은 도구가 개발되진 않았지만 충분히 발전 가능성이 있는 언어라고 본다.

혹자는 시대를 역행하는 언어이고 후지니까 쓰지 말자고 한다.
초보자를 위한 언어지, 똑똑한 프로그래머를 위한 언어는 아니라고 한다.
그러나 Google, Spotify나 Docker같은 커다란 서비스에서 사용한다는 건,
그만큼 매력이 있다는 뜻이 아닐까?
만으로 여섯 살도 안된 언어가 이 정도면, 오 년 후에는 더 나은 모습을 기대할 만 하지 않을까?

사실 커뮤니티만 좀 더 발전해도 아주 흥하겠다.
루비나 파이썬과 비슷한 생산성을 가지고 성능은 몇 배 낫다면, 충분히 매력적이니까.
이 황무지에서도 잘 자라는 아몬드 나무를 심어볼 만하다.
그럼 봄이되면 꽃이 필테고, Go언어에도 봄 기운이 만연할 터이다.

아래에는 Go 언어에 아몬드 나무나 개나리, 진달래, 목련, 철쭉 등을 심어보고자 하는 개발자가 읽어볼 만한 거리를 정리하였다.


맛보기


패키지 정보


커뮤니티


파이썬 사용자라면?


더 읽어볼 거리


긍정적인 평가


비판



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

똑똑한 웹사이트 성능 테스트. sitespeed.io


웹 사이트 성능을 테스트해주는 곳은 많다.
온라인에서 사이트 성능을 측정해주는 핑돔(http://tools.pingdom.com/fpt/) 같은 서비스도 있고,
크롬을 주로 쓰는 개발자라면 크롬 개발자 도구에 Pagespeed(https://developers.google.com/speed/pagespeed/)을 깔아 쓰는 방법도 있다.

sitespeed.io(http://www.sitespeed.io/)는 우연히 찾아낸 웹사이트 성능 테스트 도구인데,
이걸 보고 웃음이 절로 나왔다.
스머프처럼 랄랄라랄랄라 노래를 흥얼거리고 깡총 거리면서 걷게 되었다.

나를 기분 좋게 한 sitespeed.io의 특징

  • 여러 페이지를 한 번에 테스트할 수 있다.
  • 다양한 뷰포트를 지원한다.
  • 유저 에이전트를 직접 지정해도 된다.
  • 결과를 html 페이지로 깔끔하게 보여준다.
  • 덤으로 페이지별 스크린 샷도 찍어 준다.
'아! 정말 아름다운 테스트 도구다!'
라는 감탄이 절로 나왔다.
그러나 기대가 크면 좌절도 큰 법.
내가 원하는 용도로 쓰려면 기능이 부족했다.

아쉬운 점 두 가지.

  • RESTful 사이트를 지원하지 않는다.
  • 테스트에 쿠키 정보를 넘기지 못한다.
이 두 가지가 되지 않는다면, 이 도구는 내게 아무 쓸모가 없다.
보기만 좋지, 제대로 된 능력을 발휘하지 못하는 것이다.
마치 사막에 버려진 고래처럼...

다행인 점은 sitespeed.io(http://www.sitespeed.io/)가 오픈소스라는 점이다.
그래서 나는 이 녀석과 불금을 보내고, 주말까지 함께했다.
덕분에 RESTful테스트는 해결되었고, 쿠키부분은 몇 부분 더 손 봐야 하지만,
곧 두 가지를 보완한 정식 버전이 나올 예정이다.

혹시 정식 버전이 나오기 전에 써보고 싶다면 아래 두 저장소를 clone 받아 사용하면 된다.
* https://github.com/dorajistyle/yslow
* https://github.com/dorajistyle/sitespeed.io

yslow를 컴파일해서 sitespeed.io/dependencies/yslow-3.1.5-sitespeed.js로 붙여넣으면 테스트가 가능하다.

yslow 컴파일 방법

sudo make phantomjs

curl 쿠키 저장 (여기서 나오는 쿠키 정보를 텍스트로 넣어주면 된다.)

curl -c sitespeed.io/cookie -X POST -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8" -d 'loginEmail=admin@dorajistyle.pe.kr&loginPassword=password' http://dorajistyle.url/authentications

yslow 쿠키 테스트(yslow 폴더에서 실행)

phantomjs ./build/phantomjs/yslow.js --info basic --format plain 'http://dorajistyle.url/admin' -C '{"name":"session","value":"sessionvaluestring","domain":"localhost"}'

screenshot 쿠키 테스트 (sitespeed-result 폴더에 저장됨)

phantomjs --ignore-ssl-errors=yes sitespeed.io/dependencies/screenshot.js 'http://localhost/#!test/page' sitespeed.io/sitespeed-result/screenshots/screenshot.png 1280 800 'Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36' true '{"name":"session","value":"sessionvaluestring","domain":"localhost"}'

로그를 포함한 sitespeed.io 쿠키 테스트 (sitespeed.io 폴더에서 실행)

sh -x ./bin/sitespeed.io -f batchlist -k true -p 10 -C '{"name":"session","value":"sessionvalue_string","domain":"localhost"}'



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

블로그 성능을 최적화 하여 로딩 속도를 빠르게 하는 것이 중요한 이유는, 길고 긴 로딩 시간을 기다려주는 방문자는 없기 때문입니다.

저 역시도 그래요. 어떤 사이트에 들어갔는데, 사이트가 로딩을 하는 건지, 컴퓨터가 다운이 된 건지 한참 동안 반응이 없다면, 그 웹사이트나 블로그 창을 닫아 버립니다. 요즘 들어 제 블로그에 들어왔을 때 창을 자꾸 닫아 버리고 싶더군요. 저야 제 블로그니까 좀 느려도, 최적화가 안되어 있어도 참고 쓸 수 있지만, 다른 사람들이 방문했다면, 느려서 속이 터질 것이란 생각이 들었어요. 어떻게 하면 블로그를 최적화해서 속도를 빠르게 만들 수 있을까요? 몇 가지 방법을 알아보도록 하겠습니다.

by 月風

블로그 속도 최적화

최적화 이전-'블로그 속도 최적화'
최적화를 하기 전 블로그의 속도

구글 웹마스터 도구에서 블로그 성능 측정을 해보니,
전세계의 웹사이트들 중에 무려 83%가 제 블로그보다 빠르군요.
그렇다면 제 블로그에 방문하는 분들은 한번 와보고는 다시 찾지 않게 될 확률이 높습니다.
평소에 즐겨 찾는 다른 사이트 보다 '느려 터진' 블로그로 인식이 될 테니까요.
그럼 단계별로 블로그 성능을 최적화해서 속도를 올려보겠습니다.


메인화면(위젯이 적음) 기본적인 최적화 후의 속도 측정-'블로그 속도 최적화'
메인화면(위젯이 적음) 기본적인 최적화 후의 속도 측정

메인화면(위젯이 적음) 기본적인 최적화 후의 속도 측정-'블로그 속도 최적화'
메인화면(위젯이 적음) 기본적인 최적화 후의 속도 측정

포스트(위젯이 많음) 기본적인 최적화 후의 속도 측정-'블로그 속도 최적화'
포스트(위젯이 많음) 기본적인 최적화 후의 속도 측정

-'블로그 속도 최적화'
포스트(위젯이 많음) 기본적인 최적화 후의 속도 측정

기본적인 속도 최적화를 하는 방법은 간단합니다.
CSS는 위에 위치하게, Javascript는 아래에 위치하도록 합니다.
script tag 의 defer속성과 async속성을 잘 이용하면 큰 효과를 볼 수 있어요.
CSS와 Javascript는 압축하여 사용 합니다. (css compressor, javascript compressor와 같은 도구가 있습니다.)
이미지 용량을 줄입니다. (Smushit, RIOT과 같은 도구가 있습니다.)
img 태그를 사용할 땐 width와 height를 이용하여 이미지 크기를 지정 합니다.
이것으로 약간의 속도 개선이 이루어졌지만, 체감상으로는 큰 차이를 못느꼈어요.
그래서 블로그 성능 저하의 가장 큰 원인인 위젯을 정리했습니다.


메인화면(위젯이 적음) 위젯 최적화 후의 속도 측정-'블로그 속도 최적화'
메인화면(위젯이 적음) 위젯 최적화 후의 속도 측정

메인화면(위젯이 적음) 위젯 최적화 후의 속도 측정-'블로그 속도 최적화'
메인화면(위젯이 적음) 위젯 최적화 후의 속도 측정

포스트(위젯이 많음) 위젯 최적화 후의 속도 측정-'블로그 속도 최적화'
포스트(위젯이 많음) 위젯 최적화 후의 속도 측정
포스트(위젯이 많음) 위젯 최적화 후의 속도 측정-'블로그 속도 최적화'
포스트(위젯이 많음) 위젯 최적화 후의 속도 측정

우선 블로그 성능 저하에 아주 크게 영향을 끼친 mixsh버튼을 제거했어요.
하지만 여전히 facebook과 Disqus라는 무거운 위젯이 남아 있군요.
위젯을 몽땅 지워버리자니 허전하고, 

그렇다고 이대로 사용하자니 블로그가 느려서 속터집니다.
어떻게 해야 위젯의 속도를 빠르게 할 수 있을까요?
How To Speed Up Your Website Page Load Performance By Delaying The Load Of JavaScript And Widgets - Part 2에서 그 방법을 아주 잘 설명해 두었습니다.

javascript의 async속성과 defer속성을 잘 활용해서 위젯 속도를 최적화 하는 방법이에요.
위젯 최적화 전과 비교해보니 확실히 속도가 빨라졌죠?^^
블로그의 느린 속도에 속이 터졌던 분들에게, 이 글이 도움이 되었으면 좋겠네요.

아래의 유용한 웹 페이지 성능 분석 도구를 이용하면, 블로그 성능을 분석 할 수 있어요.


Webpagetest

Page Speed

YSlow




by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!