내 CMS를 구축하거나 미리 구축 된 CMS를 사용해야합니까? [닫은]


23

관련 : 초보 프로그래머로서, 타사 라이브러리를 사용하는 것보다 내 라이브러리를 구축하는 것을 선호해야합니까?

중급에서 고급 수준의 PHP 웹 개발자이자 어린 시절 (15 세) 웹 사이트를위한 완전히 새로운 CMS를 구축하거나 WordPress 또는 Drupal과 같은 사전 제작 된 소프트웨어를 사용해야합니까?

나는 WordPress가 내가하려는 일을 처리 할 수있을만큼 강력하고 확장 가능하다고 생각하지 않으며 Drupal과 함께 며칠 동안 아주 약간 땜질 한 후에도 내 취향에 맞지 않는 것처럼 보입니다. 또한 잘 문서화되어 있지 않아서 간단한 작업을 수행하는 데 약간의 어려움이 있습니다. 나는 것이 사랑 같은 ExpressionEngine로 사용 뭔가,하지만이 더 - 이동 없다, 그래서 나는 약 $ 300 현재 상용 라이센스를 밖으로 접시 수있는 돈을 가지고 있지 않습니다.

원래 사이트를 임시 시스템으로 코딩하기 시작하여 새 웹 사이트를 만들 때까지 사용자가 업그레이드 및 게임 내 통화와 같은 다른 항목을 구입할 수 있었지만 사이트를 시작한 후에는 확장 가능해야한다는 것을 빨리 깨달았습니다. 그래서 그때부터 나는 완전한 기능을 갖춘 웹 사이트를 염두에두고 생각했습니다. 며칠 밖에 걸리지 않았지만 모든 기본 사항 (등록, 로그인, 계정 수정 등)이 있으며 개인 CMS를 시작하는 것이 좋습니다.

마지막으로 추가하고 싶은 것은 CMS를 직접 구축하는 경우 경험이 많은 CodeIgniter와 같은 PHP 프레임 워크를 사용해야합니까?

어쩌면 다른 개발자가 내가 알아낼 수있는 것에 대해 단서가 될 수 있습니다.


11
기존 CMS를 만드는 데 걸리는 시간을 과소 평가하지 마십시오. 당신은 심각하게 놀라게 될 것입니다 ...

답변:


23

그것은 당신의 상황에 전적으로 달려 있습니다. CMS를 통해 훌륭한 사이트를 만들었습니다. 우선 CO와 TCO라는 두 가지 개념을 이해하는 것이 좋습니다.

CO (소유 비용)

당신이 무언가를 구입할 때, 당신이 지불하는 금액은 CO입니다. WordPress의 경우에는 아무 것도 아닙니다. WordPress (또는 다른 많은 CMS 소프트웨어)는 무료입니다.

TCO (총 소유 비용)

10000 달러에 PC를 구입한다고 가정 해보십시오. 그리고 뭐? 소프트웨어를 설치하는 데 시간을 소비해야합니다 (시간은 귀중한 자원이므로 여전히 PC에 돈을 쓰는 것입니다). 웹캠, 다른 DVD 라이터 및 추가 케이블을 구입할 수도 있습니다. 그런 다음 설치된 소프트웨어를 사용하는 방법을 배워야합니다. 다시 말해, PC 의 총 소유 비용은 $ 10,000이 아닙니다. 그 이상입니다.

CMS 소프트웨어의 경우 CO의 비율은 매우 낮습니다. 그러나 많은 경험에 따르면 TCO가 전혀 낮지 않습니다. 대기업은 Joomla 또는 WordPress에서 좋은 사이트를 얻기 위해 거의 수천 달러를 소비합니다.

또 다른 요인은이다 사용자 정의 수준 . 때때로 당신은 소프트웨어를 사용하려면 그대로 변경없이. 이 경우 WordPress, Joomla, Drupal 또는 기타 CMS가 좋은 후보가 될 수 있으므로 자신의 CMS를 작성해서는 안됩니다. 그러나 높은 수준의 사용자 지정이 필요한 경우가 있습니다. 이 경우 요구 사항에 맞게 바로 사용할 수있는 CMS를 사용자 지정하는 것이 매우 실망 스럽습니다.

실제로 준비된 CMS 소프트웨어를 사용하고 싶었지만 다른 CMS를 배우고 각 CMS의 약점을 찾는 데 귀중한 시간을 보낸 후에 나만의 CMS를 만들었습니다. 생각 결과 는 내 개인 사이트이며이 CMS를 통해 구축됩니다. 곧 게시 할 예정이므로 다른 사람들도 사용할 수 있습니다.

또 다른 요소는 확장 성 입니다. 나를 믿게되면 CMS를 정적 상태에서 확장 가능한 상태로 만들어야합니다. 템플릿, 모듈, 플러그인, 공급자, 데이터베이스 및 스토리지, 라우팅 메커니즘 및 Good CMS의 거의 모든 부분을 확장 할 수 있어야합니다.

마지막으로 개인적으로 제안하는 것은 CMS 구축을 시작하는 것입니다. 따라서 최소한 기본 개념을 배워야합니다. 또한 기존의 것을 사용하십시오. 행운을 빕니다.


와우, 훌륭한 답변입니다. 내가 고려하지 않았지만 지금은 정말 기쁜 것들 중 일부입니다. 커스터마이제이션으로 말했듯이, 나는 정말로 많은 것을 필요로합니다. 그래서 원래 Drupal을 좋아했습니다. 필자의 경우 여러 서버, PayPal, 광범위하게 사용자 정의 된 등록 및 Drupal과 같이 쉽게 처리 할 수없는 다른 것들 사이에 많은 상호 작용이 필요합니다. 답변 해 주셔서 감사합니다. 정말 감사합니다. :)
Alex Bennett

그래도 CodeIgniter와 같은 프레임 워크를 사용하거나 내가 갈 때 나만의 경험을 쌓는 것이 좋습니다 (경험상)?
Alex Bennett

1
글쎄, @Alex 내가 도울 수있어서 기쁘다. 그러나 플랫폼이 .NET이므로 PHP 프레임 워크에 익숙하지 않기 때문에 죄송합니다. 그러나 프레임 워크를 사용하는 것이 좋습니다. Entity Framework를 ORM으로 사용하므로 PHP에서 ORM을 사용하면 실제로 개발을 향상시킬 수 있습니다.
Saeed Neamati

그래, 고마워 내가 프레임 워크를 사용하고 싶지 않은 유일한 이유는 연습을위한 것이지만,이 경우 프로덕션 사이트이므로 길을 잃고 싶지 않기 때문에이 프레임 워크를 사용하는 것이 더 안전하다고 생각합니다 CMS / 프레임 워크를 만들 때 발생할 수있는 취약점.
Alex Bennett

1
@Alex Bennett, 다른 하나, 오픈 소스 CMS가 있습니다. 당신이 소스 코드를 얻는다면. 먼저 시작한 다음 원하는대로 수정할 수 있습니다. 이것은 실제로 자신의 건물을 가속화합니다. 하이브리드 방식과 같습니다. 누가 바퀴를 재발 명하고 싶어합니까?
MVCylon

18

나는 여기에서 옹호하는 악마를 연주하고 있지만 말할 필요가 있습니다. 소프트웨어 개발자의 가장 일반적인 문제 중 일부 :

  • 사소한 프로젝트를 완료하는 데 소요되는 시간과 노력을 추정하여 큰 프로젝트를 수행하십시오.
  • 비즈니스 현실에 대한 이해 부족
  • 자신의 기술과 생산성을 과대 평가합니다.
  • 복잡성과 미묘한 세부 사항의 과소 평가
  • 그들의 문제가 너무 독특하다는 믿음은 아직 아무도 그것을 해결하지 못했습니다.

15y0의 경우에도 몇 주에 300 달러를 벌 수 있으며 제안하는 것의 경우 몇 달이 걸릴 수 있기 때문에 이러한 실수를 저 지르지 않겠습니까? 유료 직업을 가지고 돈으로 ExpressionEngine을 구입하면 어떻게 될지 생각해보십시오. DIY 작업보다 더 나은 기능으로 더 빨리 제공됩니까?


1
나는 당신이 말할 수 있기를 바랍니다, 당신의 평균 15 세에 대해 꽤 성숙하고, 나는 당신이 열거 한 일을 잘못했다고 생각하지 않습니다. 나는 가능한 해결책을 연구하는 데 많은 시간을 소비했지만 아직 내 상황에 맞는 좋은 해결책을 찾지 못했습니다. 돈에 관해서는, 내 사업은 매월 수익 이상 $ 300 수 (많이 아니지만, 전용 기계에 대한 지불) 내가 그렇게 할 수 돈을 받고,하지만 난 보수적를 재생하고있는 일에 투자하기 위해 노력하고있어 하드웨어 및 광고와 같은 필수품. 답변에 감사드립니다. 정말로 명심하겠습니다.
Alex Bennett

나는 당신이 정말로 맞춤형 솔루션만큼 CMS를 만들고 있다고 생각하지 않습니다. 진정한 CMS를 만들면 CMS를 배포 / 판매 할 수 있습니다. 완전한 CMS를 구축하기 위해 당신이 머리 위에 조금있을 것이라고 생각합니다.
HelloFictionalWorld

2
@Alex 그 시간 == 돈, 특히 당신의 시간을 고려해야합니다. 얼마나 가치가 있습니까? CMS에서 30 시간 이상 (@ $ 10 / hr)을 생산하는 데 ExpressionEngine을 사용하는 것이 좋습니다. 마찬가지로 30 시간 동안 다른 작업에 소요 된 비용이 $ 300보다 귀하의 사이트에 더 큰 가치를 창출한다면 ExpressionEngine이 더 나은 선택입니다.
CdMnky

8

이에 대한 두 가지 답변이 있습니다.

하나는 간단합니다. 바퀴를 재발 명하지 마십시오. 훌륭한 CMS 시스템이 많이 있으며, 잘 사용하는 법을 배우면 제공하지 않는 것이 필요한 경우 시스템을 다시 개발하는 대신 플러그인을 만드는 데 더 많은 기술을 집중할 수 있습니다. 바퀴.

두 번째는 약간 덜 분명합니다. 그렇습니다. CMS의 작동 방식과 CMS 생성 과정에서 발생하는 문제를 이해하려는 경우 직접 구축하는 데 아무런 해가 없습니다. 그것은 아마도 기존 CMS 시스템 중 하나의 힘과 유연성을 갖지 못할 것입니다. 약 100000000000 PHP 컨텐츠 관리 시스템이 주변에 있기 때문에 다른 사람이 관심을 가질 가능성은 거의 없습니다. 필요하지 않은 것을 가지고 있다면 아마도 더 큰 시스템보다 훨씬 작고 간단하게 작동 할 것입니다. 시간이 많이 걸리고 결과가 좋아질 것 같지 않으며 다른 세계와는 차이가 없지만 개발과 학습 측면에서 유용한 운동이 될 수 있습니다.

어쨌든, 당신이 자신의 것을 만들기 전에, 나는 그들이 어떻게 작동하는지, 잘하는 것과 당신이 그들이 더 잘 할 수 있다고 생각하는 것을 얻기 위해 이용 가능한 주류 시스템을 시도 할 것입니다. 그것들을 잘 이해하면 자신을 만드는 데 어떤 이익이 있는지에 대한 결정에 도움이 될 수 있습니다.


답변 해주셔서 감사합니다. 그래도 명확히하기 위해 :이 CMS를 구축했다면 릴리스 할 의사가 없습니다. 현재 시장이 아닙니다. 그것은 오직 나만을위한 것이며 내가 원하거나 필요로하는 것들만하도록 만들어졌습니다. 나는 다른 사람들과 실험을했지만 충분히 문서화 된 것을 찾지 못하고 어떤 식 으로든 핵심을 바꾸지 않으면 서 필요한 것을 수행하는 것처럼 보이지 않으므로 자신만의 것을 고려하기 시작했습니다. 대학을 마친 후 웹 개발자 (또는 비슷한 것)가되기 위해 노력하고 있기 때문에 제가 직접 만들고 싶은 또 다른 이유는 연습입니다. :)
Alex Bennett

3
나는 아주 작고 매우 단순하며 아주 기본적인 PHP cms를 구현 한 적이 있으며 그 이후로 몇 사이트에서 사용했습니다. 더 큰 규모의 시스템이 수행하는 작업의 작은 조각에 지나지 않지만 작은 사이트에 필요한 모든 작업을 수행하며 플랫 파일 기반이므로 거의 모든 곳에서 실행됩니다. 그래서 때로는 자신만의 것을 만들고 싶다는 것을 완전히 감사합니다.
glenatron

5

CMS 프로그래밍을 시도한 적이 없다면 그렇게 할 수있는 좋은 기회 일 수 있습니다. 당신은 꽤 많은 것을 배우게 될 것이고, 당신이 그것을 끝내는 지에 관계없이 다음과 같은 아주 좋은 생각을 가질 것입니다 :

  • 어려운 일과 쉬운 일
  • 페이지 국제화 및 현지화 방법
  • 사용자 및 역할을 처리하는 방법
  • SQL 업데이트 문이 아닌 기본 데이터 구조의 유지 관리 방법
  • 여러 부분으로 된 페이지를 처리하는 방법
  • 정적 컨텐츠를 효율적으로 처리하는 방법
  • 여러 대의 컴퓨터와 높은 부하로 확장하는 방법
  • 사용자 정의 및 테마에 API를 제공하는 방법

이들 중 일부는 당신이 그것을하지 않는 방법을 배웠다는 것을 알 수도 있습니다 . 그 경험도 중요합니다.

개인적으로 저는 "어려울 수 있는가"는 실제로 고품질 제품을 만들기 위해 수행해야하는 작업의 일부만 다루고 CMS를 선택한다면 액세스 가능한 코드 기반과 설명서가 좋은 플러그인을 찾고 적절한 플러그인을 작성하고 새 버전이 나오면 기본 CMS를 업데이트 할 수있는 훌륭한 플러그인 아키텍처를 찾습니다.


의견을 보내 주셔서 감사합니다. 이미 경험하지 않는 방법이 꽤 많았습니다 . 예를 들어 간단한 작업을 수행하기 위해 30 줄의 코드를 작성한 다음 2 일 후에 코드를 검토하고 코드를 10 줄로 줄일 수 있음을 알았습니다. 그러나 이러한 경험은 성가 시게 될 수 있지만 학습 과정에 도움이 될 수 있습니다.
Alex Bennett

@Alex,이 " 하지 않는 방법 "경험은 프로젝트의 코드베이스 크기에 따라 다릅니다. 그러나, 나는 당신이 그것을 이해하기 위해 적어도 한 번은 그것을해야한다고 생각합니다 :)

3

이것은 귀하의 질문에 약간의 대답입니다. 나는 당신이 PHP에 있다고 가정하고 당신은 미리 만들어진 CMS 방식으로 가지 않을 것입니다. 클럽에 오신 것을 환영합니다! 우리 중 많은 사람들이 같은 길을 갔다. 짐을 덜어 줄 몇 가지 조언.

내 CMS, MVC 구현, 국제화 (i18n) 처리기, 세션 처리기, 데이터베이스 추상화 계층, 양식 처리기 등을 만들기 시작했습니다. 그런 다음 실제로 수행 한 작업이 실제로 수행되었음을 확인했습니다. 이전에는 프레임 워크를 사용하는 것이 좋습니다. 따라서 휠을 완전히 재발 명할 필요는 없지만 요구 사항에 맞는 위치 만 가능합니다. 프레임 워크는 당신의 인생을 더 쉽게 만들어 주지만, 읽고 배우기 위해서는 많은 노력이 필요합니다. 실제로 Symfony를 마스터하는 데 1 년이 걸렸으며, 후회하지는 않습니다.

그리고 지금 당신은 운이 좋았습니다. 지금은 이전보다 더 많은 고품질 프레임 워크가 있기 때문입니다. 몇 가지 예를 들면 다음과 같습니다.

  • Symfony : 오늘 그들은 2.0 버전 안정판을 발표했습니다. 느슨하게 결합되어 구성 요소를 사용하거나 모든 것을 통합 패키지로 사용하도록 선택할 수 있습니다. 좋은 문서와 적극적인 사용자 기반이 있습니다. 그렇지 않으면 현재 구식 1.4 버전도 여전히 매우 안정적이며 유용합니다. 인생을 편하게 해주는 많은 강력한 플러그인이 있습니다. (묶음)
  • 젠드 프레임 워크 (Zend Framework) : 일부는 실제로 최신 버전이 아니라고 주장하지만 (일부 브랜드가 새로운 5.3 기능을 포함하고있는 것은 아님), 지금은 오랫동안 사용되어 왔으며 기본적으로 유용한 구성 요소 세트 (완전히 결합되지 않았거나 전혀 또는 전혀없는 게임) ). 검색 (zend_lucene) 및 pdf 생성과 같은 작업을 수행하는 툴킷으로 사용합니다. 그러나 일반적으로 사용되는 MVC 컨트롤러 세트도 있습니다. 그렇게하지 않았다면 살펴 봐야합니다. 매우 잘 문서화되었습니다.
  • CakePHP : 오래 전에 사용했는데 문서를 읽을 수 없었습니다. 분명히 이것은 이제 더 좋고 아마도 당신의 고려 가치가 있습니다.

  • Yii : 그것을 사용하지는 않았지만 요즘주의를 기울일만한 가치가 있습니다.

  • CodeIgniter : 많은 사람들이 쉬운 학습 곡선과 사용 편의성으로 인해 codeigniter를 찬양한다고 들었습니다. 사용하지 않았습니다.

파이썬을 시험 해보고 싶다면 많은 사람들이 장고와 물론 루비 온 레일을 찬양합니다.

아마도 더 있을지 모르지만 이것은 당신에게 유용 할 것입니다. 당신이 그것들을 사용하고 싶지 않다면 여전히이 프레임 워크에서 많은 것을 배울 수 있습니다. 행운을 빕니다!


고마워, CodeIgniter에 대한 많은 경험이 있지만 다른 것을 시도하지 않았습니다. 그래도 확실히 고려하겠습니다.
Alex Bennett

1
laravel.com ?? CodeIgniter는 현재 가장 널리 사용되지만 Lavarel은이를 빠르게
극복

1
예. 이 게시물은 4 살입니다. 당시 라 라벨은 막 시작했습니다.
Arend

1

대답은 주로 달성하려는 것에 달려 있습니다.

당신이 당신의 기술을 개발하려는 경우, 콘텐츠 관리 등에 대해 배우십시오. 그렇다면 그렇습니다. 마찬가지로 프레임 워크를 배우고 싶다면 그것을 사용하십시오.

그러나 당신의 초점이 당신이 언급 한 게임과 그 플레이어라면 대답은 거의 아니오입니다. 당신의 시간은 유한하기 때문에 값 비싼 자원입니다. CMS 개발에 소비 된 시간은 게임 개발에 소비 된 시간이 아니며 수익을 창출하는 게임입니다. 그러므로 스스로에게 질문하십시오. 이 CMS를 개발하는 데 걸리는 시간이 게임 개발에 소요되는 시간보다 플레이어 게임 경험을 향상시키는 데 도움이되지 않습니까? 대답이 '예'이면 개발하고 그렇지 않으면 개발하십시오.

마찬가지로 ExpressionEngine을 통한 오픈 소스 CMS 결정은 Saeed가 말한 것처럼 ToC를 축소해야합니다. 비용 (Wordpress)> 비용 (ExpressionEngine)을 입력 한 다음 300 달러를 지출하면됩니다. 여기서 비용은 purchase_cost + (hours_to_customise * your_hourly_rate)입니다.


1

요구 사항의 90 %에 맞는 CMS를 찾고 시간이 지남에 따라 CMS에서 제공하지 않는 기능을 추가하도록 수정하십시오.

이를 통해 사용자와 사용자의 요구가 변화함에 따라 조기에 출시하고 적응할 수 있습니다.


이것이 두 세계 중 최악의 것을 선택하는 것처럼 보이지만, 나는 downvote에 동의하지 않으므로 그것을 올렸습니다.
Mawg

1

나만의 CMS를 구축하는 것이 좋습니다. 사용자 지정 및 보안과 관련하여 이러한 시스템의 기능을 아는 것이 가장 좋은 방법입니다. 그러나 나는 PHP 기술에 얼마나 중급에서 고급까지 있는지 질문해야합니다. 이것은 당신의 나이와 관련이 없습니다.

나를위한 깃발은 "저는 워드 프레스가 내가하려는 일을 처리 할 수있을만큼 강력하고 확장 가능하다고 생각하지 않습니다. 그리고 드루팔을 지난 몇일 동안 아주 약간 땜질 한 후에는 그렇게 보이지 않습니다. 내 취향에 맞서고 문서화가 잘되어 있지 않아서 간단한 작업을 수행하는 데 약간의 어려움이 있습니다. "

Worpress 및 Drupal 사용자 정의에 관한 많은 서적 및 사이트는 이러한 사이트에서 실행되는 유명 사이트는 말할 것도없고, 현재 수행중인 작업을 알아야합니다. 말할 것도없이,이 사이트들을 운영하기 위해 예산 전체가 따로 마련되었습니다.

예를 들어 링크 :

http://drupal.org/cases

http://wpmu.org/wordpress-showcase-20-high-profile-sites-running-on-wordpress

이것은 당신이하려는 일을 당신을 낙담시키는 것이 아닙니다. 나는 당신이 너무 많은 시간을 투자하지 않고 (바퀴를 재발 명) 특정 시점에서 좌절하고 "eff it"이라고 말하고 재능을 펼치고 사람들을 보여줄 때 고용주를 포함시킵니다. , 현재 사용 가능한 도구로 제공되는 것. 현실과 현재 경제에서 시간은 돈이며 비즈니스와 조직은 프로젝트를 처음부터 새로 만드는 데 시간과 예산이 없습니다.
오늘날의 정보는 빛의 속도로 이동하기 때문에 노이즈를 분리하고 적절한 처리 시간 내에 목적에 맞는 컨텐츠 / 앱 / 시스템을 만들 수있는 프로그래머의 수요가 높아지고 있습니다.


0

당신 만이 당신이 CMS가해야 할 일을 워드 프레스 또는 드루팔 할 수 있는지 여부를 대답 할 수 있지만, 당신이 그들을 밖으로 시도하려는 경우, 이유에서 가상 컴퓨터를 사용하지 턴키 리눅스 등의 하나로서, 워드 프레스 , 드루팔 , 줌라 또는의 콘텐츠 관리 태그가 있는 다른 것 .

이러한 어플라이언스를 다운로드 한 후 몇 분 안에 VMware 플레이어 또는 VirtualBox 가 이미 설치되어 있다고 가정하면 최소한의 시간 투자로 소프트웨어를 직접 시험해 볼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.