SAP BTP - CAP을 사용하여 어플리케이션 만들기
포스팅 제목과 같이 CAP과 Node.js를 사용하여 어플리케이션을 향상 시키는 방법을 포스팅하고자 한다. Node.js는 자바스크립트로 서버 사이드를 구성하는 언어라고 우리는 익히 알고 있지만 CAP이란건 모른다.
그렇다면 CAP이란 무엇인가?
Cloud Application Programming 의 줄임말로 애플리케이션을 구축하기 위한 프레임워크라고 보면 된다.
CAP의 주요 특징은
-
데이터 모델링: CAP은 데이터 모델링을 위한 빠르고 간편한 방법을 제공합니다. 개발자는 데이터 모델을 정의하고 데이터베이스 스키마를 자동으로 생성할 수 있습니다.
-
서비스 개발: CAP은 OData 또는 RESTful API를 사용하여 비즈니스 로직을 구현하고 외부 시스템과의 상호 작용을 쉽게 할 수 있습니다.
-
UI 생성: CAP은 Fiori UIs, SAPUI5, React 또는 Angular와 같은 프레임워크와 통합하여 사용자 인터페이스를 빠르게 개발할 수 있습니다.
-
데이터 접근: CAP은 다양한 데이터 소스와의 통합을 지원합니다. 이를 통해 다양한 데이터베이스, SAP 시스템, 외부 서비스 등과 연동하여 데이터를 처리할 수 있습니다.
-
인증 및 권한 관리: CAP은 사용자 인증 및 권한 관리를 쉽게 구현할 수 있도록 지원합니다.
위와 같은 특징들이 있고 이러한 이점을 통해 도메인에 중점을 둘 수 있다고 한다.
도메인에 중점을 둘 수 있다라는 뜻은 개발자가 비즈니스 로직과 관련된 핵심 기능에 집중하여 개발할 수 있다는 뜻으로 보면 될 것 같다.
결국엔 CAP이란건 BTP내의 서비스 단(MVC pattern중에서 말하는 서비스 단)을 개발할 수 있는 프레임워크라고 축약해서 말할 수 있을 것 같다.
개념은 잡았으니 이제 직접 실습해보자.
필요 개발 환경 : VS Code, node 18 버전 이상, git
- 명령어를 통해 ui5 설치
sapui5 는 모던 웹 표준 및 기술을 기반으로 하고 UI 라이브러리와 도구를 제공하는 프로그램
npm install --global @ui5/cli
설치 후 ui5 버전 확인
ui5 --version
- Cloud Foundry(CF) 설치 현재 실습 중인 환경은 윈도우이므로 프로그램을 따로 다운 받아 설치 https://packages.cloudfoundry.org/stable?release=windows64&version=v8&source=github
CF는 클라우드 네이티브 어플리케이션을 개발, 배포, 운영하기 위한 오픈 소스 플랫폼.
- 명령어를 통해 CDS 설치
npm install --global @sap/cds-dk
CDS는 Core Data Services의 약자로, 데이터 모델링과 쿼리 정의를 위한 언어 및 프레임워크
-
VS Code에서 SAP CDS Language Support 설치
-
VS Code에서 SAP Fiori Tools 설치
-
Yeoman 설치
npm install --global yo
Yeoman은 웹 개발에서 애플리케이션과 프로젝트의 구조를 빠르게 설정하고 생성하기 위한 툴체인(Toolchain)입니다. Yeoman은 프로젝트의 초기 설정, 뼈대 코드 생성, 의존성 관리 등을 자동화하여 개발자가 새로운 프로젝트를 시작할 때 시간과 노력을 절약할 수 있도록 해주는 프로그램
- 프로젝트 경로에서 git clone
git clone https://github.com/SAP-samples/cloud-cap-risk-management tutorial
- 프로젝트 경로로 이동하여 cpapp init(CAP project를 만드는 과정)
cds init cpapp
기본적인 프로젝트 구조
- cpapp 프로젝트로 이동하여 npm install
npm install
- CAP server 구동
cds watch
db나 뭐 이런게 없어서 아직은 별다른 반응이 없음. template에 있는 db를 프로젝트 db 폴더로 복사
복사를 하니 커맨드 창에 변화가 생김
성공적으로 서버는 올라갔음.
template에 있는 srv를 프로젝트 srv 폴더로 복사
Service Endpoint가 생김
Risks나 Mitigations의 데이터가 비어있음
데이터를 추가
sqllite에 성공적으로 데이터 삽입 성공
Risks
Mitigations