4D 데이터베이스 튜토리얼: 전체 가이드
4D 데이터베이스 자습서는 테이블, 필드, 양식 및 메서드의 네 가지 주요 개체로 시작됩니다. 4D는 1984년에 처음 출시된 4D SAS의 관계형 데이터베이스 및 애플리케이션 개발 플랫폼으로, 컴파일되거나 해석된 애플리케이션 계층에 연결된 독점 “.4DD” 구조 파일에 데이터를 저장합니다. 개발자는 하나의 통합 환경에서 테이블을 정의하고, 양식을 작성하고, 코드를 첨부합니다.
4D는 툴링 환경에서 특이한 위치를 차지합니다. 관계형 데이터베이스 엔진, 신속한 애플리케이션 개발 환경, 웹 서버 및 로우 코드 양식 디자이너의 조합입니다. 이러한 조합이 소규모 팀이 이를 채택하는 이유입니다. 하나의 제품이 스토리지, 비즈니스 로직, UI 및 배포를 포괄합니다.
엔진은 테이블, 기본 키, 관련 테이블 및 구조에 정의된 관계 등 고전적인 의미에서 관계형입니다. 4D가 SQL 엔진과 ‘SQL 시작’ / ‘SQL 종료’ 명령을 통해 SQL을 지원하지만 PostgreSQL이나 MySQL처럼 SQL 중심(SQL first)이 아닙니다. 대부분의 일상적인 작업은 SQL보다 스크립팅 언어에 더 가까운 4D 고유의 언어(역사적으로는 4D 언어, 현재는 간단히 4D 코드라고 함)를 사용합니다. 이 4D 데이터베이스 튜토리얼 접근 방식은 초보자가 도구의 다양성을 이해하는 데 도움이 됩니다.
두 가지 아키텍처 사실이 초기에 중요합니다.
- 구조 대 데이터. 구조(테이블, 필드, 양식, 메서드)는 최신 버전의 ‘.4DC’/프로젝트 파일에 있습니다. 데이터는 ‘.4DD’ 데이터 파일에 있습니다. 4D 20 이상에서는 프로젝트가 텍스트 파일 폴더로 저장되므로 Git을 사용한 버전 제어가 실용적입니다. 오래된
.4DB바이너리 구조는 비교하기가 더 어렵습니다. - 클라이언트-서버 대 단일 사용자. 단일 사용자 배포는 단일 시스템에서 모든 것을 실행합니다. 클라이언트-서버는 4D 서버(데이터 + 비즈니스 로직)를 4D 클라이언트(UI)와 분리합니다. 동일한 구조가 둘 다 지원하지만 네트워크 왕복에 따라 루프 작성 방법이 변경됩니다.
Microsoft Access에서 온 경우 멘탈 모델이 잘 적용됩니다. 웹 스택에서 온 경우 몇 가지 습관을 잊어버릴 것으로 예상하십시오. 4D 양식은 요청-응답이 아닌 상태 저장 및 이벤트 중심입니다.
1단계: 첫 번째 구조 설치 및 생성
이 4D 데이터베이스 튜토리얼을 시작하려면 공식 4D 웹사이트(4d.com)에서 4D를 다운로드하세요. 일반적으로 배포를 위해 4D(전체 개발 환경)와 4D 서버 중에서 선택합니다. 학습을 위한 무료 로컬 개발 모드가 있지만 프로덕션으로 배포하려면 라이선스가 필요합니다. 현재 라이선스 조건이 릴리스마다 변경되므로 직접 확인하세요.
관련 항목: — 단일 파일의 데스크톱, 웹, 모바일용 맞춤형 앱이 필요한 팀을 위한 장기 실행 관계형 데이터베이스 플랫폼입니다..
프로젝트 만들기:
- 4D를 실행하고 새로 만들기 > 프로젝트를 선택합니다.
- 프로젝트 이름을 지정하고 폴더를 선택합니다. Modern 4D는 구조가 텍스트 파일인
Project/Sources/가 포함된 프로젝트 폴더를 생성합니다. - 구조 편집기가 열립니다. 이것이 도식 캔버스입니다.
구조 편집기는 테이블을 추가하는 곳입니다. 각 테이블에는 이름, 필드 집합 및 선택적으로 자동 생성된 기본 키가 지정됩니다. 4D의 관례는 ID_, Name_, Date_, Amount_와 같은 유형별로 필드 이름 앞에 접두사를 붙이는 것입니다. 이는 스타일의 문제이지 필수 사항은 아닙니다. 일관성은 나중에 200개 필드를 스캔할 때 보상을 받습니다.
가장 많이 사용하게 될 필드 유형은 Text, Alpha, Integer, Longint, Real, Date, Time, Boolean, Picture, BLOB, Object 및 UUID입니다. 객체 유형은 JSON과 유사한 구조화된 데이터를 저장하며 유연한 속성을 위한 현대적인 선택입니다. UUID 필드는 분산 또는 병합된 데이터에서 자동 증가 정수와 관련된 충돌 및 번호 다시 매기기 문제를 방지하므로 새 테이블에 권장되는 기본 키 유형입니다.
우리의 선택: — 자동화, 보기 및 공유 가능한 인터페이스를 갖춘 실제 관계형 데이터베이스 위에 있는 간단한 스프레드시트 인터페이스입니다..
2단계: 테이블 및 관계 설계
4D의 스키마 디자인은 관계형 정규화 규칙을 따르며, 특히 4D에만 해당됩니다. 관계는 그래픽으로 선언되고 자동 동작을 포함합니다. 이것은 4D 데이터베이스 튜토리얼의 핵심 부분입니다.
관계를 생성하려면 구조 편집기에서 한 테이블의 기본 키 필드를 다른 테이블의 외래 키 필드로 드래그하세요. 4D에서는 관계 선을 그리고 다음을 구성할 수 있습니다.
| 관계 설정 | 제어 대상 | 실질적인 효과 |
|---|---|---|
| 자동관계 | 4D 관련 기록 자동 로딩 여부 | 양식에 편리합니다. 루프에 숨겨진 쿼리가 발생할 수 있음 |
| 일대다 대 다대일 | 링크의 방향 | 어느 쪽이 외래 키를 보유하는지 결정 |
| 관련 테이블 이름 | 코드의 접근자 이름 | 참조하는 속성이 됩니다. [송장]고객 |
| 삭제 제어 | 종속 삭제(Cascade), 제한 또는 무효화 | 고아 기록 방지 |
구체적인 예: ‘Customer.ID’에 연결된 ‘CustomerID’ 필드가 있는 ‘Invoice’ 테이블. 코드에서 [Invoice]Customer.Name은 관계를 따라갑니다. 이는 우아하면서도 위험합니다. 10,000개의 청구서가 넘는 루프에서는 액세스할 때마다 조회가 실행될 수 있기 때문입니다. 수정 방법은 의도적으로 ‘RELATE MANY’ / ‘RELATE ONE’을 사용하거나 관련 데이터를 컬렉션에 먼저 로드하는 것입니다.
조기 결정을 위한 타협: 선언된 관계가 있는 정규화된 테이블은 참조 무결성과 간단한 코드를 제공하지만 대규모 읽기에서는 성능 비용이 발생합니다. 포함된 개체 필드가 있는 비정규화된 테이블은 읽기가 더 빠르지만 무결성 검사를 자체 코드에 적용합니다. 소규모 팀을 위한 대부분의 비즈니스 애플리케이션의 경우 트랜잭션 코어를 정규화하고 보고 테이블을 비정규화합니다.
3단계: 양식 작성
양식은 4D의 사용자 인터페이스 레이어이며 세부 양식(1개 레코드), 목록 양식(다중 레코드), 입력 양식, 출력 양식 및 프로젝트 양식(테이블에 연결되지 않음) 등 여러 유형으로 제공됩니다. 양식 편집기는 속성 목록이 포함된 끌어서 놓기 캔버스입니다. 이것은 4D 데이터베이스 튜토리얼의 핵심 부분입니다.
양식 작성 시 주요 개념:
- 데이터 소스. 각 양식은 테이블이나 프로젝트 양식의 변수/식에 연결됩니다.
- 위젯. 필드, 버튼, 체크박스, 드롭다운 목록, 목록 상자 및 계층형 목록. 목록 상자는 관련 데이터를 표시하는 도구이며 단순한 표보다 훨씬 강력합니다.
- 개체 메서드. 개체를 마우스 오른쪽 버튼으로 클릭하고 메서드를 연결합니다. 이 메서드는
On Load,On Clicked,On Data Change및On Validate와 같은 이벤트에서 실행됩니다. - 양식 메서드. 양식 자체에는 ‘On Load’ 및 ‘On Unload’와 같은 양식 수준 이벤트에 대한 메서드가 있습니다.
고객 세부 정보 양식을 위한 편리한 템플릿: 고객 필드 배치, 해당 고객의 송장 선택 항목에 연결된 목록 상자 추가, 새 송장 생성 방법을 실행하는 버튼 배치. 목록 상자 선택은 쿼리 또는 관계 기반이며 삽입 후 새로 고치면 UI의 최신 상태가 유지됩니다.
경고: 4D 양식은 상태를 저장합니다. 양식에는 현재 레코드와 현재 선택 항목이 포함되어 있습니다. 양식 수준 상태와 백그라운드 프로세스를 혼합하는 것은 초보자에게 혼란스러운 버그의 가장 일반적인 원인입니다. 장기 실행 작업을 별도의 프로세스에 보관하고 결과를 다시 게시하세요.
4단계: 메소드 및 비즈니스 로직 작성
이 4D 데이터베이스 튜토리얼에서 4D 코드는 여러 버전으로 제공되는 메소드로 분류됩니다.
- 데이터베이스 메서드 — 데이터베이스 이벤트(시작, 종료, 백업 시)에 의해 트리거됩니다.
- 테이블 메서드 — 기록 이벤트(저장 시, 삭제 시)에 의해 트리거됩니다.
- 양식 및 개체 메서드 — UI 이벤트에 의해 트리거됩니다.
- 프로젝트 메소드 — 어디서든 호출할 수 있는 재사용 가능한 함수입니다.
- 트리거: 기록 작업 전후에 작업을 실행하며 감사 추적에 이상적입니다.
최신 4D 코드는 클래스와 “This” 키워드를 지원하므로 단순한 절차적 코드가 아닌 객체 지향 코드를 작성할 수 있습니다. 최소 프로젝트 방법은 다음과 같습니다.
// 프로젝트 메소드: CreateInvoice
// $1 = 고객 ID(UUID)
C_OBJECT($invoice)
$invoice:=ds.Invoice.new()
$invoice.CustomerID:=$1
$invoice.Date:=Current date
$invoice.Status:=""Draft""
$status:=$invoice.save()
ds 객체(데이터 저장소)는 ORDA(객체 관계형 데이터 액세스)와 함께 도입된 최신 ORM 스타일 액세스 계층입니다. ORDA를 사용하면 기존 선택 대신 엔터티 및 엔터티 선택으로 작업할 수 있으며 서버 왕복을 줄이는 쿼리 연결, 계산된 특성 및 클라이언트 측 엔터티 선택을 지원합니다. 새로운 개발의 경우 ORDA가 권장되는 경로입니다. “QUERY” 및 “CREATE RECORD”와 같은 기본 명령은 이전 코드베이스에서도 여전히 작동하고 나타납니다.
결정 방법: 새로운 코드와 읽기 쉽고 연결 가능한 쿼리의 이점을 얻는 모든 것에 ORDA를 사용하세요. 일부 서버 측 시나리오에서는 클래식 선택이 메모리 효율성을 높일 수 있으므로 대규모 선택에 대해 매우 긴밀한 루프가 필요한 경우 클래식 명령을 유지하세요. 가정하기보다는 측정하세요.
5단계: 값 목록, 쿼리 및 보고
값 목록은 제어된 선택 항목 집합으로 드롭다운 목록과 목록 상자를 채웁니다. 4D는 여러 유형의 목록을 지원합니다.
- 정적 목록 — 하드 코딩된 값으로 상태 및 플래그에 이상적입니다.
- 테이블 목록 — 참조 테이블에서 추출된 값으로, 고객, 제품 및 카테고리에 이상적입니다.
- 계층적 목록 — 계정과목표 또는 범주 트리에 유용한 상위/하위 값입니다.
쿼리의 경우 ORDA의 query()는 삽입 문제를 방지하고 명확하게 읽는 자리 표시자가 있는 수식 문자열을 허용합니다.
$sel:=ds.Invoice.query(""Status = :1 AND Date >= :2""; ""Open""; $startDate)
4D 보고에서는 간단한 표 형식 출력을 위해 Quick Report 편집기를 사용하고 풍부한 문서를 위해 4D Write Pro 영역을 사용합니다. Write Pro는 양식에 포함된 워드 프로세싱 개체입니다. 데이터를 템플릿으로 병합하고 PDF 또는 DOCX 형식으로 내보낼 수 있습니다. 복잡한 작업의 경우 HTML을 생성하여 웹 영역에 렌더링하는 것이 생성이 더 빠르고 스타일 지정도 더 쉬운 경우가 많습니다. 이것으로 4d 데이터베이스 튜토리얼의 이 섹션을 마칩니다.
6단계: 배포 및 유지 관리
배포 옵션은 이 4D 데이터베이스 튜토리얼에서 아키텍처를 형성합니다.
- 단일 사용자: 단일 시스템에 애플리케이션과 데이터가 있습니다. 가장 간단하고 동시성이 없습니다.
- 클라이언트-서버 — 4D 서버에는 데이터와 비즈니스 로직이 포함되어 있습니다. 4D 클라이언트가 연결됩니다. LAN 팀에 이상적입니다.
- 4D 웹 서버 — 4D는 REST 엔드포인트와 웹 페이지를 직접 제공합니다. ORDA는 데이터 저장소에 대한 자동 REST 액세스를 제공하므로 동일한 스키마에서 웹 인터페이스를 생성할 수 있습니다.
- iOS/Android용 4D — 귀하의 구조에서 생성된 모바일 클라이언트입니다.
백업이 내장되어 있습니다. 4D 서버는 자동 백업을 예약하고 특정 시점 복구를 위해 저널(로그 파일)을 유지할 수 있습니다. 저널을 활성화한 후가 아닌 라이브로 전환하기 전에 활성화하십시오. 데이터 복사본에 대한 복원 테스트: 테스트되지 않은 백업은 계획이 아니라 희망입니다.
버전 관리: 프로젝트 모드의 구조를 사용하여 ‘Project/Sources/’ 폴더를 Git에 커밋합니다. 데이터 파일과 DerivedData 폴더를 제외합니다. 이는 바이너리 시대에 비해 실질적인 개선이었으며 처음부터 채택할 가치가 있습니다.
일반적인 실수와 이를 피하는 방법
기본 키 규칙 건너뛰기. 각 테이블에는 안정적이고 고유한 기본 키가 필요합니다. UUID는 레코드가 삭제되거나 병합될 때 자동 증가하는 정수로 인해 발생하는 번호 다시 매기기 문제를 방지합니다.
양식 메소드에 비즈니스 로직 넣기. 양식 메소드는 사용자 인터페이스를 처리해야 합니다. 웹 끝점, 가져오기 및 예약된 작업에서 재사용할 수 있도록 규칙을 프로젝트 메서드 또는 클래스로 이동합니다.
저널을 무시합니다. 저널이 없으면 쓰기 중 충돌이 발생하여 데이터 파일이 일관성이 없게 될 수 있습니다. 켜십시오.
관계 반복. 큰 루프 내에서 [Table]Related.Field에 액세스하면 쿼리가 늘어납니다. ORDA를 미리 로드하거나 “RELATE MANY”를 한 번 사용하세요.
4D를 SQL처럼 처리. SQL을 사용할 수 있지만 4D 관용적 코드는 일반적으로 더 짧고 양식 및 이벤트와 더 잘 통합됩니다. 4D 데이터베이스 튜토리얼의 일부로 먼저 네이티브 언어를 배우십시오.
학습 경로 및 리소스
ORDA, Write Pro 및 버전별 변경 사항을 다루는 공식 4D 문서와 4D 개발자 블로그부터 시작해 보세요. 4D 커뮤니티 포럼이 활발히 운영되고 있으며 구체적인 질문에도 잘 답변해 드립니다. 플랫폼에 관계없이 적용되는 관계형 디자인 기본 사항의 경우 관계형 데이터베이스 및 SQL 항목에 대한 Wikipedia 문서에서 쿼리 정규화 및 의미 체계에 대한 유용한 정보를 제공합니다.
현실적인 학습 순서: 단일 테이블 연락처 관리자를 만든 다음 관련 테이블과 목록 상자를 추가하고 값 목록과 쿼리 양식을 추가한 다음 클라이언트-서버를 배포합니다. 각 단계는 당신을 압도하지 않고 새로운 개념을 소개합니다.
주요 내용
- 4D는 관계형 데이터베이스, IDE, 양식 디자이너 및 웹 서버를 단일 제품에 결합하여 맞춤형 비즈니스 애플리케이션을 신속하게 제공해야 하는 소규모 팀에 적합합니다. 이 4D 데이터베이스 튜토리얼은 효율성을 강조합니다.
- 구조 편집기에서 테이블과 관계를 정의하고, 양식 편집기에서 화면을 생성하고, 모든 4D 애플리케이션을 구성하는 네 가지 개체인 메소드와 트리거를 통해 로직을 연결합니다.
- ORDA(
ds, 엔터티, 엔터티 선택)는 최신 데이터 액세스 계층이며 새 코드에 권장되는 선택입니다. 클래식 명령은 레거시 프로젝트에서도 유효합니다. - 나중에 고통스러운 마이그레이션을 피하기 위해 UUID 기본 키를 사용하고, 저널을 활성화하고, 프로젝트 모드 구조를 처음부터 Git에 커밋합니다.
- 큰 루프 내에서 관계를 탐색하는 대신 비즈니스 로직을 양식 메서드에 두지 말고 관련 데이터를 미리 로드합니다.
출처 및 추가 자료
- 관계형 데이터베이스 — Wikipedia: 관계형 데이터베이스(RDB)는 1970년 E. F. Codd가 제안한 데이터의 관계형 모델을 기반으로 하는 데이터베이스입니다. 관계형 데이터베이스 관리 시스템(RDBMS…
자주 묻는 질문
4D는 SQL 데이터베이스인가요?
4D는 자체 전용 언어와 통합 SQL 엔진을 갖춘 관계형 데이터베이스입니다. Begin SQL / End SQL을 통해 SQL 문을 실행할 수 있지만 대부분의 4D 개발에서는 SQL이 아닌 ORDA 또는 클래식 4D 명령을 사용합니다. 기본 모델은 관계형(테이블, 키 및 관계)이므로 매일 작성하는 구문이 그렇지 않더라도 SQL 개념을 그대로 적용할 수 있습니다.
4D를 사용하려면 프로그래밍을 알아야 하나요?
양식과 비즈니스 규칙이 4D 코드에 연결되므로 기본 프로그래밍 지식이 매우 유용합니다. 즉, 4D에 내장된 양식 편집기와 마법사를 사용하면 최소한의 코드로 기능적인 데이터 입력 애플리케이션을 만들 수 있습니다. 시티즌 개발자(Citizen developers)는 일반적으로 양식과 값 목록으로 시작한 다음 사용자 지정 동작에 필요한 메서드를 배웁니다. 처음 시작하는 사람들에게는 4D 데이터베이스 튜토리얼이 도움이 될 수 있습니다.
ORDA와 클래식 4D 명령의 차이점은 무엇인가요?
ORDA는 데이터 저장소(ds), 엔터티 및 엔터티 선택을 중심으로 구축된 객체 지향 액세스 계층으로, 연결 가능한 쿼리와 클라이언트 측 선택 지원 기능을 갖추고 있습니다. ‘QUERY’, ‘CREATE RECORD’, ‘MODIFY SELECTION’과 같은 클래식 명령은 클래식 선택 항목과 현재 레코드에서 작동합니다. ORDA는 새로운 개발에 권장되는 접근 방식인 반면, 클래식 명령은 이전 코드베이스에서 일반적으로 사용됩니다.
4D 애플리케이션을 웹이나 모바일에서 실행할 수 있나요?
그렇습니다. 4D에는 내장된 웹 서버가 포함되어 있으며 ORDA는 데이터 저장소를 통해 REST 엔드포인트를 노출할 수 있으므로 브라우저 프런트 엔드가 동일한 스키마와 통신할 수 있습니다. 4D는 iOS 및 Android용 모바일 클라이언트 생성도 제공합니다. 단점은 웹 및 모바일 클라이언트가 인증과 각 요청에서 반환되는 데이터의 양에 세심한 주의를 기울여야 한다는 것입니다.
4D 데이터베이스를 안전하게 백업하려면 어떻게 해야 하나요?
4D 서버에서 저널(로그 파일)을 활성화하면 수동 복사에 의존하지 않고 특정 시점으로 복구하고 자동 백업을 예약할 수 있습니다. 긴급 상황이 발생하기 전에 항상 데이터 복사본에 대해 복원을 테스트하십시오. 서로 다른 속도로 변경되므로 구조를 데이터 파일과 별도로 버전 관리 하에 유지하세요.
4D가 소규모 비즈니스 앱에 적합한가요?
4D는 양식, 보고서 및 관계형 스키마를 사용하여 맞춤형 비즈니스 애플리케이션을 만드는 소규모 팀이라는 정확히 이러한 시나리오를 위해 설계되었습니다. 핵심 구조를 변경하지 않고도 클라이언트-서버 배포 및 웹 액세스로 확장됩니다. 주요 고려 사항은 라이센스 비용과 주류 웹 스택에 비해 인재 풀이 작기 때문에 장기적인 유지 관리 및 구축 속도를 고려해야 합니다.
자주 묻는 질문
4D는 SQL 데이터베이스인가요?
4D는 자체 모국어와 통합 SQL 엔진을 갖춘 관계형 데이터베이스입니다. Begin SQL / End SQL을 통해 SQL 문을 실행할 수 있지만 대부분의 4D 개발에서는 SQL이 아닌 ORDA 또는 클래식 4D 명령을 사용합니다. 기본 모델은 관계형(테이블, 키 및 관계)이므로 매일 작성하는 구문이 그렇지 않더라도 SQL 개념은 이전됩니다.
4D를 사용하려면 프로그래밍을 알아야 하나요?
양식과 비즈니스 규칙이 4D 코드에 연결되므로 기본 프로그래밍 지식이 매우 유용합니다. 즉, 4D에 내장된 양식 편집기와 마법사를 사용하면 최소한의 코드로 기능적인 데이터 입력 애플리케이션을 만들 수 있습니다. 일반 개발자는 일반적으로 양식과 값 목록으로 시작한 다음 사용자 지정 동작에 필요한 방법을 배웁니다. 처음 시작하는 사람들에게는 4D 데이터베이스 튜토리얼이 도움이 될 수 있습니다.
ORDA와 클래식 4D 명령의 차이점은 무엇입니까?
ORDA는 데이터 저장소(ds), 엔터티 및 엔터티 선택을 중심으로 구축된 객체 지향 액세스 계층으로, 연결 가능한 쿼리와 클라이언트 측 선택 지원을 제공합니다. QUERY, CREATE RECORD 및 MODIFY SELECTION과 같은 클래식 명령은 클래식 선택 항목과 현재 레코드에서 작동합니다. ORDA는 새로운 개발에 권장되는 접근 방식인 반면, 기존 명령은 이전 코드베이스에서 일반적으로 사용됩니다.
4D 애플리케이션을 웹이나 모바일에서 실행할 수 있나요?
예. 4D에는 내장된 웹 서버가 포함되어 있으며 ORDA는 데이터 저장소를 통해 REST 엔드포인트를 노출할 수 있으므로 브라우저 프런트 엔드가 동일한 스키마와 통신할 수 있습니다. 4D는 iOS 및 Android용 모바일 클라이언트 생성도 제공합니다. 단점은 웹 및 모바일 클라이언트가 인증과 각 요청에서 반환되는 데이터의 양에 세심한 주의를 기울여야 한다는 것입니다.
4D 데이터베이스를 안전하게 백업하려면 어떻게 해야 합니까?
4D 서버에서 저널(로그 파일)을 활성화하면 수동 복사에 의존하지 않고 특정 시점으로 복구하고 자동 백업을 예약할 수 있습니다. 긴급 상황이 발생하기 전에 항상 데이터 복사본에 대해 복원을 테스트하십시오. 서로 다른 속도로 변경되므로 구조를 데이터 파일과 별도로 버전 관리 하에 유지하세요.
4D가 소규모 비즈니스 앱에 적합합니까?
4D는 양식, 보고서 및 관계형 스키마를 사용하여 맞춤형 비즈니스 애플리케이션을 만드는 소규모 팀이라는 정확히 이러한 시나리오를 위해 설계되었습니다. 핵심 구조를 변경하지 않고도 클라이언트-서버 배포 및 웹 액세스로 확장됩니다. 주요 고려 사항은 라이센스 비용과 주류 웹 스택에 비해 인재 풀이 작기 때문에 장기적인 유지 관리 및 구축 속도를 고려해야 합니다.
회사 계정으로 Power Apps를 무료로 사용해 보세요
Microsoft 365, Dataverse 및 Power Automate에 연결된 엔터프라이즈급 로우 코드 앱 개발.