워드프레스가 php 를 버린 이유

§

말도 많고 지지부진하던 워드프레스의 새로운 front-end 칼립소 (Calypso) 가 공개되었다.

Calypso 는 node.js 기반에 react.js 를 사용하며 워드프레스 REST API (WP API) 로 구동된다.

(WP API 에 관한 내용은 여러번 소개시켜드린 적이 있습니다.http://hackya.com/kr/wp-api-ebook-출시/)

calypso

이제 front-end 에서는 아예 php 코드가 사용되지 않는다. (랭커님께서 예전에 어떻게 워드프레스가 node.js 기반에서 작동될 수 있을지 상상이 되지 않는다고 하셨는데, 이제 궁금증이 풀리실듯.)

Calypso 는 WordPress.com 에 어제 일괄적으로 적용되었다.

일단 속도가 몹시 빨라졌다. 그리고 모바일, 앱, 웹, 데스트탑에서 같은 user experience 를 느낄 수 있도록 설계되었다. (react.js 를 쓴 이유)

왜 워드프레스는 php 를 버리고 자스 (javascript) 기반을 택했는가?

1. 뮬런버그 (Mullenweg) 는 php 의 한계를 느꼈다고 한다.

“..and that two of the things that helped make WordPress the strong, stable, powerful tool it is — backward compatibility and working without JavaScript — were actually holding it back.”

http://ma.tt/2015/11/dance-to-calypso/

2. Medium.com 의 워드프레스 생태계 위협

미디엄은? 미디엄은 웹의 미래?

미디엄은 출시될때 부터 직관적인 UI 와 빠른 속도로 큰 주목을 받았다. 미래 모든 웹이 이런 모습이 될거라는 말까지 나왔는데, 워드프레스는 이 미디엄이 제시한 미래지향적인 웹 interface 기준을 Calypso 를 통해 구현하고자 한다. 위에서 언급했듯이, 워드프레스 개발팀은 판을 갈아 엎고 새로운 front-end 를 처음부터 시작하는 것 밖에 다른 방법이 없다는 결론을 내렸다.

3. 모바일과 앱

워드프레스에서는 기존 php 기반에서 작동되는 플러그인 모델로는 cross platform solution (앱과 모바일, 데스크탑을 아우르는 하나의 통합된 솔루션)으로 나아가기 힘들다고 봤다.

그래서 php 플러그인 이 아닌 REST API 로 구동되는 노선으로 갈아탄 것 이다.

animation-128-nodither-532

기존 php 에서 작동되는 플러그인들은 어떻게 되는가?

WordPress is however in the process of introducing a REST API directly into the core product (no plugin required) and that’s where the really interesting things will come from.

You could for example write a Calypso-like front end for your website (Calypso is an admin interface) and that’d mean that a user visiting your website would never see a PHP-powered page. WordPress would just be silently chugging along in the background handling the REST API requests and storing all of your data.

The Story Behind the New WordPress.com

이부분이 복잡해진다. 위 글에서 언급하듯이 Calypso 같은 (WP API 로 구동되는) 솔루션을 만들경우, 기존 플러그인과의 호환성은 불가능해진다.

결국 워드프레스는 두개의 노선을 타기로 결정한 것 이다. 내 사견으로는 개발자들이, 다시말해 워드프레스 커뮤니티가 앞으로 어떤식의 개발을 할지에 대한 방향을 뭐랄까, 강제하지 않고 left it open 한 것 이다.

Calypso 는 오픈소스다. 워드프레스내에서 칼립소를 proprietary 로 하자는 의견도 강했지만, 뮬런버그는 칼립소를 오픈소스 화 함으로 해서, 워드프레스가 더욱더 활성화 되길 희망한다고 밝혔다. 현재 웹점유율 25% 에서 웹점유율을 50% 로 높히는게 목표라고 뮬런버그는 밝혔다. ㅎㅎㅎ

Calypso 다운받기.

https://github.com/Automattic/wp-calypso

아, 기존 wp-admin 은 백업으로 그냥 남아있게 된다. 하지만 나부터도 칼립소를 써보니, (일단 멀티사이트 관리도 엄청나게 편해졌고, 속도가.. ㄷㄷㄷ) wp-admin 은 앞으로 쓰지 않게 될 듯 하다.

* Calypso 를 사용하려면 jetpack 플러그인이 설치되어야 합니다.
**Node.js 는 내 서버에 따로 설치하지 않아도 되도록, 워드프레스에서 호스팅 해줍니다.

Tags: , , , , , ,

카테고리: , ,

Ω
  • http://ranker.kr/ 랭커(ranker)

    웃어야 될지, 울어야 될지 모르겠습니다.

    속도/성능이 좋아지는 것은 환영할 일인데… 그것때문에 기존 php 코드, 라이브러리(플러그인)를 못 쓰면 안되는데요. ㅠㅠ

    그런것들을 nodejs 와 react 로 다시 만드는것도 보통 일이 아닐거구요.

    플러그인 개발은 둘째치고… 간단한거 수정할려고 해도 뭘 알아야 하죠. ㅋㅋ

    죽도록 공부만 해야 됩니까? ㅎㅎ 평생공부라는 말이 실감 납니다.

    • http://hackya.com Matthew

      아, .. 칼립소를 설치하시더라도 wp-admin 이 그대로 남아 있기 때문에 기존 php 코드/플러그인/라이브러리는 계속 사용 가능하세요. ㅎㅎㅎ

      단지 앞으로 개발되는 솔루션이 php 기반이 아닌, 자스기반의 wp api 로 작동되도록 짜여지는거라면 기존 script 들과는 당연히 호환되지 않는거죠.

      사실 현재 웹개발 환경에서 php 는 제약이 많습니다. (근대 웹은 DOM manipulation 이 가장 큰 부분인데 php 는 전혀 DOM manipulation 을 할수가 없는 언어 입니다.) 그런 php 의 제약들 때문에 ajax 가 생겨나고, 그 모자라는 부분들을 자스 (javascript) 가 이곳저곳 메꿔오다보니, 코드는 걸레가 되어가고 (걸레가 되는건 상관없는데, 유지, 추가 개발에 많은 비용이 들어가고 개발기간도 한 없이 늘어납니다.)

      그래서 이제 깔끔하게 php 를 배제하고 javascript 으로만 구동되는 솔루션이 wp-admin 을 대체하는 칼립소 입니다.

      너무 걱정안하셔도 됩니다. ㅎㅎㅎ 물론 공부는 평생하는게 맞습니다. >.< ㅋㅋㅋ

  • ㄱㅅㅂㅈ

    1번에서 인용하신 부분은
    “an incremental approach wouldn’t give us the improvements we needed, and that two of the things that helped make WordPress the strong, stable, powerful tool it is — backward compatibility and working without JavaScript — were actually holding it back.”
    인데, 간단히 해석하면, “기존의 호환성을 유지한 상태에서 조금씩 개발해나가는 방식은 우리가 필요한만큼 충분한 개선을 하지 못하게 했고, 하위 호환성 유지와 자바스크립트 없이 개발 한다는 두가지 지론은 워드프레스를 강력하고 안정적으로 유지하게 해주었지만, 실제론 앞에서 말한 개선에 방해가 되었다” 정도가 될텐데요..
    여기에 PHP의 한계를 느꼈다 라는 부분은 없는 것 같습니다.
    PHP의 한계에 대해 언급한 것이 있나 하고 원문에서 PHP로 검색해보니, “PHP 개발자들은 앞으로 이번 admin 페이지의 인터페이스를 JS로 만든 것 같은 새로운 환경에도 친숙해져야할 것이다”(Thousands more PHP developers will need to become fluent with JavaScript to recreate their admin interfaces in this fashion)라는 정도의 언급 뿐입니다.

    사실 REST API라는게, PHP로도 짤 수도 있고, C로도 짤 수도 있고, 물론 node.js를 사용한 서버를 이용해서도 짤 수 있습니다.
    사이트의 HTML 코드(JS,CSS 등의 리소스 포함) 및 그 안에 담긴 포스트 정보를 PHP를 통해 생성하고, 이를 웹서버가 바로 브라우져에게 전송해서 브라우져가 렌더링 하면 끝나는 방식에서
    REST API를 이용해서 필요한 정보를 가져다가 그때그때 그리는 것으로 바뀐 것 같습니다.
    사실 이정도 되면 언어를 버렸다기 보다는, 개발 방식의 변화에 더 초점을 맞춰야하는 것 아닌가 싶습니다..

    기존에는 서버단에서 필요한 데이터를 PHP를 통해 사용자에게 전달될 페이지에 모두 담아서 줬다면,
    이제는 웹서버가 ‘그리고(render) 데이터를 가져올 수 있는 코드가 담긴 페이지’만 serving하고 나머지는 서버의 REST API(PHP나 C나 어떤 서버로든 구현 가능, 칼립소에서는 node.js로 만들어졌겠지만)를 통해 가져오는 식으로 변경되었다고 보는게 옳은 것 같습니다.

    • http://hackya.com Matthew

      WordPress.com Replaces PHP with JavaScript

      http://www.infoq.com/news/2015/11/wordpress-php-javascript

      WordPress.com ditches PHP for Calypso JavaScript beat

      http://www.theregister.co.uk/2015/11/24/wordpress_dumps_php_for_javascript/

      뉴스/미디어 들이 이렇게 제 글과 비슷한 제목을 뽑은 이유는 언론사들이 제 글을보고 표절을 한게 아니라, 저와 마찬가지로, they understand the intrinsic meaning of what Mullenweg is saying.

      테블렛에서 글 쓰는게 익숙치 않아서… 글을길게 쓰지 않는데 (지금 휴가 중이라) 하시려는 말씀은 decoupling 이세요. Decoupling 하는게 곧 php 를 버렸다 라고 표현되는 거죠

      암튼 지금 글 쓰는게 개짜증나서 집에 돌아가서 포스팅을 새로해보겠습니다. ㅎㅎㅎ

      • ㄱㅅㅂㅈ

        말씀하신대로 decoupled architecture로 변경한 이유로 PHP의 한계가 지적된 곳은 없는 것 같습니다.
        아키텍쳐 변경 단계에서는 언어의 선택은 크게 중요하지 않을테니까요

        바꿔말하면, PHP의 한계 때문에 decoupled architecture를 택하진 못한다고 할 수는 없을 것입니다.
        (PHP로 서버를 짜는 것과 node.js로 서버를 짜는 것의 차이는 제 논지를 벗어나기 때문에 다룰 필요는 없을 것 같습니다.)

        링크 달아주신 기사들에서 ‘PHP가 JS로 대체되었다’라는 것을 제목으로 뽑은 이유는, 최근에 PHP를 대체할 수 있는 많은 언어가 나왔음에도 오랜기간 워드프레스가 PHP를 고수해 왔기 때문이라고 생각합니다.

        개인적으로 워드프레스하면, ‘PHP로 구축된 블로깅 툴’이라는 것이 가장 먼저 떠오는데요,

        워드프레스가 PHP로 만들어진 프렌차이즈의 대표 중 하나로 인식되고 있어서 기사 제목에 ‘워드프레스, PHP, 변경, JS’가 들어간 것 같습니다.

        이번에 완전히 PHP 코드를 걷어낸 모양인데, PHP를 버렸다는 표현이 잘못되진 않았다고 생각합니다.
        PHP를 버린것보다는 레거시 코드를 버리고 아키텍쳐 바꿨다는 것이 더 주요한 변경이지 않나 싶습니다.

        위에 제가 단 댓글에서도
        “사실 이정도 되면 언어를 버렸다기 보다는”에서 “버렸다기”를 “버렸다”로 바꾸어야 할 것 같습니다. “버렸다”는 표현을 지적하는 것 같아서요..

  • codei

    개인적으로 php7이 테스트중인 지금 시점에서 발표한 것에 의의가 크다고 생각 듭니다.
    php7 은 기존것보다 수배는 빠르게 설계 되었습니다. [테스트 관점에 따라 좀 차이가 있지만 전반적으로 눈에 띄게 빨라진 것은 펙트]
    그럼에도 php에서 node로 넘어간것은 페이스북과 동일한 선택을 한것입니다.
    거기에 기존의 워프에 들어간 네이티브 php 코드를 버렸다. 이게 중요 포인트라고 생각 듭니다.
    계속 이슈가 되었던 워프의 비즈니스 로직 퍼포먼스 관련 문제를 ‘우리는 코드 편의성을 위해서’ 라고 뭉개왔던 부분이 없지 않아 있었는데, 이부분을 말끔히 해소하겠다는 의도로 생각 듭니다.
    어느쪽이든 node.js가 출시된 이후 부터 점차 js 생태계로 기울어져 가고있네요.

    • http://hackya.com Matthew

      원래 php 캠프 쪽에서 워드프레스에 불만이 좀 있었던 관계였습니다. (워드프레스 덩치에 비해 php 관련 기여도가 너무 낮다는게 불만이었죠.) 뮬런버그가 관계개선을 위해 노력하겠다고 수차례 언급하기도 했었지만 립서비스에 불과한게 아니냐는 시각이 많았고…

      “어느쪽이든 node.js가 출시된 이후 부터 점차 js 생태계로 기울어져 가고있네요.” – 네. 사실 향후 10년을 보면 가장 중요한 언어가 javascript 이 될거란 시각이 현재 지배적 입니다.

      제 아들도 이번학기부터 (현재 초등학교 4학년 입니다.) javascript 을 하더라구요.

      그런데 오라클이 JAVA Evangelists 들을 거의다 한칼에 해고한 것 혹시 알고 계셨나요? 오라클이 JAVA 를 버릴거라는 소문/소식이 있네요. 오라클에는 돈이 안되고 구글 (안드로이드) 만 계속 이익을 보고 있으니 JAVA 를 abandon 하는건 물론이고, 더 나아가 구글도 JAVA 를 쓰지 못하게 할거라는 추측도 나오고 있습니다.

      http://fossforce.com/2015/10/is-oracle-abandoning-java/

      FTW!! 타이젠 만세!!! ㅋㅋㅋㅋ

      • hoho

        java 와 javascript 는 다른 언어 입니다.

        • http://hackya.com Matthew

          그런데요? ㅎㅎ

          제가 언제 같다고 한적이 있나요?

          • 지나가다

            javascript 이야기 하다가 뜬금
            “그런데 오라클이 JAVA Evangelists 들을…” 라고 쓰면
            누가봐도 JAVA와 javascript를 동일시 한다고 보지 않을까요?
            반문하며 비꼬는 듯한 뉘앙스가 참 없어보입니다 그려..ㅋㅋ

          • http://hackya.com Matthew

            JAVA 하고 자스 (javascript) 하고 동일시 하는 사람이 개념이 없는거죠. 그런 황당한 소리를 들으면 피식 웃게라도 되지 않나요?

            비꼬는게 아니라, 자스 (javascript) 는 서버단에서도, 브라우져에서도 돌아가는 언어고, JAVA 는 서버단에서 밖에 돌릴 수 없는 언어인데, 동급 취급이 될수 가 없는 겁니다.

  • Pingback: Requirement: Software Stack 어떤걸 써야하나? | infinitebaas()