Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 명사 추출기
- 명사 뽑아내기
- 베트남어
- php thumbnail
- nodejs express
- ror실행
- rss
- 나의 취미
- 책이야기
- Node.js
- 나의 프로젝트
- 디즈니씨
- 도커
- 주식이야기
- iBatis
- Eclipse
- Cross
- node.js web framework
- scala
- flex3
- 스킨 스쿠버
- Lift
- php
- ejb
- 명사 분석기
- docker
- 메일왕창보내는법
- C/C++
- ajax
- express for node.js
Archives
- Today
- Total
nkdk의 세상
Lift 모델을 정의해 봅시다. 본문
이번 주는 모델을 정의해 볼려고 합니다.
일단 저번화에서 받은 pocketchangeapp 를 가지고 설명하려 합니다.
그리고 제가 원래는 맥에서 작업하다가 윈도우7으로 작업을 시작했는데요.
일단 http://git-scm.com/download 여기 가셔서 git을 받으시고요.
클라이언트는 tortoiseGit이 괜찮네요 ^^
자 일단 pocketchange.app에 소스를 받으셨나요? 이걸 간단히 보면
로그인 시스템부터 가입, 비번찾기 등등의 기능이 있습니다. 하나 하나 봐보죠.
자 그럼 시작!
대충 모양을 보면 정말 기본적으로 사용하는 회원가입, 로그인, 비번찾기 등등의 것들이 포함되어 있는 샘플소스입니다.
그렇다면 대충 데이타베이스 엔티티에 관련된 정의에 대해서도 나올 것 같은 기분이 생기면서 시작합니다.
src/main/scala/com/pocketchangeapp/model/User.scala 소스를 봅시다.
이 부분에서는 megaProtoUser라는 개념이 나오는데요. 이건 보통 user를 관리 할때 필요한 것이라고 하네요.
각 액션에 따른 모델들이 구분되어 있는 것 같은데요. 그거 인지는 한번 보면서 하면 좋을 듯 하네요.
나올 수 있는 관련 펑션들(사인업, 패스워드찾기, 로그인)에 관련된 것을 포함시키게 한다고 하네요.
이 내용은 User.siteMap에서 싱글콜이 SiteMap 메뉴에 제너레이트 된다고 하는데요. 이건 좀 봅시다. 아직 전체적인 모양이 안 보이네요.
전체적 내용을 보면 Object가 내부에 있는 User클래스를 상속 받는데.. O-R맵을 하는 것 같은 형태인거 같습니다.
이 부분에 대해서는 다음에 더 자세하게 봅시다.
자 다음으로는 Account.scala 라는 걸 정의 할 수도 있네요. 여기서는 간단히 필드들만 봐 볼까요?
이 부분들을 봐 보면 User부분을 부르는 부분부터 해서 간단히 여럿 오브젝트를 불러서 쓸 수 있게 등록을 해 놓는 것 같습니다.
역시나 중요한 내용을 보면 Account findByName object인데 이 내부에 class Account를 불러서 사용 한다는 내용이 마음에 드네요.
이 내용은 좀 더 봐 두면 좋을 것 같네요. ^^
주요 내용
class Account extends LongKeyedMapper[Account] with IdPK {
def getSingleton = Account
...
object Account extends Account with LongKeyedMetaMapper[Account] {
def findByName (owner : User, name : String) : List[Account] =
Account.findAll(By(Account.owner, owner.id.is), By(Account.name, name))
}
...
등등이 되겠네요. ^^; 다음 시간에는 template관련 부분에 대해서 한번 훑어 봅시다.
일단 저번화에서 받은 pocketchangeapp 를 가지고 설명하려 합니다.
그리고 제가 원래는 맥에서 작업하다가 윈도우7으로 작업을 시작했는데요.
일단 http://git-scm.com/download 여기 가셔서 git을 받으시고요.
클라이언트는 tortoiseGit이 괜찮네요 ^^
자 일단 pocketchange.app에 소스를 받으셨나요? 이걸 간단히 보면
로그인 시스템부터 가입, 비번찾기 등등의 기능이 있습니다. 하나 하나 봐보죠.
자 그럼 시작!
대충 모양을 보면 정말 기본적으로 사용하는 회원가입, 로그인, 비번찾기 등등의 것들이 포함되어 있는 샘플소스입니다.
그렇다면 대충 데이타베이스 엔티티에 관련된 정의에 대해서도 나올 것 같은 기분이 생기면서 시작합니다.
src/main/scala/com/pocketchangeapp/model/User.scala 소스를 봅시다.
이 부분에서는 megaProtoUser라는 개념이 나오는데요. 이건 보통 user를 관리 할때 필요한 것이라고 하네요.
각 액션에 따른 모델들이 구분되어 있는 것 같은데요. 그거 인지는 한번 보면서 하면 좋을 듯 하네요.
나올 수 있는 관련 펑션들(사인업, 패스워드찾기, 로그인)에 관련된 것을 포함시키게 한다고 하네요.
이 내용은 User.siteMap에서 싱글콜이 SiteMap 메뉴에 제너레이트 된다고 하는데요. 이건 좀 봅시다. 아직 전체적인 모양이 안 보이네요.
전체적 내용을 보면 Object가 내부에 있는 User클래스를 상속 받는데.. O-R맵을 하는 것 같은 형태인거 같습니다.
이 부분에 대해서는 다음에 더 자세하게 봅시다.
자 다음으로는 Account.scala 라는 걸 정의 할 수도 있네요. 여기서는 간단히 필드들만 봐 볼까요?
이 부분들을 봐 보면 User부분을 부르는 부분부터 해서 간단히 여럿 오브젝트를 불러서 쓸 수 있게 등록을 해 놓는 것 같습니다.
역시나 중요한 내용을 보면 Account findByName object인데 이 내부에 class Account를 불러서 사용 한다는 내용이 마음에 드네요.
이 내용은 좀 더 봐 두면 좋을 것 같네요. ^^
주요 내용
class Account extends LongKeyedMapper[Account] with IdPK {
def getSingleton = Account
...
object Account extends Account with LongKeyedMetaMapper[Account] {
def findByName (owner : User, name : String) : List[Account] =
Account.findAll(By(Account.owner, owner.id.is), By(Account.name, name))
}
...
등등이 되겠네요. ^^; 다음 시간에는 template관련 부분에 대해서 한번 훑어 봅시다.