티스토리 뷰

WEB2.0/프로그래밍

PHP 창시자 rasmus를 만났다

나를찾는아이 2009. 4. 23. 11:43
728x90
반응형
PHP의 창시자 rasmus를 만났다.

내가 아주 즐겨쓰는 언어인 PHP.

PHP의 창시자를 만난다는 느낌이 마치 내가 한글을 쓰고 있는데 세종대왕님을 본다는 느낌이랄까.

이건 좀 오반가. 그렇다면, 내가 지금 전파사를 하고 있는데 에디슨을 만난다는 느낌일까.

왠지 그런게 있었다. 그리고 묻고 싶었던것도 몇가지 있었고.

PHP의 창시자 정도되면 어떠한 얘기를 해주는지 정말 궁금했다.

행사를 일찌감치 알았길래 다행히 제시간에 사전등록을 마쳐 참석할수 있었다.







Simple is Hard
라는 큰 타이틀을 가지고 강연이 시작되었다.

http://talks.php.net/show/korea09

프레젠테이션은 위의 링크에서 보이는 자료로 진행되었다.


첫번째 세션이 php 성능 최적화, 퍼포먼스 관련한 내용이었고

두번째 세션이 보안, 특히 XSS에 대한 내용이었다.





나는 세미나 전부터 꼭 rasmus에게 질문하기로 생각해둔 것이 있었다.

rasmus에게 묻고 싶은 질문은 바로 이거였다.

"rasmus는 cake, zend와 같은 프레임웍을 사용하시나요? php의 프레임워크 사용에 대해 어떻게 생각하시나요?"

이미 jsp의 경우는 스트럿츠, 스프링과 같은 프레임워크를 사용하는것이 일반적이지만, php는 그렇지 않다.

phpschool에서도 프레임워크를 쓰는것이 좋냐, 안써도되느냐로 논쟁이 많다.

나는 아직까지는 프레임워크를 사용하여 프로젝트를 진행해 본적은 없지만

언제쓸지 모르는 프레임워크에 대비하기 위해 document정도는 읽고 있다.

그리고 실제 프로젝트에서는 프레임워크를 사용하지는 않지만 php를 MVC패턴을 이용하여 개발을 하고 있다.




프레젠테이션이 끝나고 이 질문을 꼭해야지라고 생각 했었는데

rasmus는 프레임워크를 사용하지 말아라, MVC역시 좋지 않다라는 말로 프레젠테이션을 시작했다.

index.php 파일과 같은 controller가 제어하게 하지 말고

잘 모듈화하여 필요한 부분만 require 해서 사용하라고 했다.

php는 컴파일해서 사용하는 다른 언어들과 차이가 있기 때문에 php를 그런언어처럼 사용하지 말라고 했다.







그리고 simple한것이 얼마나 좋은지에 대해서 계속 프레젠테이션이 이어졌다.

특히 개발자라면 고개를 끄덕일만한 '경험과 복잡도에 대한 상관관계' 그래프를 보여주었는데.

프로젝트 경험, 개발 경험이 늘어날수록 점점 복잡도가 증가하다가

그 경험이 수준을 넘어가게 되면 점점 간결함을 쫓는다는 그런 그래프이다.


나는 지금 어디쯤 와있을까. 한번 곰곰히 생각해보게 되었다.





프레젠테이션내용중에 흥미로웠던것은

rasmus가 보여주었던 여러 분석도구들이었는데 php로 개발된 어플리케이션의 성능을 측정해주는 다양한 도구들이었다.




첫번째로 소개해준 siege 는 퍼포먼스를 측정하여 수치화해서 보여주는 도구였는데

이 툴에서 눈여겨 봐야할 부분이 바로 노란색으로 되어있는

response time(응답시간)과 transaction rate(초당 트랜잭션처리량) 이다





rasmus는 유명한 PHP 오픈소스 프로젝트들을 실험대상으로 삼고 퍼포먼스를 측정하고

어떻게 최적화 할수 있는지, 그리고 최적화 전과 후의 퍼포먼스 차이를 설명해주었다.


laconica - 마이크로블로깅
habari - 블로깅
Wordpress - 블로깅
Magento - e커머스(쇼핑몰)



그리고 php를 최적화하고 캐싱해주는 APC라는 프레임워크를 소개해주고

이것을 설치했을때 얼만큼의 성능의 향상이 있는지 보여주었다.


그리고 아파치 설정이나 기타 부분에 있어서 php성능을 최고로 끌어올리는 다른 방법에 대해서 설명해주었고




어플리케이션이 어떤 파일을 require하는지 도식도를 그려주는 도구를 보여주었는데 처음보는 도구라 신기했다.




rasmus가 알려준 최적화를 통해 결과적으로 오픈소스 laconica의 경우는

최적화 전에는 0.27초의 응답시간과 초당 18.71의 트랜잭션을 처리할수 있었으나

최적화 후에는 0.09초의 응답시간과 초당 56.84의 트랜잭션을 처리할수 있게 된 것을 수치를 통해 확인하였다.

3배나 퍼포먼스가 상승한것이다. ㅎㄷㄷㄷㄷ




그 뒤에는 보안에 대한 정확히는 XSS에 대한 이야기를 해주었다.

특히 우리나라 홈페이지들이 얼마나 XSS에 취약한지 직접 눈으로 확인시켜주었다.






열정적인 분위기 속에 2시간여의 세미나가 끝이 났다.





세미나 끝난 기념으로 단체 사진촬영을 하였고

나는 개인적으로 rasmus를 찾아가 몇가지 질문을 더 했다.







Q. 당신의 복잡도와 경험에 관한 그래프를 통해서 볼때 내 실력은 복잡도가 정점에 올라와있는 그 쯤 위치한것 같습니다. rasmus씨 어떻게 하면 그 수준을 뛰어넘게 될까요?

아키텍쳐설계에 많은 고민을 해보세요. 훌륭한 아키텍쳐를 설계해보는 것만으로도 충분하답니다.
그리고 점점 더 큰 프로젝트에 도전해보세요. 프로젝트에 참여하면서 더 나은 아키텍쳐를 설계할 수 있게 됩니다.



Q. rasmus씨. 나는 굉장히 많은 php책들을 읽었고, 아직도 열심히 공부중입니다. 그리고 오픈소스를 통해 다른 사람의 소스코드를 보면서도 많은 공부를 하는데 오늘 최적화 예제로 소개되었던 locanica 나 wordpress도 나의 좋은 스승이었습니다. 하지만 오늘 rasmus의 강연을 들으니 최적화 예제 대상으로 삼았던 이들 프로젝트가 스승으로 삼기에 좋지 않은 예제가 아닌가 하고 생각했다. 저에게 추천해줄만한 잘 만들어진 php 오픈소스프로젝트가 있습니까?

추천할수 없다. 언급했던 오픈소스 프로젝트 모두 훌륭한 것이지만, 몇몇부분에서 아쉬운 부분이 있는 것이다. 어떠한 프로젝트는 어떤점이 잘 되어있으나, 어떤점이 부족하고, 대부분의 프로젝트들이 이러한 trade off(상쇄효과)를 가지고 있다. 이러한 오픈소스 프로젝트를 분석해 보면서 공부하는것도 좋은 방법이다. 여기서 자신이 조금씩 코드를 변경하면서 퍼포먼스 측정을 하여 좀더 나은 퍼포먼스를 발휘하게 하며 공부하는 것이 좋다. 그리고 꼭 이렇게 바뀌었을때 어떠한 이유로 퍼포먼스의 향상이 있었는지 철저히 분석해라.





더 많은 질문을 하고 싶었지만, 세미나 끝났을때 밤 10시가 가까워진 시간이어서 아쉽게도 발걸음을 돌렸다.

세미나가 끝나고 다른분들의 후기들을 보니 phpschool의 많은 분들이 참여하신것 같았는데

인사라도 할껄 하는 아쉬움이 남는다.


728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함