| 최근 계속해서 Groovy & Grails 정보들을 수집하고 있습니다. 보면 볼수록 멋진 녀석이더군요 :) 해서 웹프로그래밍의 기본(혹은 전부) 라고 할수 있는 게시판을 한번 만들어보려고 합니다! 일단 java & netbeans 를 다운로드 받습니다. 전 주로 이클립스를 씁니다만 아직 이클립스에서 Grails 를 완벽하게 지원해주고 있지는 않네요. ![]() ![]() 그리고 Grails를 다운로드해서 특정위치에 풀어둡니다. 그다음 [Tools] - [Plugins] 에서 Groovy & Grails 플러그인을 다운로드 받습니다. 전 벌써 다운을 받아서 ㅎㅎ ![]() 이제 GRAILS_HOME 위치를 지정해줍니다. 자 이제 첫번째 프로그램을 생성할 준비가 되었습니다. ![]() New Project 로 Grails Application을 만듭니다. Finish를 하면 기본적인 폴더구조에 소스가 생성됩니다. ![]() ![]() ![]() [New] - [Grails Domain Class] 를 선택해서 도메인 클래스를 생성합니다. 이 도메인 클래스는 MVC의 M인 Model의 역할을 하는것으로써 디비와의 통신을 정의하는곳입니다. 여기서부터가 시작이죠. 이름은 Post입니다. ![]() ![]() 자 이제 기본적인 게시판의 구조를 생각해봅시다. 가장 간단하게 작성자, 내용, 등록된날짜 매우 간단하게요. ![]() 자! 이제부터 Grails의 마법이 시작됩니다. 대부분의 웹 프로그래밍에서는 CRUD(Create, Read, Update, Delete)가 기본이됩니다. 때문에 위 액션들은 기본적으로 하게 된다는것이죠. 이것을 스캐폴딩(scaffolding)이라고 합니다. Ruby On Rails에도 존재하는 기능으로 기본적인 페이지들을 생성해주게됩니다. 실행하게 되면 grails가 혼자 먼가 열심히 하기 시작합니다. Finished generation for domain class Post 라는 메세지가 뜨면 모두 생성된겁니다. 자 이제 F6키를 눌러 실행해봅시다. ![]() Welcome to GrailsGrails 가 우리를 반겨주네요. 저기에 우리가 만든 PostController라는 녀석(정확히 말하면 생성된것이지만) 이 보입니다. 들어가봅시다!![]() 흠 먼가 리스트 페이지인듯 하군요. New Post를 해봅시다. ![]() ![]() 이제 저장되었습니다. 리스트페이지, 보기 페이지에 모두 쓴 글이 반영이 되어있군요 근데 여기서 궁금한건 우리는 일반적인 방법처럼 DBMS를 설치하고 디비를 생성해서 테이블을 만드는 작업을 하지 않았는데도 작동한다는겁니다. 이건 GROM(Groovy Object Releational Mapping) 이라는 기술로 도메인 클래스가 자동으로 테이블에 매핑을 시켜줍니다. 이는 DBMS의 종류와 관계없이 DataSource.groovy 에서 설정 바꿔주는것으로 해당 DBMS 가 적용되게 됩니다. 또 테이블이 디비에 없거나 다르다면 디비의 테이블을 생성하거나 수정하도록 합니다.( 물론 설정으로 바꿀수 있습니다 ) ![]() Grails 에서는 기본적으로 DBMS 를 지정해주지 않으면 메모리상에 가상으로 만들어 동작하도록 되어있습니다. 때문에 특별히 지정해주지 않아도 있는것처럼 동작하는 것입니다. 자 이제 실제 DBMS와 연동해봅시다. ![]() Services 탭에 보면 Databases에 Java DB가 보입니다. 자바에서 기본적으로 지원하는 심플한 디비로써 테스트용으로 부담없이 사용할수 있습니다. Java를 설치할때 깔리는 것으로 따로 설치하지 않아도 됩니다. Java DB를 예로 할것이지만 다른 DBMS와의 연동도 크게 다르지 않습니다. JDBC 드라이버와 접속하는 URL 만 변경하면 되니까요 ![]() simple_board 로 디비와 유저를 생성합니다. ![]() 생성이 되면 해당디비에 connect해서 디폴트 스키마를 지정합니다. 물론 JavaDB를 시작해주어야 합니다. ![]() 이제 생성된 디비를 DataSource.groovy에 세팅합니다. ![]() 하기전에 JavaDB의 드라이버를 임포트 해야합니다. JavaDB가 설치된 폴더에서 lib( 제 경우에는 C:\Program Files\Sun\JavaDB\lib ) 안의 내용들을 생성한 프로젝트의 lib에 복사합니다. 분명히 넷빈즈에서 임포트 하는게 있을터인데 제가 못찾아서 ㅡㅜ 이제 실행했던 녀석을 종료하고 다시 F6으로 시작해서 새로운 글을 쓴후 넷빈즈에서 그 내용을 확인합니다. ![]() 여기서 도메인 클래스 Post.groovy의 내용을 수정하면 그 내역이 실제 디비의 테이블에도 반영됩니다. 그동안 소스에서 고치고 디비에서 고치고 확인하던거에 비하면 너무나 편합니다. 지금까지의 작업에 걸린시간은 단 10분 정도입니다. Grails는 이렇게 처음 작업하기가 매우 쉽고 또 수정하기 쉽도록 디자인 되어있습니다. 또한 기본적으로 jetty라는 JSP 컨테이너가 내장되어있어 특별히 웹서버를 설치하지 않고도 테스트 할수 있습니다. 물론 일반적으로 많이 쓰는 웹서버들에 war 로 묶어서 실행시킬수도 있습니다. 요즘 계속 Grails 쪽으로 보고 있자면 그동안 제가 했던 수많은 작업들은 무슨짓이었나 하는 생각이 들 정도입니다. 작업속도면에서 타 웹 프로그래밍 언어들을 압도한다고 알려저 있는 Ruby On Rails 에 전세계적으로 매우 안정적인 Java 를 붙여서 작업속도와 수준을 매우 높였다고 생각합니다. 게다가 기존 자바 개발자들이 접근하기도 편하구요 (자바 소스를 그대로 groovy 로 확장자만 바꿔도 동작합니다!!) 앞으로 Groovy 와 Grails가 얼마나 커나갈지 모르겠네요. 하루빨리 이클립스에서 완벽하게 지원되었으면 하는 바랩입니다. google web enzine에서 grails를 공식적으로 지원하기 시작했다고 합니다. 다음에는 지금만든 프로그램을 google web enzine에 한번 얻는 것에 대한 포스팅을 할까 합니다. |
'Development/Grails'에 해당되는 글 1건
- 2009/09/13 Grails 로 첫번째 프로그램 만들기 - 게시판 (1)
Posted on 2009/09/13 00:22
Filed Under Development/Grails


















