"Groovy"및 "Grails"는 무엇이며이를 사용하여 어떤 종류의 애플리케이션이 구축됩니까?


100

요즘 "Groovy on Grails"에 대해 많이 듣고 이에 대해 더 알고 싶습니다.

  • Groovy 란 무엇입니까?
  • Grails 란 무엇입니까?
  • Grails에서 Groovy를 사용하여 어떤 종류의 애플리케이션이 구축됩니까?

3
또한 Grails 일뿐입니다. Grails의 Groovy가 아닙니다 (말이되지 않습니다 ..). 운이
좋으세요

23
Grails = Groovy on Rails
Pascal Thivent

1
사실, "Groovy on Rails"라는 별명에 대해 꽤 많은 논란이 있었기 때문에 Grails가 더 이상 Groovy on Rails라고 불리지 않습니다. 그냥 Grails입니다.
Matthias

3
예, 5 년 전 2006 년에 Ruby on Rails 직원들이 불평했고 'Groovy on Rails'라는 프레임 워크는 Grails로 이름이 변경되었습니다. 혼란스러운 채용 담당자와 피해자를 제외하고는 Grails에서 Groovy라고 부르지 않았습니다.
Burt Beckwith

답변:


188
  1. Groovy on Grails는 무엇입니까?

    더 이상이 이름으로 존재하지 않습니다. 이제 간단히 Grails 라고 불립니다 .

  2. Groovy 란 무엇입니까?

    원래는 JVM을위한 동적 언어입니다. 그러나 Groovy 2.0 이후에는 정적 및 동적 타이핑이 모두 지원됩니다.

  3. Grails 란 무엇입니까?

    Grails (이전에는 "Groovy on Grails"라고 함)는 Groovy를 기반으로하고 Ruby on Rails에서 영감을받은 프로그래밍 프레임 워크입니다 (차이가 있지만 많은 유사점도 있습니다). RoR과 마찬가지로 Grails는 "관습에 의한 코딩", 개발 모범 사례를 장려하며 생산성이 매우 높습니다.

  4. " Grails의 Groovy "를 사용하여 어떤 종류의 응용 프로그램이 구축 됩니까?

    Grails는 JVM에서 실행되는 웹 애플리케이션을 빌드하는 데 사용됩니다.

  5. Groovy on Grails 의 장점은 무엇입니까 ?

    높은 생산성, 배관 대신 비즈니스에 중점을 둡니다. (기존 데이터 모델과 함께 Grails를 사용하는 것은 권장하지 않습니다. 그 이유는 Grails가 도메인 클래스의 결과로 데이터베이스 ER 모델이 발생하는 하향식 접근 방식을 권장하기 때문입니다. 레거시 데이터베이스를 사용하는 경우 ,이 접근 방식을 취할 수 없습니다. 데이터베이스를 도메인 클래스에 매핑해야하며 명명 규칙이 일치하지 않아 hbm.xml Hibernate 구성 파일 또는 주석을 사용해야합니다. IMO, 이것은 사소한 변경이 아닙니다. 워크 플로가 복잡해지면 Grails의 장점을 대부분 잃게됩니다.)

  6. C / C ++, Java / J2EE, .NET / C #과 같은 표준 프로그래밍 언어가 있는데 왜 Grails에서 Groovy 를 사용하고 싶 습니까?

    포인트 5 때문에.


1
기존 데이터 모델에 grails를 사용하지 않는 이유를 더 설명해 주시겠습니까?
Todd Hunter

1
당신이 의미하는 바에 대해 더 설명 할 수 있습니까 High productivity, focusing on business instead of plumbing.? 무엇 plumbing입니까?
Thang Pham 2011

@HarryPham-상용구 코드 및 구현의 "우리가하는 일"이 아닌 "일이 수행되는 방법"처리
cdeszaq

@Pascal Thivent-다른 사람의 프로그램을 처음부터 다시 작성하게 될 수 있으며, 기존 데이터 모델과 함께 Grails를 사용하지 않는 것이 중요하지 않았다면 Grails가 프레임 워크를 사용할 수있는 확실한 승자가 될 것입니다. 아직 프로그램의 DB 아키텍처를 보지 못했지만 프로그램의 간단한 기능을 고려할 때 상당히 간단하다고 생각합니다. 기존 DB 아키텍처가 단순한 경우 권장 사항이 전혀 변경되지 않습니까? 레거시 DB의 데이터를 새 DB로 마이그레이션하여 번거로운 워크 플로우를 피할 수 있습니까? 그렇다면 이것이 어려울까요? 감사.
다니엘

Grails 3부터는 특정 요구에 맞게 Grails 프레임 워크를 사용자 지정하는 데 사용할 수있는 다양한 프로필이 있습니다. 더 이상 웹 프레임 워크가 아니며 템플릿 엔진이나 ORM 레이어 없이도 경량 REST 마이크로 서비스를 개발하는 데 성공적으로 사용할 수 있습니다. grails.github.io/grails-doc/latest/guide/single.html#profiles
Luis Muñiz

24

Groovy 는 Java 플랫폼을위한 객체 지향 프로그래밍 언어입니다. Python, Ruby, Perl 및 Smalltalk와 유사한 기능을 가진 동적 언어입니다. Java 플랫폼의 스크립팅 언어로 사용할 수 있습니다. Groovy는 Java와 유사한 구문을 가지고 있으며 Java 바이트 코드와 원활하게 작동합니다.

기타 기능은 다음과 같습니다.

  • 쉬운 학습 곡선
  • 도메인 별 언어 지원
  • 압축 구문
  • 동적 타이핑 지원
  • 강력한 처리 기본 요소
  • 웹 애플리케이션 개발의 용이성
  • 단위 테스트 지원.

Grails 는 Groovy 프로그래밍 언어를 사용하는 오픈 소스 웹 애플리케이션 프레임 워크입니다. 이는 "관습에 의한 코딩"패러다임을 따르고 독립형 개발 환경을 제공하고 개발자로부터 많은 구성 세부 사항을 숨겨서 생산성이 높은 프레임 워크가되도록 고안되었습니다.

Rails와 마찬가지로 Grails도 "Strongly Grained"라고 부르는 것 같습니다. Grails 방식으로 작업을 수행하면 개발이 쉽고 일반적으로 매우 빠릅니다. 프레임 워크는 대부분의 작업을 수행하는 선호하는 방법을 갖는 경향이 있습니다. 반면에 곡식에 맞서야한다면 상당히 힘든 시간을 보내 게 될 것입니다.

Grails에서 Groovy (존재하지 않음)라고 말하지 마십시오 . 이유는 블로그를 참조하십시오 .


12

Grails는 Ruby on Rails 와 직접적으로 유사 하지만 Groovy로 실행됩니다. Groovy는 무엇입니까 ? Java Virtual Machine (JVM)에서 실행되는 스크립팅 언어입니다.

따라서 이미 가지고 있거나 사용 가능한 Java 라이브러리 (바이트 코드로 컴파일되어 JVM에서 실행되기 때문에)와 JVM의 성능 (가비지 수집, JIT 컴파일을 통한 속도 등)을 사용할 수 있습니다. Groovy의 간결함. Java 프로그래머가 Groovy를 선택하는 데 필요한 학습 곡선은 매우 작습니다 (따라서 많은 수의 Java 프로그래머를 활용).

서블릿 프로그래밍, JSP, Java Server Faces 등의 표준 Java 메커니즘에 대해 웹 앱을 만드는 매우 다른 방법입니다. Grails (Ruby on Rails와 같은)는 표준 개발 메커니즘보다 더 동적이고 반복적 인 개발 환경을 약속합니다 . 연습 , 나는 조언 할 수 없습니다)


Brain, 귀하의 진술은 모순되며 스크립팅 언어라고 말하지만 다음 단락에서는 바이트 코드로 컴파일되었다고 말합니다. 저는 .NET 프로그래머이며 javascript 등과 같은 스크립팅 언어는 컴파일되지 않고 해석됩니다. 모순되는 말이 의미하는 바를 설명해 주시겠습니까?
Learner

Groovy는 두 가지 방법으로 모두 사용할 수 있습니다. Groovy 프로그램은 자바 스크립트처럼 한 줄씩 간단한 스크립트로 실행할 수 있습니다. JVM을 사용하여 실행할 수있는 바이트 코드 클래스에 그루비 컴파일러를 사용하여 컴파일 할 수도 있습니다.
pRmdk

0

Grails- 웹 애플리케이션을 개발하기위한 MVC 프레임 워크와 Spring + Hibernate를 기반으로 구축 된 DRY (반복하지 마십시오)를 사용하는 플랫폼을 코딩 할 준비가되었습니다. Grails 플랫폼은 개발자가 제품의 기능을 구축하는 데 집중할 수 있도록 웹 앱을 실행하기 위해 인프라와 종속성을 관리합니다. Grails-스타트 업 조직이 개발 모드에서 프로덕션 모드로 제품을 출시 할 수있는 훌륭한 프레임 워크입니다.

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