맨위로가기

카탈리스트 (소프트웨어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

카탈리스트는 펄 프로그래밍 언어를 위한 웹 애플리케이션 프레임워크이다. MVC(모델-뷰-컨트롤러) 패턴을 기반으로 하며, 펄의 기존 모듈을 재사용하여 웹 애플리케이션 개발을 용이하게 한다. 2005년 첫 릴리스 이후, 플러그인 시스템, 다양한 웹 서버 지원, 데이터베이스 지원 등의 특징을 갖추고 있다. Magazines.com, Booking.com, BBC iPlayer 백엔드 등 다양한 웹사이트에서 사용되었으며, 아가베, 앵거웨일, 모조모조 등 오픈 소스 소프트웨어에도 활용된다.

더 읽어볼만한 페이지

  • 펄로 작성된 자유 소프트웨어 - 무버블 타입
    무버블 타입은 식스 어파트에서 개발한 웹 블로그 게시 시스템으로, 다양한 기능과 정적/동적 페이지 생성 방식을 제공하며, 펄로 작성되어 데이터베이스를 사용하고 플러그인으로 기능 확장이 용이하다.
  • 펄로 작성된 자유 소프트웨어 - Automake
    Automake는 makefile을 자동 생성하는 도구로, 프로그래머는 프로그램 정보만 제공하면 되며, Perl로 작성되었고 GNU Autoconf와 함께 사용된다.
  • 펄 소프트웨어 - 무버블 타입
    무버블 타입은 식스 어파트에서 개발한 웹 블로그 게시 시스템으로, 다양한 기능과 정적/동적 페이지 생성 방식을 제공하며, 펄로 작성되어 데이터베이스를 사용하고 플러그인으로 기능 확장이 용이하다.
  • 펄 소프트웨어 - 덕덕고
    덕덕고는 2008년 가브리엘 와인버그가 설립한 사용자 추적을 하지 않는 개인 정보 보호 검색 엔진으로, 검색어 기반 광고, 야후!-빙 검색 제휴 네트워크를 통해 수익을 창출하며, 다양한 기능과 유료 구독 서비스 Privacy Pro를 통해 서비스 확장을 시도하고 있다.
  • 웹 프레임워크 - 드루팔
    드루팔은 드리스 바이테르트가 개발하여 2001년 공개된 PHP 기반의 오픈 소스 콘텐츠 관리 시스템으로, 모듈과 테마를 통해 기능 확장이 가능하며 다양한 기관에서 활용되고 활발한 커뮤니티를 가지고 있다.
  • 웹 프레임워크 - 실버스트라이프 CMS
    실버스트라이프 CMS는 PHP로 제작된 오픈 소스 콘텐츠 관리 시스템으로, 웹사이트 및 웹 애플리케이션을 개발하고 관리하는 데 사용되며, MVC 패턴과 Sapphire ORM 프레임워크를 활용하여 사용자 친화적이고 확장 가능한 플랫폼을 제공한다.
카탈리스트 (소프트웨어) - [IT 관련 정보]에 관한 문서
기본 정보
이름카탈리스트
원어Catalyst
종류웹 애플리케이션 프레임워크
개발
개발자세바스찬 리델
프로그래밍 언어
릴리스 정보
최신 안정 버전5.90131
최신 안정 버전 출시일2023년 7월 20일
기타 정보
라이선스PAL 및 GPL
웹사이트카탈리스트 공식 웹사이트

2. 역사

MVC 웹 애플리케이션 프레임워크 메이폴은 사이먼 코젠스가 주 저자였다.[2] 카탈리스트는 메이폴의 포크로 시작되었으나,[3] 메이폴 개발은 2008년 4월에 중단되었다.[4]

2. 1. 개발

카탈리스트는 메이폴의 포크로 시작되었으며, 메이폴 3.0이 될 예정이었다.[3] 메이폴은 MVC 패턴을 기반으로 하는 펄 프로그래밍 언어의 최초의 웹 애플리케이션 프레임워크 중 하나였으며, 주 저자는 사이먼 코젠스였다.[2] 하지만 메이폴 개발은 2008년 4월에 마지막 릴리스를 끝으로 중단되었으며,[4] 카탈리스트가 현대적인 지원을 받는 동등한 존재가 되었다.

카탈리스트의 첫 번째 개발 릴리스는 2005년 1월 28일에 이루어졌다. 첫 번째 공식 버전은 2005년 2월 16일에 CPAN에 게시되었다.[5] 2011년 6월 기준으로 카탈리스트에는 201명의 등록된 기여자가 있었다.[6]

3. 철학

Catalyst는 DRY(Don't Repeat Yourself) 원칙을 기반으로 하며, 이는 정의가 한 번만 이루어져야 함을 의미한다. Catalyst는 다양한 로더 모듈 중 하나를 통해 데이터베이스에서 자동 클래스 로딩과 함께 사용될 수 있으며, 데이터베이스 계층에 대한 코드가 필요하지 않다. 그러나 모든 것을 수동으로 수행하는 유연성이 필요한 경우에도 이 옵션이 있다. Catalyst의 또 다른 지침 원칙은 유연성이다.

Catalyst는 이미 일반적인 웹 애플리케이션 문제를 잘 처리하는 기존 Perl 모듈의 재사용을 장려한다.


  • '''Model''' 부분은 ''DBIx::Class'', ''Plucene'', ''Net::LDAP'' 및 기타 모델 클래스를 통해 처리된다.
  • '''View''' 계층은 일반적으로 ''Template Toolkit'', ''Mason'', 또는 ''HTML::Template'' 등을 통해 처리된다.
  • '''Controller''' 계층은 물론 각 애플리케이션 작성자가 작성한다. Controller 기능의 많은 부분은 일반적으로 다양한 Catalyst 플러그인(예: Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery 등) 중 하나로 연기될 수 있다.
  • 마지막으로 Catalyst는 흐름 제어 및 URL을 컨트롤러 메서드에 매핑하는 것을 단순화하기 위한 일련의 도우미를 제공한다.


Catalyst는 다양한 플러그인을 보유하고 있다.[7] 예를 들어, Catalyst::Plugin::Prototype 모듈을 사용하여 Ajax 및 RIA를 위한 JavaScript 생성을 지원한다(prototype은 Ajax 프레임워크이다). 플러그인은 인증, 세션 관리, HTTP 협상 및 REST 등 다양한 영역을 다룬다.

Catalyst는 또한 jQuery 또는 YUI, Yahoo! 사용자 인터페이스 라이브러리와 같은 다른 Ajax 프레임워크와 함께 사용할 수 있다.

4. 특징

카탈리스트는 DRY(Don't Repeat Yourself) 원칙을 기반으로 설계되어, 한 번 정의된 내용은 다시 반복할 필요가 없도록 한다. 유연성을 강조하여, 개발자가 필요에 따라 자동화된 기능과 수동 설정을 선택할 수 있도록 한다.

카탈리스트는 웹 애플리케이션 개발에 필요한 기존 펄 모듈들을 재사용하도록 설계되었다.


  • '''모델(Model)''': DBIx::Class, Plucene, Net::LDAP 등 다양한 모델 클래스를 통해 데이터베이스를 처리한다.
  • '''뷰(View)''': Template Toolkit, Mason, HTML::Template 등을 통해 사용자 인터페이스를 처리한다.
  • '''컨트롤러(Controller)''': 개발자가 직접 작성하며, Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery 등 다양한 플러그인을 활용하여 기능을 확장할 수 있다.


Perl의 DBI를 통해 다양한 데이터베이스를 지원하며, RDBMSODBMS 사용을 권장한다. MySQL, PostgreSQL, SQLite, IBM Db2, Oracle, Microsoft SQL Server 등 여러 RDBMS 시스템을 지원하며, KiokuDB에 대한 명시적인 지원도 제공한다.[9]

4. 1. 모델-뷰-컨트롤러(MVC) 아키텍처

Catalyst는 "DRY(Don't Repeat Yourself)" 원칙을 기반으로 하며, 이는 정의가 한 번만 이루어져야 함을 의미한다. Catalyst는 다양한 로더 모듈 중 하나를 통해 데이터베이스에서 자동 클래스 로딩과 함께 사용될 수 있으며, 데이터베이스 계층에 대한 코드가 필요하지 않다. 그러나 모든 것을 수동으로 수행하는 유연성이 필요한 경우에도 이 옵션이 있다. Catalyst의 또 다른 지침 원칙은 유연성이다.

Catalyst는 이미 일반적인 웹 애플리케이션 문제를 잘 처리하는 기존 Perl 모듈의 재사용을 장려한다.

  • '''Model''' 부분은 ''DBIx::Class'', ''Plucene'', ''Net::LDAP'' 및 기타 모델 클래스를 통해 처리된다.
  • '''View''' 계층은 일반적으로 ''Template Toolkit'', ''Mason'', 또는 ''HTML::Template'' 등을 통해 처리된다.
  • '''Controller''' 계층은 물론 각 애플리케이션 작성자가 작성한다. Controller 기능의 많은 부분은 일반적으로 다양한 Catalyst 플러그인(예: Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery 등) 중 하나로 연기될 수 있다.
  • 마지막으로 Catalyst는 흐름 제어 및 URL을 컨트롤러 메서드에 매핑하는 것을 단순화하기 위한 일련의 도우미를 제공한다.


Catalyst는 다양한 플러그인을 보유하고 있다.[7] 예를 들어, Catalyst::Plugin::Prototype 모듈을 사용하여 Ajax 및 RIA를 위한 JavaScript 생성을 지원한다(prototype은 Ajax 프레임워크이다). 플러그인은 인증, 세션 관리, HTTP 협상 및 REST 등 다양한 영역을 다룬다.

Catalyst는 또한 jQuery 또는 YUI, Yahoo! 사용자 인터페이스 라이브러리와 같은 다른 Ajax 프레임워크와 함께 사용할 수 있다.

4. 2. 플러그인 시스템

Catalyst는 다양한 플러그인을 보유하고 있다.[7] 예를 들어, Catalyst::Plugin::Prototype 모듈을 사용하여 Ajax 및 RIA를 위한 JavaScript 생성을 지원한다(prototype은 Ajax 프레임워크이다). 플러그인은 인증, 세션 관리, HTTP 협상 및 REST 등 다양한 영역을 다룬다.

Catalyst는 또한 jQuery 또는 YUI(Yahoo! 사용자 인터페이스 라이브러리)와 같은 다른 Ajax 프레임워크와 함께 사용할 수 있다.

4. 3. 웹 서버 지원

개발 및 테스트를 위해 Catalyst는 내장된 간단한 HTTP 서버를 갖추고 있다. 프로덕션 환경에서는 아파치, lighttpd, Hiawatha, 체로키 또는 NginxFastCGI 또는 mod_perl 지원을 사용하는 것이 권장되지만, CGI 또는 FastCGI를 지원하는 모든 웹 서버에서도 작동한다. 아파치에서는 mod_perl이 성능 향상에 크게 기여할 수 있지만, mod_perl 하에서 여러 애플리케이션을 공유하는 것이 안전하지 않을 수 있으므로 사용에 문제가 발생할 수 있다.[8]

2008년 초부터 Catalyst 애플리케이션은 별도의 웹 서버 없이 고성능 Catalyst 애플리케이션을 배포할 수 있도록 해주는 HTTP::Prefork 엔진을 사용하여 배포할 수도 있다. Catalyst 5.9 릴리스부터 Catalyst는 또한 PSGI 사양으로 출력되므로 Plack 서버 및 Mongrel2를 포함하여 PSGI 사양을 지원하는 모든 서버 또는 프로토콜에서 실행할 수 있다.[8]

4. 4. 데이터베이스 지원

Catalyst는 Perl의 DBI가 지원하는 모든 데이터베이스(사실상 거의 모든 것, 심지어 CSV 파일도)를 사용하여 실행할 수 있지만, 적절한 RDBMS 또는 ODBMS가 권장된다. 데이터베이스 접근은 프로그래머의 관점에서 완전히 추상화되어 있으며, Catalyst는 모델 클래스 중 하나를 통해 모든 데이터베이스에 대한 액세스를 자동으로 처리한다.[9] 필요하다면 직접적인 SQL 쿼리를 사용하는 것도 가능하다. 이는 데이터베이스 중립성, 서로 다른 데이터베이스 시스템 간의 애플리케이션 이식성, 그리고 Catalyst 애플리케이션 개발에 기존 데이터베이스의 사용성을 최대한 보장한다. 비록 RDBMS의 서로 다른 기능 세트 때문에 프레임워크 자체만으로는 완전히 보장되지 않지만, MySQL, PostgreSQL, SQLite, IBM Db2, Oracle 및 Microsoft SQL Server 등 여러 RDBMS 시스템이 지원된다. ODBMS의 경우, Catalyst::Model::KiokuDB를 통해 KiokuDB에 대한 명시적인 지원이 있다.[9] 모델 추상화를 통해 Catalyst::Model::Adaptor를 통해 모든 성격의 데이터베이스에 액세스할 수 있다.[10]

많은 Catalyst 기반 프로젝트는 ORM 레이어로 DBIx::Class를 사용하여 SQL 쿼리를 추가로 추상화하고, 임의의 조인 및 기타 기능을 투명하게 지원하는 결과 집합 기반 API를 사용한다.

5. 활용 사례

카탈리스트는 다양한 웹사이트 및 웹 서비스 개발에 활용되었다. 대표적인 사례는 다음과 같다.


  • [http://osx.iusethis.com/ iusethis] - 이용 패턴 기반 소프트웨어 사이트
  • [http://www.mightyv.com MightyV] - BBC TV 프로그램 목록 웹사이트
  • Vox - 소셜 블로그 플랫폼
  • EditGrid - 웹 기반 스프레드시트
  • 보케테 - 사진 이용 개그 특화 일본 웹 서비스

5. 1. 해외

Magazines.com,[18] Booking.com, bbc.co.uk iPlayer 백엔드,[19] 덕덕고 커뮤니티 플랫폼,[20], Tripwolf.com 등이 카탈리스트를 이용한다. 모조모조 위키 엔진은 카탈리스트를 이용하여 작성되었다.[21]

YouPorn은 2012년까지 카탈리스트를 이용하였다.[22][23]

6. 관련 소프트웨어

카탈리스트와 관련된 소프트웨어는 다음과 같다.

'''카탈리스트 기반 오픈 소스 소프트웨어'''

소프트웨어설명
아가베블로그
앵거웨일블로그
Devel::ebug펄 디버거
핸델상거래 프레임워크
메이오스
모조모조위키
소사



'''기타 펄 웹 프레임워크'''

6. 1. 카탈리스트 기반 오픈 소스 소프트웨어


  • 아가베 (블로그)
  • 앵거웨일 (블로그)
  • ''Devel::ebug'' (펄 디버거)
  • 핸델 (상거래 프레임워크)
  • 메이오스
  • 모조모조 (위키)
  • 소사

6. 2. 기타 펄 웹 프레임워크

참조

[1] 웹사이트 CPAN Module Release https://metacpan.org[...] Catalyst 2024-08-15
[2] 웹사이트 Rapid Web Application Deployment with Maypole https://www.perl.com[...] Perl 2004-04-22
[3] 서적 The Definitive Guide to Catalyst https://books.google[...] Apress 2009-09
[4] 웹사이트 Maypole https://metacpan.org[...] CPAN
[5] 웹사이트 Catalyst Changes file http://cpansearch.pe[...] 2018-08-08
[6] 웹사이트 Catalyst Framework - Contributors https://www.ohloh.ne[...] Ohloh 2011-06-06
[7] 웹사이트 Search for "Catalyst::Plugin::" - metacpan.org https://metacpan.org[...] 2018-08-08
[8] 웹사이트 Catalyst::Engine::HTTP::Prefork - High-performance pre-forking Catalyst engine - metacpan.org https://metacpan.org[...] 2018-08-08
[9] 웹사이트 Catalyst::Model::KiokuDB - use KiokuDB in your Catalyst apps - metacpan.org https://metacpan.org[...] 2018-08-08
[10] 웹사이트 Catalyst::Model::Adaptor - use a plain class as a Catalyst model - metacpan.org https://metacpan.org[...] 2018-08-08
[11] 웹사이트 '"Catalyst/DBIC/eCommerce Developer job" posting' https://web.archive.[...] 2011-06-06
[12] 웹사이트 BBC's iPlayer is powered by a Perl software stack (including Catalyst) http://www.bbc.co.uk[...]
[13] 서적 The Definitive Guide to Catalyst Apress
[14] 웹사이트 Biggest porn site on the web YouPorn powered by Perl/Catalyst (top 50 in alexa) https://www.reddit.c[...] reddit
[15] 웹사이트 YouPorn software stack was originally written in Perl + Mysql http://highscalabili[...]
[16] 문서 CPANにおけるCatalystのモジュール http://search.cpan.o[...]
[17] 웹인용 CPAN Module Release https://metacpan.org[...] Catalyst 2023-04-24
[18] 웹인용 '"Catalyst/DBIC/eCommerce Developer job" posting' http://jobs.perl.org[...] 2011-06-06
[19] 웹인용 BBC's iPlayer is powered by a Perl software stack (including Catalyst) http://www.bbc.co.uk[...]
[20] 웹인용 https://github.com/d[...] 2014-10-23
[21] 서적 The Definitive Guide to Catalyst https://www.amazon.c[...] Apress
[22] 웹인용 Biggest porn site on the web YouPorn powered by Perl/Catalyst (top 50 in alexa) http://www.reddit.co[...] reddit
[23] 웹인용 YouPorn software stack was originally written in Perl + Mysql http://highscalabili[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com