비계(프로그래밍)

Scaffold (programming)

비계(Vegeting)는 컴퓨팅에 사용되는 것으로, 다음 두 가지 기술 중 하나를 가리킨다.첫 번째는 일부 모델-뷰-컨트롤러 프레임워크에서 데이터베이스 접근과 관련된 코드 생성 기법이고, 두 번째는 다양한 도구에 의해 지원되는 프로젝트 생성 기법이다.

코드 생성

비계는 일부 모델-뷰-컨트롤러 프레임워크에서 지원하는 기법이며, 프로그래머가 애플리케이션 데이터베이스를 사용하는 방법을 지정할 수 있다.컴파일러 또는 프레임워크는 이 사양을 사전 정의된 코드 템플릿과 함께 사용하여 응용프로그램이 데이터베이스 항목을 작성, 읽기, 업데이트삭제하는 데 사용할 수 있는 최종 코드를 생성하여, 템플리트를 보다 강력한 응용프로그램을 구축하는 "scapold"로 효과적으로 처리한다.

비계는 오라클의 CASE Generator와 같은 초기 개발 환경에서 생성된 데이터베이스 코드 생성기와 다른 많은 4GL 클라이언트-서버 소프트웨어 개발 제품들의 진화다.

비계는 Ruby on Rails 프레임워크에 의해 인기를 끌었다.It has been adapted to other software frameworks, including OutSystems Platform, Express Framework, Blitz.js, Play framework, Django, web2py, MonoRail, Brail, Symfony, Laravel, CodeIgniter, Yii, CakePHP, Phalcon PHP, Model-Glue, PRADO, Grails, Catalyst, Mojolicious, Seam Framework, Spring Roo, JHipster, ASP.NET 동적 데이터, 컴비아PHP와 ASP.NET MVC 프레임워크의 메타데이터 템플릿 도움말.

런타임 대 디자인 타임 비계

비계는 프로그램 라이프사이클의 서로 다른 두 단계인 설계 시간과 실행 시간에서 발생할 수 있다.설계 시간 비계는 나중에 프로그래머가 응용프로그램 데이터베이스가 사용되는 방식을 사용자 정의하기 위해 수정할 수 있는 코드의 파일을 생산한다.그러나, 대규모 애플리케이션의 경우, 이 접근방식은 생성되는 파일의 수가 너무 많고, 파일 설계가 원래 템플릿에서 생성되거나 복사될 때 대부분 수정되었기 때문에 유지하기가 어려울 수 있다.또는 런타임 비계는 즉시 코드를 생성한다.템플릿 설계 변경사항을 애플리케이션 전체에 즉시 반영할 수 있도록 한다.그러나 런타임 비계의 경우 템플릿의 설계를 수정하는 것이 더 어렵거나 비실용적일 수 있다.

루비 온 레일즈의 비계

라인이 있을 때scaffold :model_name제어기에 추가되면, 레일즈는 런타임에 모든 적절한 데이터 인터페이스를 자동으로 생성한다.API는 즉석에서 생성되기 때문에 프로그래머는 이러한 방식으로 생성된 인터페이스를 쉽게 수정할 수 없다.그러한 간단한 비계는 종종 애플리케이션을 프로토타입으로 제작하고 테스트 데이터를 데이터베이스에 입력하는 데 사용된다.

프로그래머는 또한 비계에 대한 루비 코드를 미리 생성하기 위해 외부 명령을 실행할 수도 있다.rails generate scaffold model_name. Thegenerate스크립트는 응용 프로그램이 데이터베이스와 상호 작용하기 위해 사용할 수 있는 Ruby 코드의 파일을 생성할 것이다.동적 비계보다 다소 편리하지는 않지만 프로그래머에게 생성된 API를 수정하고 사용자 정의할 수 있는 유연성을 부여한다.

참고: 레일즈 2.0의 경우 동적 비계는 더 이상 저장되지 않는다.

서버 측 대 클라이언트 측 비계

애플리케이션 데이터베이스에 기반한 비계 기법은 일반적으로 서버측 프레임워크를 포함한다.서버측 웹 프레임워크는 일반적으로 데이터베이스 항목에 대해 직접 작업을 수행하며, 이러한 작업에 대한 코드 생성을 서버측 비계로 간주할 수 있다.대안적으로, 클라이언트 측 개발은 종종 데이터베이스에 직접 접근하는 대신 데이터 전송 작업을 수행하는 프레임워크를 사용한다.따라서 클라이언트측 비계의 초점은 데이터베이스에 접근하기 위한 코드를 생성하는 것보다 애플리케이션 전체에 대한 시작 템플릿을 생성하는 데 더 초점을 맞추고 있다.

Metal과 같은 일부 클라이언트측 웹 프레임워크는 클라이언트가 서버측 프레임워크와 유사한 방식으로 데이터베이스 작업을 수행할 수 있도록 허용한다.이 경우 비계 기법은 단순히 시동기 템플릿을 생성하는 것을 넘어설 수 있다.그들은 데이터베이스 항목을 작성, 읽기, 업데이트 삭제하기 위해 클라이언트 측에서 웹 양식의 런타임 비계를 수행할 수 있다.이것의 한 예는 aldeed:autoform[1]이라고 불리는 Mete의 추가 기능에 의해 제공된다.

프로젝트 생성

복잡한 소프트웨어 프로젝트는 종종 프로젝트 구조와 요건에 관한 일정한 규약을 공유한다.예를 들어, 이들은 종종 소스 코드, 이진 파일 및 코드 테스트를 위한 별도의 폴더와 라이센스 계약서, 릴리스 노트 및 연락처 정보를 포함하는 파일을 가지고 있다.이러한 규약에 따른 프로젝트 생성을 단순화하기 위해, "스캐폴딩" 도구는 각 프로젝트의 시작 시점에 자동으로 생성될 수 있다.이러한 도구로는 Yeoman, Cargo, Ritchie CLI 등이 있다.

참고 항목

외부 링크