티스토리 툴바

Yii 프레임워크 성능 비교

Yii Framework | 2012/05/01 02:17
Posted by BirdShim

PHP는 function call와 include 작업에 많은 비용을 소모 합니다.

include의 비용문제는 유명하고, function call 에 대한 내용은

http://phpsadness.com/sad/32
http://translate.google.co.kr/translate?hl=ko&langpair=en%7Cko&u=http://www.tuxradar.com/practicalphp/18/1/3

5.3에서는 엄청나게 감소되었지만, 5.2 이하를 쓰시는 분들은 function call을 자제하는게 좋고
5.3이라 하더라도 function call은 자제하는게 유리합니다.
(개인적으로는 비용이 많이 들더라도 function call을 많이 가져가는것이 유지보수가 좋기에 선호합니다.)
이 관점에서 아래 내용을 참조하여 주시면 좋을것 같습니다.


아래는 많은 프레임워크가 비교되었는데, 대표적인것만 보시면 될것 같고
Yii의 성능이 높은 순위인 것을 보실 수 있습니다.
이곳에는 노출하지 않았지만, 참조링크를 따라가서 보시면 
CI보다 메모리가 높기에 최상위로 보기엔 무리가 있을것 같습니다.
하지만 많이 고려하여 설계되었다는 것은 분명한것 같습니다.


1. Apache Benchmark

Requests pre second (-c 100 -n 30000), 높을수록 좋음.

2. Response time

응답시간. (낮을수록 좋음)


3. Number of function calls (Facebook XHProf)

 "hello world"를 출력하기 위한 funcation call 수


4. Number of Files

"hello world"를 출력하기 위한 include or require 수. 작을수록 좋음




참조.

http://www.ruilog.com/blog/view/b6f0e42cf705.html

Yii Framework 소개

Yii Framework | 2012/04/27 18:38
Posted by BirdShim


Yii Framework

Yii Framework는 빠르고, 보안이 좋고, 프로페셔널한 PHP 프레임워크 라고 하는건 사이트에 적혀있는 말이고,
간단히 둘러본 바에 의하면, 상당히 빠르면서도 구조적으로 개념이 잘 잡혀있어
협업을 하기 좋은 프레임워크라고 할 수 있을 것 같습니다.

Yii "Yes It Is!"의 약자이며, Yii Framework를 발음하기가 상당히 어려운데,
소개 페이지에 보면 Yee 또는 ji: 로 발음된다고 합니다.


  

Yii framework 의 강점이라고 사이트 대문에 적혀있는 문구


많은 PHP 프레임워크들이 있지만..
그 중에서도 ZF, CI, Yii 를 관심있게 보고 있었는데

Yii의 강점으로는 

1. 일단 빠르다..
    CI 2.0과의 비교는 못 해 봤지만, CI 1.0 대와 비교해서는 엄청나게 빠르다.
    (추후 속도 비교 문서 참조)
2. 코드 퀄리티가 좋다.
    ZF 수준의 코드 퀄리티가 나온다.


ZF, CI, Yii 를 관심있게 지켜보던 나는,
CI가 프레임워크의 대세란 것은 인정 하지만 그를 이용해서 개발하는 것은 거부감이 많이 들었었는데,
CI를 이용한 프로그램의 코드 퀄리티의 수준이 낮아서였습니다.

CI가 가장 PHP스러운 프레임워크라는것은 인정하고
그래서 자유롭고 편한 개발을 할 수 있는 이점이 있지만,
사용자에 따라 코드품질 차이가 많이 난다는 것은 상업적인 용도의 프로그램을 구현하기엔 꺼려지는 일이기도 했습니다.

그러던 와중에 Yii 프레임워크를 봤을때,
속도도 엄청나게 빠르고, 코드도 좋게 구현할 수밖에 없는 구조였으며
기본 구조와 개념이 상당히 잘 잡혀 있는 프레임워크란 생각이 들었습니다.
ZF와 CI의 강점이 절묘하게 융합되어 있다고 느낌?
저 개인적으로는 현재 나온 PHP Framework 중에 가장 완성도가 높은 Framework라고 생각됩니다.


Yii가 참조 한 프로그램 및 프레임워크는 다음과 같습니다

PRADO -  컴포넌트 및 이벤트 기반 프로그래밍, DB추상화레이어, 모듈형 어플 아키텍쳐 등
Ruby On Rails - orm 계층에 대한 ar 디자인 패턴 구현
JQuery - Yii에 통함
Symfony - filter 디자인과 plugin 아키텍쳐 참조
Joomla - 모듈식 디자인과 메시지 변환방식 참조

person 정보 가져오기

오픈소셜/소셜서버API | 2011/11/14 11:06
Posted by BirdShim
RPC call
 POST http://{SNGHOST}/rpc?st={secure_token}

Requst Data
[
{
"method":"people.get",
"id":"getPerson",
"params":{
"userId":["@owner"],
"groupId":"@self"
}
}

fields 는 확장 필드. fields 가 없는 경우 기본 정보만 리턴 함.

@owner 은 가젯은 소유자.
@self 는 userID에 해당하는 회원정보를 가져오겠다는 뜻.




결과 

[
{
"id":"getPerson",
"result":{
"id":"3",
"isOwner":true,
"isViewer":true,
"displayName":"\ud0dc\ud76c \uae40",
"thumbnailUrl":"http:\/\/partuza\/images\/people\/3.96x96.jpg",
"profileUrl":"http:\/\/partuza\/profile\/3",
}
}
]

 

1. person 기본 정보

오픈소셜/소셜서버API | 2011/11/10 18:34
Posted by BirdShim
person 기본 정보
 id 회원 ID 
 isOwner 애플 리케이션 소유자이면 true 
isViewer  방문자 경우 true 
hasApp  애플 리케이션을 소유하고 있으면 true 
displayName  표시 이름 (닉네임) 
thumbnailUrl  프로필 이미지 URL 
profileUrl  프로필 URL 



1.person API 리스트

오픈소셜/소셜서버API | 2011/11/08 12:37
Posted by BirdShim
person 지원 API
  1. person 정보 가져 오기
  2. person 리스트 가져 오기
  3. person에서 지원하는 fields 가져오기
  4. 삭제한 친구 리스트 가져오기 
  5. 친구 관계 맺기
  6. person 수정?
  7. person 삭제? 

현 페이지에서는 보기 편한 REST 형식으로 되어 있음.

pserson 정보 가져오기 URL Fragma

더보기



pserson 리스트 가져오기

더보기



person에서 지원하는 fields 가져오기

더보기



삭제한 친구 리스트 가져오기

더보기



친구 관계 맺기

더보기



person - userID, groupID

오픈소셜/소셜서버API | 2011/11/08 10:53
Posted by BirdShim

http://opensocial-resources.googlecode.com/svn/spec/trunk/Social-API-Server.xml#People-Service-GetPerson

오픈소셜 공식 문서에서는 userID와 groupID로 정의하고 있고
mySpace 등에서는 userID와 selector 라고 정의 하기도 함.

기본적으로 userID와 groupID 의 용도에 대한 이해가 없으면 이후 문서가 이해가 안 됨.


userID

 value 설명 
 object-ID  사이트의 user serial *(alpha / digit / _ / . / - )
 @owner  가젯의 소유자 . A가 B의 프로필 페이지를 보는 경우 B가 @owner
 @viewer  현재 페이지를 보는 유저. A가 B의 프로필 페이지를 보는 경우 A가 @viewer
 @me  현재 인증된 사용자.

groupID
 value 설명 
  object-id  groupSrl *(alpha / digit / _ / . / - ) 사이트나 유저가 지정한 user그룹인지 명확치 않음.
 @self  userID에 해당하는 유저 프로필을 리턴함.
 @friends  userID에 해당하는 친구 리스트를 리턴함.
 @all  userID에 해당하는 모든 people리스트를 리턴함 (@friends, groupsrl등)



아래는 people 에서 사용할 수 있는 것을 명시적으로 나타내는 표임.
userId groupId Description
--- --- Same as specifying userId as "@me" and groupId as "@self".
@me --- Same as specifying userId as "@me" and groupId as "@self".
--- @self Same as specifying userId as "@me" and groupId as "@self".
--- @all Same as specifying userId as "@me" and groupId as "@all".
@me @all @me에 해당하는 모든 people 리스트 (@freinds, {groupSrl})
@me @friends @me에 해당하는 친구 리스트
@me @self @me에 해당하는 people 정보
@me {groupSrl} @me가 볼수 있는 groupSrl 에 해당하는 모든 people리스트.
{userIDsrl} @all {userIDsrl}에 해당하는 모든 people 리스트 (@freinds, {groupSrl})
{userIDsrl} @friends {userIDsrl}에 해당하는 친구 리스트
{userIDsrl} @self {userIDsrl}에 해당하는 people 정보
{userIDsrl} {groupSrl} {userIDsrl}가 볼수 있는 groupSrl 에 해당하는 모든 people리스트.
(multiple) @all Return all people visible to the specified users.
(multiple) @friends Return all friends of the specified users.
(multiple) @self Return just the specified users.
(multiple) {groupSrl} Return all members of the specified group visible to the specified users.



동전한닢 리믹스

기타 | 2009/03/02 10:43
Posted by BirdShim


동전한닢 리믹스...
쵝오.

엄정화 - 초대 (remix.ver)

기타 | 2009/02/28 13:32
Posted by BirdShim
 

환상......
리믹스 쵝오.

원곡인것처럼 너무 자연스러움

Freestyle Rap Battle 2007 [결선]

기타 | 2009/02/27 16:55
Posted by BirdShim

예선때 잘 한 사람들 아쉽네요.. ㅠ,.ㅠ
상훈, 무적엘지 기대했었는데......
무적엘지는, 선공보다 반격을 잘 하는듯 한데.. 쩝.


MC자유도 엄청 잘 했구요...
2005년 대회에 비해서, 전체적인 실력들이 상당하네요..

Miller Rap Battle 2007 - 4차 예선

기타 | 2009/02/27 16:52
Posted by BirdShim

주세준 잘 하긴 하는데, 크리티컬 실수가 있음에도
우승한거 보면, 조금 밀어준 듯한 느낌도 없지 않은듯.

마우사카. 다시 들으니까 잼나네요.. ㅋㅋ

블로그 이미지

BirdShim

카테고리

분류 전체보기 (31)
일상 이야기 (7)
오픈소셜 (4)
Yii Framework (2)
아키텍쳐 (2)
스크립트 (2)
PHP (2)
DB (4)
기타 (8)