다보리-컴포저블 Frontend 개발 Tutorial
- 1장. 설치방법
- Production DB 생성과 .env.dabory 의 이해
- 다보리 DB API 와 DB 연결 방법
- Docker에 설치하는 방법
- 웹서버/웹호스팅에 설치하는 방법
- 더미테마(Dummy-Theme)설치 방법
- 운영테마(Production-Theme)설치방법
- Dabory Linux 서버 SSH 로 로그인 방법
- 2장. Restfull API 구성
- 3장. Frontend 기반 구조
- 4장. Parameter 기반 개발
- 5장. 실행 메뉴와 권한 관리
- 6장. 테마 커스터마이징
- 7장. 쿼리 커스터마이징
- 8장. 커스텀 테이블 사용방법
1장. 설치방법
Production DB 생성과 .env.dabory 의 이해
다보리 Front-end에서는 Laravel에서 기본 제공하는 환경설정 파일인 env 항목에 자주 사용되는 추가적인 변수를 넣어 사용하고 있습니다. 또한 Back-end API 서버와의 연동을 위해 env.dabory 항목을 별도로 사용하고 있습니다.
-
env.dabory는 backend api와 연동하기 위한 설정파일입니다. api server와 db server에 따라 env. dabory 파일이 다르게 설정됩니다. env.dabory 설정을 통해 1개의 메인 API 서버와 다수의 서브 API 서버가 상호작용하며 연동이 이뤄집니다.
-
env.dabory 변수 설명
- *_API_URL = 연동할 API서버의 URL:PORT
- *_API_CLIENT_ID = API CLIENT ID
- *_API_CLIENT_SECRET = API Client Secret
- *_API_BEFORE_BASE64 = API Keypair
Front-end에서 db 접속 정보가 sodium을 통해 암호화된 위 변수들을 찾고 해당 API 서버에 요청하게되면 게이트 토큰을 반환합니다.
.env.dabory는 dabory sso(https://www.daborysso.com/)에서 일반회원으로 로그인후 my-app 메뉴에서 App Manger 메뉴로 진입하여 API 서버와 DB서버 정보를 입력하면 생성할 수 있습니다. 생성된 env.dabory 파일을 확인하고 프로젝트의 env.dabory 파일에 설정내용을 붙여넣으면 api와 연동이 가능합니다.
다보리 DB API 와 DB 연결 방법
해당사항은 먼저 2장 Restfull api의 구성 1번 메뉴얼을 숙지하시고 확인해주시기 바랍니다.
2장 1번 메뉴얼에서 언급한바와 같이 clientId와 beforebase64가 담긴 json type의 데이터를 통해 API 서버를 호출하게되면 api 서버에서 response로 gate token을 생성하여 반환합니다. 이 gate token으로 env.dabory에서 설정을 통해 연동된 db api에 접근할 수 있습니다.
Docker에 설치하는 방법
docker 설치방법
설치할 프로젝트 경로로 이동한뒤 깃서버에서 php-docker를 복제해옵니다. (git clone php-docker url)
docker를 돌리기 위해 Dockerfile과 docker-composeyml 파일을 세팅합니다. Dockerfile은 디폴트로 php 7.3버전이 설치되며
php 버전이 8.0 이상일 경우
copy Dockerfile--v8.0 Dockerfile
copy php.ini-pma-upload--v8.0 php.ini-pma-upload
명령어를 통해 Dockerfile을 바꿔줍니다.
다시 설치할 프로젝트 경로로 이동하여 깃서버에서 dbrerp를 복제해옵니다.(git clone dbrerp url) 확인해야 할 파일은 다음과 같습니다.
- /dbrerp/.env
- dbrerp/.env.dabory
위 파일들을 세팅해줍니다. 또한 .gitignore 파일이 깃서버에는 업로드되지 않기 때문에 .gitignore에 포함되어 있는 파일들을 추가해줍니다.( ventor, theme 등) 마지막으로 docker-compose up -d 혹은 sh /shell/dkcu-compose-up.sh 명령어를 통해 docker를 실행합니다.
웹서버/웹호스팅에 설치하는 방법
웹서버/웹호스팅 설치방법
먼저 웹호스팅 서버에 접근하기전 세팅할 파일들을 준비해줍니다. git clone을 통해 깃서버로부터 소스코드를 복제할 것이기 때문에 gitignore에 포함되는 파일들을 세팅합니다. 세팅목록은 다음과 같습니다.
- /dabory/themes
- /vendor
위 파일들이 세팅이 되면 ussh 파일을 통해 웹호스팅 서버에 접근합니다. ./ussh 서버명 호스트명을 통해 접근할 수 있습니다.
-
만약 사용하는 OS가 widnow인 경우 링크를 통해 git을 설치합니다.
설치할 폴더 경로로 이동합니다. /home/호스트명/호스트명.daboryhost.com 폴더에서
git clone ‘repository url’ 명령어를 통해 소스코드를 복제합니다.
서버 접근전에 세팅해두었던 파일들을 웹호스팅 서버에 추가합니다.
더미테마(Dummy-Theme)설치 방법
.env 항목에서 DBR_THEME 변수에 erponly를 넣어줍니다. erponly는 테마는 /pro로 들어오는 경로로 들어오는 모든 트래픽을 user page로 redirection시켜주는 테마입니다.
/dabory/themes 디렉토리로 이동한뒤 git clone erponly url 명령어를 통해 theme 소스코드를 가져옵니다. 반드시 변수의 이름과 테마 폴더 이름을 변수 값으로 동기화해야 합니다. 디렉토리 관련해서는composer 디렉토리에 autoload_psr4 파일에 각 디렉토리들을 namespace로 구성하여 관리되고 있으니 참고하시기 바랍니다.
운영테마(Production-Theme)설치방법
-
운영테마(Production-Theme)설치방법
.env파일에서 ERP_THEME, PRO_THEME 변수를 찾아 확인합니다. 변수의 이름과 테마 폴더 이름을 변수 값으로 동기화해야 합니다. /themes/pro 폴더 임폴트 (수정 예정)
Dabory Linux 서버 SSH 로 로그인 방법
* ussh 파일을 통한 linux 서버 로그인
ussh 파일을 사용하여 로그인하기 위해서는 먼저 세가지를 준비해야합니다.
(1). ussh파일
(2). pem key
(3). 해당 서버의 정보를 포함하고 있는 txt 파일
- txt 파일은 .ussh 파일을 참고하여 파일명까지 적합하게 맞춰줘야 합니다.
2장. Restfull API 구성
다보리 Gate Token 개념
-
다보리 Gate Token이란?
SSO에 가입한 사용자는 로그인후 접속정보를 통해 ClientId와 PublicKey를 발급받습니다. 최초에 작성된 sodium key pair는 sso 서버에 저장됩니다.
(Front-end) - - - - > {Client Id, BA64 Key} - - - - > (Back-end)
gateToken 생성
(Back-end) - - - - > {gate token} - - - - > (Front-end)
Front-end에서 최초 발급된 ClientId와 사용자의 db 접속정보가 암호화된 BA64 Key를 Back-end로 전송하면 Back-end에서 Gate Token을 생성하여 반환하면 Front-End에서 session에 토큰을 저장하여 사용할 수 있습니다. 이 Gate Token을 통해 사용자를 검증하고 세션을 유지시켜줍니다. 또한 Gate token을 발급받은 사용자는 한번의 로그인으로 다수의 API 서버와 연동할 수 있습니다.
[Gate Token 순서도]
https://manual.dabory.com/books/frontend-tutorial/page/envdabory-gate-token
다보리 API 설계의 기본 지식
-
다보리 API 설계
- 다보리 ERP의 모든 API는 단순성과 보안성을 지향하기 때문에 POST method만 사용합니다.
- 모든 API는 GateToken을 사용합니다.
- API는 타켓 DB의 접근 정보를 PKI 암호화한 BeforeBase64 Key로만 GateToken을 발급받을 수 있습니다. ( https://libsodium.gitbook.io/doc 참조)
- DaborySSO 를 사용하기를 권장하지만 Key Pair를 API 서버의 환경변수에 저장하여 SSO 서버에 독립적으로 사용이 가능합니다.
- 모든 Frontend Server는 ClientId 값을 가지며 DaborySSO 에서 App 레코드를 만드는 과정에서 생성이 가능합니다.
- Client(Frontend)의 GateToken은 API 서버의 메모리 DB에 저장되며 유효기간 설정이 가능합니다.
- 사용자 인증 이후 API의 모든 요청시 Gate Token가 Header에 포함되어야 합니다.
PAP(pick-act-page) API 설명
PAP(pick-act-page) API란?
PAP(pick-act-page) API는 다보리 컴포저블 앱에서 개별 Table 단위의 데이터 처리를 위한 API 구조를 정의하는 방법입니다. 이 API 구조는 데이터의 추출(Pick), 실행(Action), 그리고 페이지네이션(Page) 세 가지 api를 포함하고 있습니다.
- Pick api (데이터 추출)
- 개별 ID 값을 기반으로 한 개 또는 다수의 레코드를 추출합니다.
- Act api (데이터 실행)
- Insert, Update, Delete와 같은 데이터 작업을 수행합니다.
- ID 값에 따라 Insert(0), Update(양수), Delete(음수)로 구분합니다.
- Delete는 다른 필드 없이 ID 값만으로 처리할 수 있습니다.
- Page api(페이지네이션)
- 하나의 Select 쿼리로 테이블의 레코드를 2차원 리스트 형태로 가져옵니다.
- QueryCnt, Query, Fields, Asc, Desc, Limit, Offset, ReturnJson 등의 파라미터를 통해 페이징과 필터링을 설정합니다.
- 특히 ReturnJson 필드는 페이지 갱신 시 이전 쿼리 조건값을 잃지 않도록 서버에 전달하고, Base64 인코딩을 통해 전달합니다.
*API 공용 Json Structure 정의
"PageVars": {
"QueryCnt": "string",//Response 시에만 유효한 값, Where 절에 걸리는 Row Count - Request 시에는 지정하지 않아도 됩니다.
"Query": "string",//Query의 Where Clause의 내용과 같은 문법으로 지정 가능합니다. (And / Or 조건 지정 가능)
"Fields": "string",// 가져올 필드를 지정합니다, 필드 자체를 뺄 수는 없지만, 해당값을 Empty 처리가 가능합니다. (지정하지 않으면 all)
"Asc": "string",// ORDER BY *** ASC 지정 가능합니다.
"Desc": "int",// ORDER BY *** DESC 지정 가능합니다.
"Limit": "int",// 한번 페이징에서 가져오는 Row 갯수, 반드시 지정필요, 10개 Default
"Offset": "int",// Where로 필터된 rows 중 가져오는 첫번째 레코드 레코드 옵셋 지정 가능
"ReturnJson": "string",//일반적으로 필터링 하는 지정 조건 값을 서버로 보냈다가 받을 수 있습니다.
}
3장. Frontend 기반 구조
.env 의 구조
- .env 변수 설명
Lavavel .env 기본 메뉴얼(https://laravel.kr/docs/5.7/configuration)
Lavavel .env Example(https://zetawiki.com/wiki/라라벨_.env,_.env.example)
# [Dabory]
ERP_THEMES=업종특화 소스코드 분리 위해 사용 (themes/erp 폴더 임포트)
PRO_THEME=PRO 소스코드 분리하기 위해 사용 (themes/pro 폴더 임포트)
LOCALE_SEQUENCE=다국어 사용 목록
APP_MOBILE_NO=아직 사용X
TAG_LINE=아직 사용X
CDN_TYPE=미디어 CDN (aws-s3 or local)
MEDIA_URL=미디어 base url 지정(미디어가 local or a3)
FAVICON_PATH=파비콘 파일 path
IS_SKIP_DBUPDATE=DBUPDATE 스킵 or 사용
IS_ON_MEMBER_SIGNUP=아직 사용X## [MetaMask]
CHAIN_ID=0xE67B
CHAIN_NAME='Dang Smart Chain'
RPC_URLS=http://3.38.62.211:8545
NATIVE_CURRENCY_NAME=DGT
NATIVE_CURRENCY_SYMBOL=DGT
NATIVE_CURRENCY_DECIMALS=18
BLOCK_EXPLORER_URLS=https://explorer-staging.dangnn.co.kr### [asset & cache]
BROWSER_CACHE=브라우저 캐시사용 (개발단계에서 false)
CSSJS_URL=local or asset url 입력 (개발단계에서 local)### [Printer]
REPORT_SERVER_URL=프린터 서버 base url### [Laravel]
APP_NAME=앱 이름
APP_ENV=.env 기본 메뉴얼 참고
APP_KEY=base64:.env 기본 메뉴얼 참고
APP_DEBUG=.env 기본 메뉴얼 참고
APP_URL=앱 url
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=사용x
DB_HOST=사용x
DB_PORT=사용x
DB_DATABASE=사용x
DB_USERNAME=사용x
DB_PASSWORD=사용xBROADCAST_DRIVER=사용x
CACHE_DRIVER=사용x
FILESYSTEM_DRIVER=사용x
QUEUE_CONNECTION=사용x
SESSION_DRIVER=사용x
SESSION_LIFETIME=사용x
MEMCACHED_HOST=사용x
REDIS_HOST=사용x
REDIS_PASSWORD=사용x
REDIS_PORT=사용xMAIL_MAILER=.env 기본 메뉴얼 참고
MAIL_HOST=.env 기본 메뉴얼 참고
MAIL_PORT=.env 기본 메뉴얼 참고
MAIL_USERNAME=.env 기본 메뉴얼 참고
MAIL_PASSWORD=.env 기본 메뉴얼 참고
MAIL_ENCRYPTION=.env 기본 메뉴얼 참고
MAIL_FROM_ADDRESS=.env 기본 메뉴얼 참고
MAIL_FROM_NAME=.env 기본 메뉴얼 참고AWS_ACCESS_KEY_ID=.env 기본 메뉴얼 참고
AWS_SECRET_ACCESS_KEY=.env 기본 메뉴얼 참고
AWS_DEFAULT_REGION=.env 기본 메뉴얼 참고
AWS_BUCKET=.env 기본 메뉴얼 참고
AWS_USE_PATH_STYLE_ENDPOINT=.env 기본 메뉴얼 참고PUSHER_APP_ID=사용x
PUSHER_APP_KEY=사용x
PUSHER_APP_SECRET=사용x
PUSHER_APP_CLUSTER=사용xMIX_PUSHER_APP_KEY=사용x
MIX_PUSHER_APP_CLUSTER=사용xANALYTICS_UA_ID=
ANALYTICS_VIEW_ID=ANALYTICS_G_ID=
ANALYTICS_PROPERTY_ID=
.env.dabory 와 Gate Token
제 2장 Rest Api의 구성(https://manual.dabory.com/books/frontend-tutorial/chapter/restfull-api)에서 Gate Token에 대한 내용을 다뤘으니 참조하시고 해당 장을 숙지하시면 이해하는데 도움이 됩니다.
dabory Gate Token(DGT) 순서도
- [ KeyPair/PublicKey 등을 를 생성하는 일반적인 PHP Code
]- [Sodium 사용 Ajax 제공 (260~262 Lines)]
- [ DB 정보 암호화 how to use it in PHP (254~263 Lines)]
(http://git.daboryhost.com:10880/dabory/dbrerp/src/master/resources/views/front/dabory/pro/my-app/popup/popup-form1/form-a/client-app-form.blade.php).- 로그인한 유저가 유저페이지에 접근합니다.
- 백엔드 서버에서
secret_key
와key_pair
를 통해서 해당 업체의 db를 생성합니다. (erp_center_db, erp_memory_db, erp_individual_dbs)
- 프론트엔드서버에 생성된 db를 제공합니다.(driver, host, username, database, passwd, public_key) -> client config
- 유저가 메뉴나 링크를 클릭합니다.
[DGT 생성과정 시작]
- 백엔드 api 서버에 DGT를 요청합니다.
- api 서버에서 프론트엔드에서 보낸 사용자의 client config를 통해 랜덤한 20자의 문자열을 생성하고 Sodium을 통해 암호화합니다.
- 백엔드에서 DGT를 생성하여 저장하고 status 200, DGT를 반환합니다.
- 프론트엔드에서 반환받은 DGT를 세션에 저장합니다.
- 만약 DGT가 존재하지 않는다면 DGT를 받아오는 과정이 생략됩니다.
[Main Request]
- 이제 프론트엔드에서 보낸 모든 요청에 DGT가 포함되어 요청합니다.
[DCS 생성과정 시작]
- 백엔드에서는 DGT를 통해 DCS를 생성하여 반환합니다.
- 만약 memory_db에 저장된 DGT가 존재하지 않는다면 DCS를 받아오는 과정이 생략됩니다.
- 검증된 DCS를 통해 사용자 DB(erp databases)의 모델에 접근합니다.
- 사용자 db로부터 요청한 data를 얻고 반환합니다.
[요청 끝]
다보리 Frontend 폴더 구조
-
Frontend 구조
├── 0.0.0
├── app
├── app.examples
├── appslabke
├── artisan*
├── composer
├── config
├── dabory
(... 생략)
├── public
├── ralouphie
├── ramsey
├── resources ├── robots.txt
(... 생략)
- dabory
- dabory 폴더는 Composing 방식으로 관리자/erp 사용자 메뉴를 커스터마이징 할 수 있도록 설정할 수 있는 json 형식의 파일들을 담고 있는 para 폴더와 테마를 커스터마이징 할 수 있는 themes 폴더로 구성되어 있습니다.
- public
-
-
public 폴더는 웹 애플리케이션의 진입점이자 외부에서 접근 가능한 모든 파일들이 위치하는 폴더입니다.
- 다보리 프론트엔드에서 중요한 테마를 커스터마이징할 수 있는 폴더입니다.
-
para- -/dabory 폴더와 themes 폴더는 위 dabory 폴더와 동일한 구조로 이루어져 있습니다.
-
dabory 폴더에서는 이미지나 리소스에 접근이 불가능하기 때문에 public 폴더에서 심볼릭 링크(symbolic link)를 생성하여 사용합니다.
-
다보리 Theme 폴더의 구조
Theme 폴더의 구조
다보리 테마폴더는 두가지로 분류됩니다.
1. pro (서비스 페이지)
기업이나 조직 외부에 있는 게스트 및 고객 구성원을 대상으로 하는 프론트 오피스 페이지입니다.
- pro 폴더의 구조 예시
├─themes
├─eyerecord
├─erp
├─shell
├─pro
├─app
├─Http
├─Services
├─para
├─resources
├─routes
├─shell
2. erp (관리자 페이지)
기업이나 조직 내 직원 및 관리자를 대상으로 하는 백오피스 페이지입니다.
erponly 테마는 erp 기능만 사용할 수 있도록 /pro (프로테마 경로)로 들어오는 모든 트래픽을 user page로 redirection시키는 간 단한 테마입니다.
- erp 폴더의 구조 예시
├─themes
├─erponly
├─erp
├─shell
├─pro
├─routes
├─shell
├─qry
-
-
예시)
local PC: $ cd pro newerp-php73
$ cd /Users/EricKim/docker-works/php/newerp-php73/dbrerp/public/themes/pro
server : $ cd pro newerp cd /home/newerp/public_html/public/themes/pro
local PC: $ cd erp newerp-php73
$ cd /Users/EricKim/docker-works/php/newerp-php73/dbrerp/public/themes/erp
server : $ cd pro newerp cd /home/newerp/public_html/public/themes/erp
-
gate-token-get 요청 보내기
- api 테스트를 통해 gate-token 받아오기
rest api를 테스트할 수 있는 PostMan이나 Thunder Client(vsocde 사용시)를 통해 gate-token response를 테스트해봅니다.
먼저 .env.dabory 파일에서 초기설정된 MAIN_API_URL, MAIN_API_CLIENT_ID, MAIN_API_BEFORE_BASE64
"ClientId": "MAIN_API_CLIENT_ID의 value",
"BeforeBase64": "MAIN_API_BEFORE_BASE64의 value"
}
4장. Parameter 기반 개발
다보리 파라메터의 개념
다보리 컴포터블에서는 쿼리에 대한 정보를 json 구조의 파라미터에 넣어 다양한 구조의 쿼리를 사용할 수 있습니다.
프론트에서 필요한 데이터에 해당하는 json 파일(쿼리의 내용을 담고 있는)을 배열로 요청하면
백엔드에서 해당 json 파일을 읽습니다. json 파일에서 호출한 sql 파일을 실행하여 결과 데이터를 프론트에서 사용할 수 있습니다.
공통적으로 파라미터 파일의 경로는 다음과 같습니다.
json 요소의 구조
- json 요소의 예시
각각의 요소에 대한 설명
ListType1 파라메터의 이해와 사용법
- ListType1 파라메터의 이해
다보리 파라메터 중 가장 많이 사용하는 ListType1 파라메터의 예시
- ListType1 파라메터의 사용법
다음 내용은 새로운 LT1을 추가하는 방법입니다.
먼저 erp 페이지의 슈퍼유저메뉴 - 바둑판 불러오기 메뉴를 통해 파라메터 명을 확인합니다.
페이지의 소스에서 list-type1 디렉토리 내 para_name에 해당하는 경로의 json 파일을 똑같이 복사하여 붙여넣습니다.
예를들어 para_name이 /list/list-type1/dowonload/menu/sort-menu 라면 /list/list-type1/dowonload/menu/ 경로로 이동하여
weberp-queries에서도 동일한 경로로 이동하여
해당 페이지 메뉴에서 보여주고 싶은 데이터, 엑셀 다운로드 데이터를 C1~C20까지 순서대로 넣습니다.
쿼리 작성이 끝났다면 방금 만들어줬던 쿼리와 동일하게 새로 만들어준 json 파일의 파라메터도 수정해줍니다.
마지막으로 쿼리를 실행하기 위래 QueryName을 입력해줍니다.
이제 다시 웹으로 가서 바둑판 메뉴 불러오기를 하면 새로 추가한 list를 확인할 수 있습니다.
5장. 실행 메뉴와 권한 관리
실행 메뉴의 확장
다보리 컴포저블에서 사용자 메뉴를 확장하고 수정할 수 있습니다.
사용자 메뉴리스트
먼저 erp 페이지에서 좌측 메뉴를 보면 사용자 메뉴리스트가 출력되고 있습니다.
Component : /views/components/nav-side-bar-component
Parameter : dabory/para/erp//ko_KR/list/list-typ1/user-menu-input
Query_name : user-menu-input
해당 사용자의 권한에 따른 메뉴들이 출력되며 메뉴코드별로 자식 메뉴가 있다면 모두 출력됩니다.
여기서 메뉴정보들은 bpa 변수 안에 암호화되어 반환되고 bpa를 통해 해당 메뉴에 접근할 수 있습니다.
사용자 메뉴의 수정 / 추가 / 삭제
Component : /views/components/nav-side-bar-component
Parameter : dabory/para/erp//ko_KR/list/list-typ1/user-menu-input
Query_name :
사용자메뉴를 자유롭게 커스터마이징 할 수 있습니다.
사용자 메뉴의 검색
Component : /views/front/dabory/erp/popup-form1/form-a/menu-form
Parameter : /dabory/para/erp/ko_KR_list/popup/popup-form1/form-a/user-menu
Query_name : download/menu/user-menu
파라메터의 value값을 통해 다양한 검색조건, 상태별 검색이 가능합니다.
실행메뉴의 권한관리
사용자 메뉴별 유저의 권한을 설정할 수 있습니다.
Component : /views/front/dabory/erp/perm/user-perm
Parameter : /dabory/para/erp/ko_KR/form/form-b/user-menu-perm
Query_name : user-menu-perm
6장. 테마 커스터마이징
theme 폴더 설치방법
테마폴더 설치
참조: Theme 폴더의 구조
테마폴더를 설치하기 위해서는 먼저 프로젝트 내 /public/themes 폴더로 이동합니다.
- pro 테마
dbr-themes-pro 레포지토리에서 적용할 pro 테마를 선택합니다.
만약 erponly 테마를 적용한다면
git clone erponly
명령어를 통해 테마 폴더를 /public/themes로 복제합니다.
- erp 테마
dbr-themes-erp 에서 레포지토리에서 적용할 erp 테마를 선택합니다.
명령어를 통해 테마 폴더를 /public/themes로 복제합니다.
* pro 테마 폴더는 하나여야 합니다. erp 테마 폴더는 비즈니스 로직과 워크플로우에 의해 제한된 기능을 가질 수 있기 때문에 여러개일 수 있습니다.
git 서버와 Standard/theme 폴더 동기화
깃서버 : 테마폴더 동기화
로컬 PC에서의 스크립트 (cd php
):
-
cd $HOME/docker-works/php/
: 홈 디렉토리 아래에 있는docker-works/php/
경로로 이동합니다. -
all-gitpp {website-alias}
:all-gitpp
는 사전 정의된 쉘 함수로, 웹사이트 별로 Git 저장소에서 변경 사항을 가져오고 특정 폴더로 이동하여 업데이트를 수행합니다.{website-alias}
는 웹사이트의 별칭을 나타내며, 해당 웹사이트의 폴더로 이동하고 Git 동기화를 실행합니다.
서버에서의 스크립트 (cdz
):
-
cd /home
: 서버의/home
디렉토리로 이동합니다. -
all-gitpp-host {website-alias}
:all-gitpp-host
는 로컬 PC의all-gitpp
와 비슷한 역할을 합니다. 이 명령은 특정 웹사이트에 대한 Git 저장소 동기화 및 업데이트를 실행합니다. 이전과 마찬가지로{website-alias}
는 웹사이트의 별칭을 나타내며, 해당 웹사이트의 폴더로 이동하고 Git 동기화를 실행합니다.
이러한 스크립트들은 특정 작업을 자동화하여 개발자가 코드 변경 사항을 효율적으로 동기화하고 관리할 수 있도록 도와줍니다. 로컬 PC에서는 개발 환경을 관리하고, 서버에서는 실제 배포된 웹사이트를 관리하는 데 사용될 수 있습니다.
theme 폴더 및 .env 변수 동기화
Theme 폴더 : .env 변수 동기화
프로젝트 루트 경로에서 .env파일로 이동합니다.
(변수 이름과 테마 폴더 이름을 변수 값으로 동기화해야 합니다.)
현재는 DBR_THEME로 통합되어 DBR_THEME 변수로만 운영되고 있습니다.
프로 테마 커스터마이징 예제
pro 테마 : 기업이나 조직 외부에 있는 게스트 및 고객 구성원을 대상으로 하는 프론트 오피스 페이지
다보리 컴포저블에서 가장 기준이 되는 pro 테마에는 point2u가 있습니다.
프로 테마 커스터마이징 예제
point2u는 상품을 등록하고 판매할 수 있으며 결제, 장바구니 등의 기능으로 커스터마이징한 쇼핑몰 기반의 pro 테마입니다.
- 커스터마이징 방법
- 상품 리스트 페이지와 상품 디테일 페이지에서 사용하고 있는 데이터, 메뉴를 수정합니다.
- route와 Controller를 수정 및 추가합니다.
- view 페이지에 text와 이미지 및 css 등 정적인 요소들을 수정합니다.
위와 같은 방법으로 프로 테마를 커스터마이징할 수 있습니다.
수정중...
ERP 테마 커스터마이징 예제
7장. 쿼리 커스터마이징
커스터마이징 방법
다보리 컴포저블에서 업체는 표준(standard) 쿼리 구조를 적용할 수 있고
각 업체별 쿼리를 커스터마징하여 사용할 수 있습니다. 일반적으로 쿼리폴더에서 표준화된 공통 쿼리를 사용하지만
각 theme 폴더 -> qry 폴더를 통해 커스터마이징하여 사용할 쿼리를 생성하고(해당 경로에 sql 파일 생성)
프론트엔드에서 이 경로의 query_name으로 호출하게 되면 쿼리를 커스터마이징하여 사용할 수 있습니다