doortts | 2011-06-30 목요일 오후 11:41 | Better SW Development | 원본
한때 AMP라 불리는 개발세트가 있다. Apache webserver + MySQL + Php의 앞 글자를 따서 AMP라고 불렀다. 최근에는 리눅스 OS까지 붙여서 LAMP라 부른다. 하지만, 발음은 마치 RAMP처럼 들리기 때문에 오히려 단어가 더 친근하게 느껴지기도 한다.
PHP는 자바가 웹 애플리케이션 개발언어로 인기를 얻게 되면서 한동안 웹 애플리케이션 개발 시장에서 저평가 받다가, 2000년대 중후반을 넘어서며 프레임워크들의 발전/발명과 함께 다시금 인기가 증가한 묘한 개발언어이다.(물론 개인적인 느낌탓일 수도 있겠지만 어쨌든.) 아마 국내에서 ASP가 초큼 무시당하다가 싸이월드가 ASP로 만들어진 초거대 서비스임을 자처하면서 ASP 개발자들이 자부심을 느꼈던 것과 비슷하게, 전세계 7억명이 넘는 사람들이 사용하는 페이스북이 PHP로 되어있다는 사실이 PHP인기 지속의 한 원동력이 되기도 했다.
게다가 PHP가 버전 5를 들어서며 객체지향 프로그래밍 지원도 강력해 져서 더 높은 수준의 OO개발이 가능해졌다.
PHP와 MySQL 중심의 기사이긴 하지만 사실 그 근간에 있는 내용들은 다른 애플리케이션을 작성할때도 참고로 삼을 만한 조언들이 몇 가지 있다.
그리고 그 조언들 중 또 몇 가지는, 2:8의 법칙처럼 간단하면서도 크게 효과를 볼 수 있는 접근 방법이기도 하다.
그럼, 어떤 메시지인지 살펴보자.
1. 파싱과 컴파일은 비용이 많이 드는 작업이니까 줄일수 있으면 좋다.
다르게 해석하면 오퍼레이션 단계를 줄이거나 없애는 것이 도움이 된다.
: dW 기사에서는 "opcode 캐시"라는 내용에서 확인 가능.
2. 로드밸런싱. 즉, 헤비한 트래픽이 발생하는 건 티어(tier)를 분리시킨다.
: "데이터베이스 최적화 -> 데이터베이스를 자체 시스템에 넣기"에서 내용 확인가능
3. 적절한 모델링과 인덱스가 만들어져야 한다.
: "올바르게 테이블 설계 및 인덱스" 에서 확인 가능
4. 캐시 적극사용
: "opcode 캐시", "효율적인 데이터 캐시" 항목에서 내용 확인
약간 중구난방같은 느낌의 팁들이긴 하지만 어쨌든 어떤 애플리케이션을 만들든, 한 번쯤은 고민해 볼 만한 내용이다.
음.. 그런데 혹시 팁 치고는 내용의 수준이 너무 낮다고 여겨지는가?
그런 느낌이 드는 것 치고는 현장에서는 훨씬 더 흔히 무시되는 경우가 많다는 걸 알아줬으면 좋겠다.
때로는 우선 내 주머니 안부터 살펴보는 습관이 필요한 법이다. :D
{lang: 'ko'}
Comments
LAMP는 제가 하던 회사가 초기(2000년도 전후)에 회사 웹 서비스 구축 기술 스택으로 내세웠던 이름이죠. 한동안 높은 생산성 덕에 잘 써먹었지만 (물론 MySQL은 거의 안 쓴) 고유의 성능 문제를 해결할 길이 없어 포기... 암튼 나중에 저 이름이 퍼지는 거 보면 "사람들 생각이 다 거기서 거기군"하는 생각이...
opcode 캐시로 성능을 많이 높일 수 있기는 하지만 불안해요. 코드가 변경된 걸 인식하지도 못하고 메모리 누수가 생기기도 하고 꼬이기도 하고... 애플리케이션 설정도 매번 초기화 되기 때문에 메타 프로그래밍이 어렵고 opcode 캐시도 무척 불안해요. 리눅스, 윈도, 솔라리스 이외에서는 설치도 잘 안 되요.
원래 php의 기업용 시장의 전략은 java나 .net의 프론트엔드 기술로 자리매김하는 거였는데 갑자기 ror이 뜨는 바람에 symfony나 cakephp 같은 놈이 득세를...
뭐. 사실 이야기 하신대로, 외국이나 우리나라나 생각하는거 거의 비슷해요. 다만 그들과 우리가 처한 상황이 다르다보니, 그리고 닭이냐 달걀이나 논란이겠지만 어쨌든 지금은 따라가기도 벅찬 수준인 경우가 많은것 같아요. 그러다 보니 무의식중에 국내 엔지니어가 평균적이고 상대적으로 외국 엔지니어들에 비해 못 미치는 느낌을 주는것 같고요.
@doortts (doortts) 님이 작성한 게시글입니다. ---
한때 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
{lang: 'ko'}
Comments
LAMP는 제가 하던 회사가 초기(2000년도 전후)에 회사 웹 서비스 구축 기술 스택으로 내세웠던 이름이죠. 한동안 높은 생산성 덕에 잘 써먹었지만 (물론 MySQL은 거의 안 쓴) 고유의 성능 문제를 해결할 길이 없어 포기... 암튼 나중에 저 이름이 퍼지는 거 보면 "사람들 생각이 다 거기서 거기군"하는 생각이... opcode 캐시로 성능을 많이 높일 수 있기는 하지만 불안해요. 코드가 변경된 걸 인식하지도 못하고 메모리 누수가 생기기도 하고 꼬이기도 하고... 애플리케이션 설정도 매번 초기화 되기 때문에 메타 프로그래밍이 어렵고 opcode 캐시도 무척 불안해요. 리눅스, 윈도, 솔라리스 이외에서는 설치도 잘 안 되요. 원래 php의 기업용 시장의 전략은 java나 .net의 프론트엔드 기술로 자리매김하는 거였는데 갑자기 ror이 뜨는 바람에 symfony나 cakephp 같은 놈이 득세를...
박성철 | 2011-07-01 금요일 오전 9:31
--
상표등록이라도 하지 그러셨어요~
뭐. 사실 이야기 하신대로, 외국이나 우리나라나 생각하는거 거의 비슷해요. 다만 그들과 우리가 처한 상황이 다르다보니, 그리고 닭이냐 달걀이나 논란이겠지만 어쨌든 지금은 따라가기도 벅찬 수준인 경우가 많은것 같아요. 그러다 보니 무의식중에 국내 엔지니어가 평균적이고 상대적으로 외국 엔지니어들에 비해 못 미치는 느낌을 주는것 같고요.
실제론 그렇지 않은데 말입니다.
doortts | 2011-07-02 토요일 오후 5:10
--
새로운 방향을 제시하면 이미 많은 이들이 다 알고 있다고 이야기한다. 다 알고 있는 기술이지만 실상 필요할 때 적용하지는 않는다. 이것이 우리의 현실인 듯.. 알고 있으면 적절한 곳에 활용해야지 왜 한가지 방법으로만 개발하냐고?
아무리 하찮다고 생각하는 것이라도 실제 사용할 때 의미가 있고, 가치가 있는 법..
자바지기 | 2011-07-01 금요일 오전 9:40
--
맞아요. 아는게 중요한게 아닌데 말입니다. 행하지 않는 도는 길이 아니라 했던것 처럼 말이죠.
부족하지만 실천하기 위해 열심히 노력하며 살아보아요.형! :D
doortts | 2011-07-02 토요일 오후 5:12
--
Cakephp에서 Yii로 갈아타고 개발중인데!! 내름 흡족하면서.. 개발하고 있어요..
아직 개발중이라.. 운영하면서 생기는 문제는 ㅋ 파악은 못했지만..ㅋ 다만 apc 적용하려고 하구 있는데.. 머가 좀 문제가 있어서 ㅋ 아직 보류중이구요..;
예전에는 Java가 최고라는 어리석은 생각에서 다른 언어에 대한 편견이 있었는데.. 이젠 언어가 좋던 나쁘던..ㅋ 즐겁게 코딩하면 장땡이라는 생각으로 바뀌더라구요.. (가끔 짜증날땐 있지만요@.@)
무튼 PHP 관련 블로깅 보니까..ㅋㅋ 반가운걸요 ㅎㅎ 혼자 막 동떨어진 기분이 막 들려던 참이었거든요 ㅋㅋ
is윤군 | 2011-07-02 토요일 오후 6:2
--
좋은 정보를 주셔서 감사합니다
jogo do sonic | 2011-08-30 화요일 오후 4:6
--
--- attachments --- mostpopularframework2011.jpg