본문 바로가기

Better SW Development

[dW Review] LAMP 애플리케이션을 조정하는 다섯 가지의 간단한 방법

한때 AMP라 불리는 개발세트가 있다. Apache webserver + MySQL + Php의 앞 글자를 따서 AMP라고 불렀다. 최근에는 리눅스 OS까지 붙여서 LAMP라 부른다. 하지만, 발음은 마치 RAMP처럼 들리기 때문에 오히려 단어가 더 친근하게 느껴지기도 한다.

PHP는 자바가 웹 애플리케이션 개발언어로 인기를 얻게 되면서 한동안 웹 애플리케이션 개발 시장에서 저평가 받다가, 2000년대 중후반을 넘어서며 프레임워크들의 발전/발명과 함께 다시금 인기가 증가한 묘한 개발언어이다.(물론 개인적인 느낌탓일 수도 있겠지만 어쨌든.) 아마 국내에서 ASP가 초큼 무시당하다가 싸이월드가 ASP로 만들어진 초거대 서비스임을 자처하면서 ASP 개발자들이 자부심을 느꼈던 것과 비슷하게, 전세계 7억명이 넘는 사람들이 사용하는 페이스북이 PHP로 되어있다는 사실이 PHP인기 지속의 한 원동력이 되기도 했다.

게다가 PHP가 버전 5를 들어서며 객체지향 프로그래밍 지원도 강력해 져서 더 높은 수준의 OO개발이 가능해졌다.

(아. 근데 내가 지금 하려는 이야기가 이건 아닌데...)

출처: http://www.php-developer.org/most-used-php-framework-the-popular-top-7-list-in-year-2011/
[인기로는 Zend이지만, 떠오르는 기세로는 Yii나 Codeigniter를 꼽고 싶다]


이번달 올라온 IBM dW기사중에  "LAMP 애플리케이션을 조정하는 다섯 가지의 간단한 방법"이라는 기사가 있다.

 LAMP 애플리케이션을 조정하는 다섯 가지의 간단한 방법
http://www.ibm.com/developerworks/kr/library/os-5waystunelamp/index.html?ca=drs-

PHP와 MySQL 중심의 기사이긴 하지만 사실 그 근간에 있는 내용들은 다른 애플리케이션을 작성할때도 참고로 삼을 만한 조언들이 몇 가지 있다.
그리고 그 조언들 중 또 몇 가지는, 2:8의 법칙처럼 간단하면서도 크게 효과를 볼 수 있는 접근 방법이기도 하다.
그럼, 어떤 메시지인지 살펴보자.

1. 파싱과 컴파일은 비용이 많이 드는 작업이니까 줄일수 있으면 좋다.
다르게 해석하면 오퍼레이션 단계를 줄이거나 없애는 것이 도움이 된다.
: dW 기사에서는 "opcode 캐시"라는 내용에서 확인 가능.

2. 로드밸런싱. 즉, 헤비한 트래픽이 발생하는 건 티어(tier)를 분리시킨다.
: "데이터베이스 최적화 -> 데이터베이스를 자체 시스템에 넣기"에서 내용 확인가능

3. 적절한 모델링과 인덱스가 만들어져야 한다.
: "올바르게 테이블 설계 및 인덱스" 에서 확인 가능

4. 캐시 적극사용
: "opcode 캐시", "효율적인 데이터 캐시" 항목에서 내용 확인

약간 중구난방같은 느낌의 팁들이긴 하지만 어쨌든 어떤 애플리케이션을 만들든, 한 번쯤은 고민해 볼 만한 내용이다.

음.. 그런데 혹시 팁 치고는 내용의 수준이 너무 낮다고 여겨지는가?
그런 느낌이 드는 것 치고는 현장에서는 훨씬 더 흔히 무시되는 경우가 많다는 걸 알아줬으면 좋겠다.

때로는 우선 내 주머니 안부터 살펴보는 습관이 필요한 법이다. :D