# DC-Demo 백엔드 설치 가이드 (Local)

### **DC 백엔드 설치 방법 (Mac OS, Linux 방식 동일)** 

**1. DC 백엔드 설치본은 [백엔드 다운로드 링크](https://composable.dabory.com/download)를 클릭하여 환경에 맞는 Backend: Golang Executable File을 다운로드합니다.**

[![image.png](https://manual.dabory.com/uploads/images/gallery/2024-12/scaled-1680-/48ximage.png)](https://manual.dabory.com/uploads/images/gallery/2024-12/48ximage.png)

**2. 다운로드 이후 `<span class="s1">mv ~/Downloads/dc_macos_main_api.tar.gz /path/to/~ </span>`명령어를 사용하여 설치 디렉토리로 이동 시킵니다.**

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--1"></div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-3.-tar-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EC%95%95%EC%B6%95%EC%9D%84-">**3. tar 명령어를 이용해 압축을 해제합니다.**</div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-cd-%2Fpath%2Fto%2F%7E">**`<span class="s1">cd /path/to/~</span>`**</div><div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-tar--xvzf-dc_macos_m">**`<span class="s1">tar -xvzf dc_macos_main_api.tar.gz</span>`**</div>**4. 압축 해제되면 main\_api라는 파일안에 weberp-go, weberp-queries 파일 두개가 생성됩니다.**

[![F68A5A21-F1D3-4A10-9854-85D27AF6E4C6_4_5005_c.jpeg](https://manual.dabory.com/uploads/images/gallery/2024-12/scaled-1680-/f68a5a21-f1d3-4a10-9854-85d27af6e4c6-4-5005-c.jpeg)](https://manual.dabory.com/uploads/images/gallery/2024-12/f68a5a21-f1d3-4a10-9854-85d27af6e4c6-4-5005-c.jpeg)

weberp-go (실행 파일) : GateToken을 발급받을 수 있는 백엔드 서버 실행 파일입니다.

weberp-go / conf : weberp-go를 실행시키기 위한 설정파일입니다.

weberp-queries : 쿼리 파일입니다.

#### **Conf / local\_config.json**

 **Kafka 관련 설정**

<div id="bkmrk-kafkaon%3A-kafka-%EC%82%AC%EC%9A%A9-%EC%97%AC%EB%B6%80"><div>- **`KafkaOn`**: Kafka 사용 여부를 설정
- **`KafkaTopic`**: Kafka에서 사용할 토픽 이름
- **`KafkaAddr`**: Kafka 브로커의 주소(IP 또는 도메인)
- **`KafkaPort`**: Kafka 브로커가 사용하는 포트

</div> **gRPC 관련 설정**</div><div id="bkmrk-grpcon%3A-grpc-%EC%82%AC%EC%9A%A9-%EC%97%AC%EB%B6%80-%28"><div>- **`gRpcOn`**: gRPC 사용 여부 (`Yes`/`No`).
- **`AppName`**: 애플리케이션 이름.
- **`SiteName`**: 사이트 이름.
- **`gRpcProtocol`**: gRPC에 사용할 프로토콜 (`http` 또는 `tcp` 등).
- **`gRpcAddr`**: gRPC 서버의 IP 주소. 기본값 `0.0.0.0`은 모든 네트워크 인터페이스를 의미.
- **`gRpcPort`**: gRPC 서버 포트 번호.

</div></div> **Rest 관련 설정**

<div id="bkmrk-reston%3A-rest-api-%EC%82%AC%EC%9A%A9-"><div>- <span style="color: rgb(186, 55, 42);">**`RestOn`**</span>: REST API 사용 여부
- <span style="color: rgb(186, 55, 42);">**`RestConnect`**:</span> REST API 연결 포트(서버 포트) 설정. 예: `:8080` (포트만 지정)
- <span style="color: rgb(186, 55, 42);">**`RestUri`**</span>: REST API의 기본 URI 경로. 예: `/api`

</div></div> **개발 및 디버그 설정 (활성화된 경우, 로그 저장 위치를 명시)**

<div id="bkmrk-isdevmode%3A-%EA%B0%9C%EB%B0%9C-%EB%AA%A8%EB%93%9C-%ED%99%9C%EC%84%B1%ED%99%94">- **`IsDevMode`**: 개발 모드 활성화 여부
- **`IsSqlDebugMode`**: SQL 디버그 모드 활성화 여부
- **`IsNormalDebugMode`**: 일반 디버그 모드 활성화 여부

 **DB 관련 설정**  
- **`IsYDBFixed`**:
- **`DBOptionString`**:

 **XDB 관련 설정**  
<div>- **`XDBOn`**: XDB 사용 여부 (`Yes`/`No`)
- **`XDBConnString`**: XDB 연결 문자열

</div> **Crystal 관련 설정**  
<div>- **`CrystalClientId`**: Crystal 서비스 클라이언트 ID
- **`CrystalBB64`**: Crystal의 Base64 키
- **`IsCrystalKeyPair`**: Crystal 키 활성화 여부 (`Yes`/`No`)
- **`CrystalKeyPair`**:

</div> **키페어 관련 설정**  
<div>- **`IsCacheKeyPair`**: CacheKeyPair 사용 여부
- **`CacheKeyPairDir`**: CacheKeyPair 디렉터리 경로
- **`LocalKeyPair`**:

</div></div> **SSO 관련 설정**

<div id="bkmrk-ssoconnstring%3A-sso-%EC%97%B0">- **`SsoConnString`**: SSO 연결 주소
- **`SsoAppBase64`**: SSO 애플리케이션 Base64 값

</div> **DBU 관련 설정**

<div id="bkmrk-dbuconnstring%3A-dbu-%EC%97%B0">- **`DbuConnString`**: DBU 연결 주소
- **`DbuAppBase64`**: DBU 애플리케이션 Base64 값
- **`DeviceAuthOn`**: 디바이스 인증 사용 여부
- **`DbuByForceOn`**: 강제 DBU 활성화 여부

</div> **쿼리 디렉터리 설정**

<div id="bkmrk-isqryfromqdb%3A-qdb%EC%97%90%EC%84%9C-">- **`IsQryFromQDB`**: QDB에서 쿼리를 가져올지 여부
- <span style="background-color: rgb(0, 0, 0);"><span style="color: rgb(186, 55, 42);">**`QueryDir`**</span>:</span> 일반 쿼리 디렉터리 경로 ( /Weberp-quary가 존재하는 경로로 지정)
- <span style="color: rgb(186, 55, 42);">**`ThemeQryDir`**</span>: 커스터마이징 쿼리 디렉터리 경로 ( /Weberp-quary/themes가 존재하는 경로로 지정)

</div> **기타설정**

- **`DbuEncryptCode`**: DBU 암호화 코드
- **`SslMode`**: SSL 모드 활성화 여부
- **`SslConnect`**: SSL 연결 포트
- **`SslFullChain`**: SSL 인증서 전체 체인 경로
- **`SslPrivate`**: SSL 개인 키 경로

 **BlockChain 설정**

<div id="bkmrk-gethconnstring%3A-geth">- **`GethConnString`**: Geth(이더리움) 연결 주소
- **`XrpConnBridge`**: XRP(리플) 연결 브리지 주소

</div> **데이터베이스 관련 설정**

<div id="bkmrk-dbtype%3A-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%ED%83%80%EC%9E%85-%28%EC%98%88">- **`DbType`**: 데이터베이스 타입 (예: `mysql`, `postgresql`)

</div> **Kafka consumer 설정**

<div id="bkmrk-iskafkaconsumer%3A-kaf">- **`IsKafkaConsumer`**: Kafka Consumer 사용 여부
- **`KafkaConnString`**: Kafka 브로커의 주소 (예 : 123.456.789.101:9092)
- **`MainProducdrTopic`**: Kafka 프로듀서의 메인 토픽 이름
- **`ConsumerTopics`**: Kafka 컨슈머 토픽 이름
- **`KafkaTimeout`**: Kafka 연결 타임아웃 (밀리초)

</div> **ElasticSearch 관련 설정**

<div id="bkmrk-elasticconnstring%3A-e">- **`ElasticConnString`**: ElasticSearch 연결 주소

</div>#### **Conf / Config\_select.json**

`config_select.json` : 프로젝트의 설정 파일을 선택하기 위한 설정 파일

#### **weberp-queries** **(표준 쿼리 파일)**

##### **쿼리 파일이 따로 존재하는 이유** 

**1. 쿼리가 빠져나와있어 다양한 커스터마이징이 가능합니다 (아래에서 설명)**

**2. 데이터베이스 구조가 다른 환경에서도 표준 쿼리는 동일하게 유지할 수 있습니다.**

**3. 표준 쿼리와 커스터마이징 된 쿼리 간 충돌을 최소화할 수 있습니다.**

(표준 쿼리 = 기본 동작 유지, 커스터마이징 쿼리 = 각 프로젝트의 요구사항 반영)

#### **Weberp-queries / themes** 

**각 프로젝트 목적에 맞게 커스터마이징이 가능한 쿼리 파일입니다.**

**ex) Weberp-queries / themes / erp / eye / eyetest.sql**

<span class="s1">SELECT </span><span class="s1">dbr\_sorder.\* </span><span class="s1">FROM </span><span class="s1">dbr\_sorder </span><span class="s1">WHERE dbr\_sorder.sorder\_no=?</span>

#### **Cache-key-pair**

다보리 컴포저블(Dabory Composable)에서 \*\*앱별로 발급되는 암호화된 키 쌍(key pair)\*\*을 관리하기 위해 사용됩니다.

- **앱 등록 시 키 발급**
    
    
    - 각 앱은 고유한 **암호화 키 쌍**(Public/Private Key)을 받습니다
    - 이 키 쌍은 앱 보안과 인증을 위한 중요한 역할을 합니다
- **서버에 기본 저장**
    
    
    - 발급된 키 쌍은 기본적으로 서버에 저장됩니다
- **서버 장애 대비**
    
    
    - 서버에 문제가 생길 경우를 대비해 **캐싱된 키 값**을 `cache-key-pair` 폴더에 저장
    - 이로 인해 서버 문제 발생 시에도 키 값을 복구할 수 있습니다

#####  **Cache-key-pair 디렉토리 용도**

- **키 복구**: 서버 장애 시 캐싱된 키로 복구 가능
- **보안 유지**: 앱별 고유 키로 데이터를 안전하게 암호화/복호화
- **효율성**: 캐시된 키를 활용해 서버 요청을 줄이고 성능 향상

**5. weberp-go 실행 파일이 있는 경로에서 `<span class="s1">./weberp-go</span>`를 입력하여 서버를 구동시킵니다.**

**이제 18080 포트로 백엔드 서버가 실행할 수 있습니다. (local\_config.json 파일에서 RestConnect로 서버 포트 변경 가능)**

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk--6"></div>