아래에 풀스택 개발자가 본 PHP라는 글이 있어서 저도 한번 써볼까 합니다.
게임엔진을 처음 배울때 존카멕이 만든 퀘이크2 공개 소스를 가지고서 공부했습니다.
당시 대세인 D3D와 C++/COM을 놔두고 존카멕은 왜 C로 만들었냐, OPENGL로 만들었냐?
아무도 욕하는 사람이 없었습니다.
그사람의 실력이 대단하고, 만든 결과물이 성공적이었기 때문입니다.
그리고 그 누구하나 D3D API에 비해서 OPENGL API는 쓰레기라는 사람이 없습니다.
단지 윈도우 환경에서 D3D가 좀더 편하고 나은 관리를 지원해 주기 때문이었습니다.
C# 언어에 대해서도 좋은 언어이긴 하나 아직은 성능이 부족하다 라면서 항상 팩트를 제시합니다.
그런데 유독 이상하게 웹개발언어 만큼은 언어의 대전이 심각한거 같더라구요.
PHP는 누가봐도 성공적인 언어입니다. 지금 현재는 아닐지 모르겠지만 ASP, JSP에 비해서 성능도 뛰어나고 관리 비용도 절감되고
현재 모바일 게임업계에서 웹개발 언어로는 PHP가 구인이 가장 많습니다.
이건 규모가 작고 빠르고 인력이나 구축 비용이 절감되기 때문에 그렇습니다.
그렇지만 JSP는 대규모 웹개발시에 유리한건 맞습니다만 PHP가 그렇게 못하는 언어는 아닙니다.
이곳에서 혐오하는 사이트지만 일베저장소라는 사이트는 2CPU에서도 인정받는 제로보드XE를 튜닝을 잘해서 포탈사이트를 제외하고는 정말 대용량 헤비트래픽 운영으로 칭찬받는 사이트입니다.
그리고 페이스북도 HACK으로 컴파일되긴 했지만 시초는 PHP이고, 제로보드XE나 워드프레스등도 PHP입니다.
거지같은 소스를 유지보수 하기 싫으신 개발자님들의 고초는 알겠으나 돈이나오고 잘돌아가는 소스가 최고의 소스입니다.
그리고 그러한 결과물을 내었다면 퀘이크 소스처럼 페이스북, 워드프레스 등등 인정을 해주어야 하는 거구요.
PHP언어의 타입 캐스팅 문제는 그당시 컴공전공생이라면 누구나 배웠을 C언어를 기반으로 타입캐스팅해서 당연한 것으로 받아들여지는 거고, 최근의 동적 타입언어는 JAVA와 C#을 제외하면 어느 것이나 모호함을 가지고 있습니다.
저도 JSP로 JEUS와 웹투비에서 실무를 경험해 보았으나 여러가지 저에게는 불편한 언어였다고 개인적으로 생각합니다. JSP를 처음으로 하신분들은 당연할수 있지만요.
여러가지 내장된 문제점은 방법론이나 테스트를 잘하는 것이 옳은 방법이라 생각 됩니다.
그리고 차세대 등 신규를 할때는 적절한 언어를 선택하면 되겠지만, PHP로 된 AS-IS소스들도 그당시의 나름의 기준이 있어서 선택하셨다고 생각하시고 즐겁게 일하셨으면 좋겠습니다.
추가:
개인적으로 PHP가 가장 좋은점은 에러가 있을때 해당 PHP파일만 다운되며, PHP파일의 컴파일 없이도 hotswap이 되는 것이 가장 맘에 듭니다. 빠른 게임 운영환경에서 그보다 더 좋은건 없더라구요.
JAVA는 Ant 컴파일 거쳐서 급할때는 class 파일 바꿔치기도 해야되는데 바로바로 안될 때가 있었어요.
옛날에 정기구독 했었는데
from CV
그런데 전사적으로는 언어가 JAVA라더라구요.
아무래도 대규모 성능 위주로 갈려면 PHP는 한계가 좀 있어서..
돈이나오고 잘돌아가는 소스가 최고의 소스죠.
저는 안쓰긴 합니다만, 훌륭한 레퍼런스가 수없이 쌓여있는 PHP가 평가절하되는 이유를 잘 모르겠습니다.
PHP로 개발하는 개발자를 깔 필요는 없지만 언어의 단점은 까야지 서로 영향을 주면서 발전합니다. PHP도 이유 없이 발전 해 나가고 있는 건 아니지요.
php로 웹프로그램 한다고 해서 리눅스나 크롬에서 웹이 안보이진 않으니까요.
벡엔드는 웹접근성과는 상관없죠.
유저에게 전혀 해를 끼치지 않아요.
그리고 잘돌아가는 클리앙을 php를 버리고 java로 간다고 해봅시다.
신기능을 달아야되는데 똑같이 새로 만들고 그다음에 신기능을 붙이면
그동안의 시간, 돈, 고객을 다 잃는데요. 경영자의 입장에선 어떨까요.
옛날 PHP는 이런 것에 대해 염두에 두지 않고 언어를 설계했죠. CLASS나 INTERFACE 같은 구현도 미흡했고, 의존성을 관리할 수 있는 도구라든가 디버깅툴이라든가 CI에 대한 서포트도 이루어지지 않았습니다. 그나마 최근 몇 년동안 있던게 기껏해야 코드이그나이터...
그 부분을 부인해서는 안 된다고 생각합니다. 이러한 부분에 대해 지속적으로 이의제기가 되고 있으니 요즘은 모던PHP 방법론들이나 언어 자체의 개량이 이뤄지고 있지만요.
PHP개발자를 폄훼해서는 안된다는 점에서는 적극 동의합니다. 다만 PHP는 커뮤니티 내외에서 자체적으로 가열찬 비판이 타 언어 대비로도 좀 더 있었고 그 점은 인정해야 한다는 게 제 생각입니다. 장인이 도구 탓을 안 한다지만 모든 개발자가 존 카멕도 아니고, 장인 중에는 PHP의 단점을 인지하고 아예 HHVM에 HACK을 만드는 장인도 있으니까요
저도 자바를 6년 넘게 해온 자바개발자입니다만, 스프링이 자바 언어의 정식 스펙인가요?
외부 라이브러리라 프레임워크 아닌가요?
스프링이나 기타 프레임워크는 언어가 아닙니다.
지금은 언어를 비교 하고 있는것 같습니다.
그리고 자바언어 자체에서 디버깅이나 CI를 지원하는 것도 아닌것으로 알고 있습니다.
클래스나 인터페이스가 부실한것은 인정합니다만 외부 라이브러리나 프레임워크는 조금 다른 차원의 문제 같네요.
그리고 SPRING이 전 세계적으로도 그렇고 특히나 한국에서 JAVA 기반 웹개발이라면 DE FACTO나 다름 없기도하고요. 그리고 지금 PHP는 OOP 지원이 부실하지 않습니다. 매우 잘 지원하고 있습니다.
음 그렇군요 잘알겠습니다
저도 가끔씩은 제가 PHP빠인지 까인지 헷갈리긴한데 뿌리는 PHP라고 생각하는 개발자로서 PHP가 "대충 빨리 짜기엔 좋아요"를 벗어나기를 바라고 있습니다. 대충 빨리 짜기 좋다고 대규모로 만드는데 개판(...)이어야 할 이유는 없으니까요.
PHP 잘못된 디자인의 프랙탈이라는 글이 레거시 PHP를 수십가지로 탈탈 턴지도 5년은 된 거 같고... PHP 7도 이제 슬슬 나왔으니까 언젠간 자리를 잡기를 기원 해 봅니다.
저는 고객이나 회사가 PHP로 만들어달라고 해서 아직은 5.6대로 개발하고 있습니다.
좋은 하루 되세요~
저는 하나무라로 떠납니다
그러고보니 컴퓨터에서는 닉네임을 자동 표시해주질 않아서 습관적으로 그냥 줄줄이 달았네요. 저는 회사에서는 JAVA 위주로 하고 있고, 개인적으로는 PHP를 계속 이어서 하거나 node를 하고 있습니다 ㅎㅎ 근데 JAVA로 하다보니 옆자리에서 C# 으로 개발하는 사람과 비교를 해서도 또 JAVA의 단점이 보이는 걸 보면 모두 까기는 숙명인가 싶기도 합니다.
다만, 항상 가지고 있는 생각은 언어는 발전을 위해 비판을 할 지점이 있지만... 그 언어를 가져다 쓰고 있는 사람은 그냥 자기 상황에서 그걸 쓸 뿐이니까 두 개를 분리해야 한다는 정도? 좋은 주말 저녁 마무리하세요~
요즘은 전부 서블릿으로 개발하나요?
java/jsp = c#/asp.net 이렇게 개념적으로 이해하고 있습니다.
그냥 java라고 하면 swing gui개발도 java이며, android 개발도 java인데
웹개발하는 자바의 의미로 jsp로 포괄적으로 이해해주시면 감사하겠습니다.
좋은정보 감사합니다.
제가 자바 웹사이트 개발할때만 해도 jsp밖에 없어서 그것밖에 몰랐습니다.
자바 기반 웹개발이 VIEW단이 항상 취약한 거 같은데 최근엔 THYMELEAF 가 좀 뜨고 있는 것 같고 (스프링이 미니까...) 레거시한 JSP는 JSTL이랑 섞어서 꽤 쓰긴 쓰는 거 같고 VELOCITY는 점점 탈락해가는 분위기인 것 같습니다.
코볼도 같은 취급 받아 마땅하겠죠.
#CLiOS
게임쪽이나 다른 분야는 어차피 특정 언어말고는 대안이 없는 경우가 많지 않나요?
서버 같은 경우에 다양한 언어로 합니다.
저희 회사에서 퍼블리싱 한 MMO중에는 자바도 있습니다.
GPGPU = CUDA vs OpenCL
3D API(윈도우 한정) = D3D vs OpenGL
윈도우 GUI = MFC vs Winforms vs WPF
모바일 엔진 = 유니티3D vs 코코스 vs 코로나 등등
서버OS = 윈도우 vs 리눅스 vs 유닉스
DB = 오라클 vs MSSQL vs MySQL 등등
클라이언트도 자바로 만들었나요 아니면 서버를 만드셨나요?
서버입니다. 저도 게임서버 개발하고 있고요.
요즘 게임업계에서도 C#/JAVA로 서버 많이 짠다고 하더라구요.
저도 자바 nio 사용해서 만든 서버 하나 있어요.
C++, Java, Node.js, C#, Ruby 등 모바일 게임이 대세가 되니 언어도 다양하게 쓰이더라구요.
모바일은 특성상 클라는 피쳐폰 개발자와 온라인 게임 개발자의 만남이
서버 개발자는 소켓 개발자와 웹개발자의 만남의 장이 되는것 같습니다.
쓰기에 좋죠.
자바, 루비, php 해본 입장에서 지금 당장 웹하나 만들어줘 하고 부탁오면 php 선택합니다.
php가 인력이 많아서 자바를 제외하고는 유지보수하기 편해요.
다 용도가 있는겁니다.
용도에 맞춰서 가야하는거죠
from CV