Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

낙서장

What is Groovy? 본문

개발

What is Groovy?

공티스토리 2019. 7. 27. 12:13

개발 4년차에 접어든 지금, 나에게 가장 익숙한 언어를 꼽으라면 Groovy를 꼽아야 할 것이다.

지금 다니는 직장에서 메인 언어로 사용하고 있는데, 직장에 다니기 전 학교에서 가장 많이 접했던 C++이나 JAVA와는 사상 자체가 다른 언어라 처음에 적응할 때 굉장히 신기했던 기억이 난다.

 

그래서 그루비가 어떤 언어이고 우리 회사에서는 왜 이 언어를 사용하고 있는 것일까(어른의 사정을 제외하고)?

 

역사와 권위의 상징인 위키피디아에서 그루비를 검색해보면 간단한 설명이 나온다. 

Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform. It is both a static and dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk. It can be used as both a programming language and a scripting language for the Java Platform, is compiled to Java virtual machine (JVM) bytecode, and interoperates seamlessly with other Java code and libraries. Groovy uses a curly-bracket syntax similar to Java's. Groovy supports closures, multiline strings, and expressions embedded in strings. Much of Groovy's power lies in its AST transformations, triggered through annotations.

그 말인 즉슨, 자바를 기본으로 다이나믹 및 스크립트 언어의 특성을 섞어놓은 괴물이라는 것이다. 실제로 개발을 해 보면 자바의 문법을 그대로 사용 가능하거니와(무려 세미콜론; 도 사용 가능하다!) 그 문법을 쉽게 대체할 수 있는 그루비만의 독특한 문법이 존재한다. 

 

하지만 공교롭게도 그루비의 창시자 Jame strachan은 후에 scala 언어에 대해 이런 말을 남겼는데,

Though my tip though for the long term replacement of javac is Scala. I'm very impressed with it! I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.
- http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html

직역하자면 누군가 나에게 스칼라에 대해 알려줬다면 그루비는 만들지 않았을텐데(...) 이다.

 

아무튼 그럼에도 불구하고 maintainance는 계속해서 진행중인데, 얼마전 올해 5월에 2.5 버전이 릴리즈되었고, 2.6 및 3.0 버전 업그레이드가 진행중인데 공식 문서를 참고하면 2.6 버전은 3.0 버전에 집중하기 위해 진행하지 않는다고 한다.

 

앞으로는 이 블로그를 통해 개발 과정에서 느꼈던 그루비 사용의 장점, 특징, 그리고 Java 및 Kotlin으로의 마이그레이션에서 발생했던 문제들에 대해 포스팅 할 예정이다.

'개발' 카테고리의 다른 글

[취미] 정부 사이트 캡챠(Captcha) 뚫기  (0) 2020.09.29
Kotlin의 Generic에 대하여.. (1)  (0) 2019.07.29
Object creation with Groovy!  (0) 2019.07.27