관리 메뉴

HAMA 블로그

Play2.4 로 웹 개발 시작하기 - (2) 프로젝트 살펴보기 본문

PlayFramework2

Play2.4 로 웹 개발 시작하기 - (2) 프로젝트 살펴보기

[하마] 이승현 (wowlsh93@gmail.com) 2016. 8. 27. 13:12

  Play2.4 로 웹 개발 시작하기 
쉽고, 재밌고, 강력하고, 편리한 웹 프레임워크 Play2  (scala 언어기반) 을 배워봅시다.

환경

- Windows 10 

- JDK 1.8

- IntelliJ 2016.2.2 

- Scala 2.11

- Play 2.48 


연재 순서 

1. Play2 웹 개발 시작하기 -  설치 및 프로젝트 만들기 

2. Play2 웹 개발 시작하기 -  프로젝트 살펴보기 

3. Play2 웹 개발 시작하기 -  나만의 프로젝트 만들기 

*  2.5 에 대한 한글 자료가 부족한듯 싶습니다. 경험 풍부한 분들의 적극적인 정보 공유가 필요합니다.


2. 기본 프로젝트 살펴보기 

  설치 포스트를 통해 프로젝트를 만들면 아래와 같이 자동으로 프로젝트가 구성 됩니다.

    

  주요 구성 요소로는 
   가. 컨트롤러 (controllers)   :  클라이언트가 보낸  호출을 컨트롤 합니다. (현재 모델은 없습니다)
   나. 뷰 (views) :  사용자에게 보여질 HTML 페이지 입니다.
   다. 설정 (conf)  : application.conf 엔 로그,DB 접속등에 관한 설정을 적어줍니다.
                         routes 는 클라이언트 보낸 HTTP 를 컨트롤러에 매핑해줍니다.
   라. public 폴더 :   여기엔 js,css,img 등 각종 리소스를 넣습니다. 
   마. build.sbt  :  필요한 디펜던시를 설정하여 자동 다운로드 받게 합니다. 

  

구체적으로 살펴보시죠.

routes 파일입니다.

빨강색 박스안에 규칙을 설정해 줍니다.
/   경로로 보내면  controllers.Application.index 컨트롤러가 반응한다는 말입니다.
GET   /search  controllers.Application.search  이렇게 추가 할 수 있습니다.
굉장히 간단하면서 직관적입니다. 


Controllers 패키지내의 Application 입니다.
Controllers 를 상속받은 object 입니다.

routes 파일의 GET   /  controllers.Application.index   에 따라서 
매핑된 index 컨트롤러 함수가 정의되 있네요.
뷰의 index html 파일로 문자열을 보내는 기능만 있습니다. 
추후에 모델클래스 만들어서 DB에서 받아온 데이터를 넘겨주면 될거 같습니다.

views 패키지내의 index.scala.html 파일 입니다.

컨트롤러의 index  함수에서  Ok(views.html.index("Your new application is ready."))
이렇게 호출했었죠?  내부의 문자열 인자는  
index.scala.html 파일의 젤 위에 
@(message: String) 에 보내집니다. 
Scala 언어의 인자받는 구문과  똑같습니다. 

@main("Welcome to Play") 는 main.scala.html 를 호출하며 인자로 Welcome to Play를 보냅니다. 내부의 @play20.welcome(message) 는 main.scala.html 파일의 @content 에서 사용될 것입니다.


views 패키지내의 main.scala.html 파일 입니다.

index.scala.html 파일에서 보낸 "Welcome to Play" 는 (title: String) 에 담겨지며 
@play20.welcome(message) 는  @content 에 담겨집니다.

리소스는  @routes.Assets.at 이런식 접근합니다. 
<script src="@routes.Assets.at("javascripts/jquery-1.9.0.min.js")"

@routes.Assets.at 는 routes 파일에 아래와 같이 정의되 있구요.
GET      /assets/*file      controllers.Assets.at(path="/public", file)


디폴트 웹 어플리케이션 모습 입니다.


내용 추가 예정 .. 


Comments