Loopback 으로 게시판을 만드는 프로젝트를 진행하겠습니다. 앞선 포스팅에서 설명 드렸다시피 Loopback은 정말 빠르게 REST API를 만들어 낼 수 있습니다. 회원 가입, 로그인, 로그아웃, ACL, 설정 등 매번 구현해야 하는 귀찮은 로직들을 내부 Model을 사용해서 빠르게 만들 수 있습니다. 하지만 이렇게 말로 설명해 드리는 것보다 웹에 가장 간단한 게시판으로 포스팅을 진행하겠습니다.
? 모델 이름 입력: board ? board을(를) 첨부할 데이터 소스 선택: db (memory) ? 모델 기본 클래스 선택 PersistedModel ? REST API를 통해 board을(를) 공개합니까? Yes ? 사용자 정의 복수형 양식(REST URL 빌드에 사용됨): ? 공통 모델 또는 서버만 해당? 공통 지금 일부 board 특성을 추가하십시오.
완료된 경우 비어 있는 특성 이름을 입력하십시오. ? 특성 이름: title invoke loopback:property ? 특성 유형: string ? 필수 여부 Yes ? 기본값[없는 경우 공백으로 두기]:
다른 board 특성을 추가하십시오. 완료된 경우 비어 있는 특성 이름을 입력하십시오. ? 특성 이름: content invoke loopback:property ? 특성 유형: string ? 필수 여부 Yes
모델을 생성할 때 프로퍼티를 생성할 수 있고, 직접 해당 모델의 json 파일에 작성할 수 있습니다.
createdDt 프로퍼티는 직접 작성합니다.
"defaultFn": "now" 옵션을 주면 현재 시간이 자동으로 입력됩니다.
게시판 ACL 설정
1 2 3 4 5 6
$ lb acl ? ACL 항목을 적용할 모델 선택: (all existing models) ? ACL 범위 선택: 모든 메소드 및 특성 ? 액세스 유형 선택: All (match all types) ? 역할 선택 All users ? 적용할 권한 선택 Explicitly deny access
Loopback은 ACL 설정도 간편합니다.
lb acl 명령어로 작업을 진행합니다.
위 설정은 모든 모델에 대한 ACL 거부하는 설정입니다.
일단 막아 놓고 하나하나 풀어주는게 보안에 안전합니다.
1 2 3 4 5 6
$ lb acl ? ACL 항목을 적용할 모델 선택: board ? ACL 범위 선택: 모든 메소드 및 특성 ? 액세스 유형 선택: Read ? 역할 선택 All users ? 적용할 권한 선택 Explicitly grant access
board에 대한 ACL 설정을 진행합니다.
모든 사용자는 board를 읽을 수 있습니다.
로그인하지 않은 사용자도 게시글을 볼 수 있게하는 설정입니다.
1 2 3 4 5 6
$ lb acl ? ACL 항목을 적용할 모델 선택: board ? ACL 범위 선택: 단일 메소드 ? 메소드 이름 입력 create ? 역할 선택 Any authenticated user ? 적용할 권한 선택 Explicitly grant access
Loopback을 통해서 정말 간단하게 게시판을 만들어 보았습니다. 처음 Loopback을 공부할때는 In-memory DB를 추천합니다. 별다른 설정없이 데이터베이스 설정을 완료 할수 있습니다. 또한 ORM을 지원하기 때문에 이후에 다른 데이터베이스로 크게 무리 없이 변경 가능합니다. 앞으로도 Loopback 관련된 주제를 포스팅 진행해보겠습니다.