출퇴근 시스템- 테이블 구축

반응형
SMALL

1. 개요

이번 포스팅에서는 Power Apps Dataverse를 활용하여 두 개의 기본 테이블을 설계하고, 이를 기반으로 간단한 ERD(Entity Relationship Diagram)를 구성하는 과정을 다룬다.

Power Apps는 로우코드(Low-code) 플랫폼으로, 개발자가 아니더라도 데이터 중심의 앱을 손쉽게 만들 수 있게 한다. 그중 Dataverse는 앱의 기반이 되는 데이터 저장소이자 스키마 관리 시스템으로, 관계형 데이터베이스와 유사한 구조를 제공한다.

실제 기업의 근태 관리 시스템은 연차, 병가, 휴가, 초과근무, 지각, 외근 등 다양한 복잡한 규칙을 포함한다. 그러나 본 예제에서는 플랫폼 구조 이해에 초점을 맞추어 단순화된 직원(Employee), 출퇴근 기록(Attendance) 두 테이블만 설계한다.

파워앱스에 들어가 테이블 탭에 들어가 새 테이블을 눌러준다.

2. ERD(Entity Relationship Diagram) 개요

두 테이블 간의 관계는 다음과 같다.

  • Employee (직원 정보)
    직원 개개인의 기본 프로필을 저장하는 테이블이다. 사번, 이름, 비밀번호, 부서 등의 속성을 포함한다.
  • Attendance (출퇴근 기록)
    직원의 출퇴근 시간과 유형(출근/퇴근)을 기록하는 테이블이다. Employee 테이블과 1:N 관계를 갖는다. 즉, 한 명의 직원은 여러 개의 출퇴근 기록을 가질 수 있다.

따라서 ERD 상에서는 Employee(1) — Attendance(N) 구조가 된다.

 

<Employee>

표시 이름 스키마 이름 논리적 이름 열 유형 열 설명 열 형식
Employee_id cre4e_Employee_id cre4e_employee_id 기본키 기본 id 자동 번호, 최소 자릿수: 1, 시드값: 1
Employee_name cre4e_Employee_name cre4e_employee_name 일반 열 직원 이름 한 줄 텍스트. 
최대 문자수: 100
Employee_pwd cre4e_Employee_pwd cre4e_employee_pwd 일반 열 직원 비밀번호 한 줄 텍스트. 
최대 문자수: 100
Employee_department cre4e_Employee_department cre4e_employee_department 일반 열 직원의 속해있는 부서 한 줄 텍스트. 
최대 문자수: 100
Employee_number cre4e_Employee_number cre4e_employee_number 일반 열 직원의 사번(로그인 할때 id) 한 줄 텍스트. 
최대 문자수: 100

<Attendace>

표시 이름 스키마 이름 논리적 이름 열 유형 열 설명 열 형식
Attendance_id cre4e_Attendance_id cre4e_attendance_id 기본키 기본 id 자동 번호, 최소 자릿수: 1, 시드값: 1
Attendance_checktime cre4e_Attendance_checktime cre4e_attendance_checktime 일반 열 출퇴근 시간 날짜 및 시간
 Attendance_type cre4e_attendance_type cre4e_attendance_type 일반 열 출근 유형, 퇴근 유형  한 줄 텍스트. 
최대 문자수: 100
Employee cre4e_Employee cre4e_employee 관계키(Employee(1): Attendace(N) 직원과 출퇴근 기록의 대한 관계 키 조회 보기

 

본 글에서의 예시는 작성 당시 Dataverse의 명명 규칙을 충분히 숙지하지 못한 상태에서 구성하였으므로, 일부 스키마 이름/논리적 이름/표시 이름이 권장 방식과 다를 수 있다. 실제 환경에 배포하거나 팀 표준을 마련할 때에는 아래 권장 규칙을 일관되게 적용한다.

  • 스키마 이름(Schema Name)
    • 원칙: 퍼블리셔 접두사(prefix) + 설명적 이름 패턴을 사용한다.
    • 형식 권장: 접두사 뒤에는 PascalCase를 사용하여 가독성을 높인다.
    • 예시: cre4e_Employee, cre4e_EmployeeNumber, cre4e_AttendanceCheckTime
    • 주의: 스키마 이름은 생성 후 변경 불가하므로 초기 설계 단계에서 신중히 확정한다.
    논리적 이름(Logical Name)
    • 역할: 시스템 내부 참조와 코드(플러그인, Power Automate, 웹 API 등)에서 사용한다.
    • 형식 권장: 접두사 뒤에 소문자 + 언더스코어(snake_case)를 사용한다.
    • 예시: cre4e_employee, cre4e_employee_number, cre4e_attendance_checktime
    표시 이름(Display Name)
    • 역할: 앱 화면과 관리 포털에 노출되는 사용자 친화적 라벨로 사용한다.
    • 원칙: 비개발자도 의미를 즉시 이해할 수 있도록 명확하고 직관적으로 작성한다.
    • 예시: 직원, 사번, 출퇴근 시간

보다 정확한 정의와 최신 지침은 아래 Microsoft 공식 문서를 참조한다. 실제 적용 전 반드시 확인한다.

 

https://learn.microsoft.com/ko-kr/power-apps/maker/data-platform/

 

Dataverse 설명서 - Power Apps

Dataverse 설명서의 주요 영역으로 이동할 수 있습니다.

learn.microsoft.com

https://learn.microsoft.com/en-us/power-apps/developer/data-platform/

 

Dataverse developer documentation - Power Apps

Provides access to highlighted areas within the Dataverse developer documentation

learn.microsoft.com

3. 확장 아이디어

실제 운영 환경에서는 다음과 같은 확장을 고려할 수 있다.

  • Attendance 테이블 확장
    • 지각 여부(Boolean: IsLate)를 추가한다.
    • 근무 유형(Choices: 정규, 야간, 재택 등)을 정의한다.
    • 출근 기록과 퇴근 기록을 계산하여 근무 시간을 자동 산출한다.
  • 추가 테이블 설계
    • Leave(휴가 기록) 테이블을 설계한다.
    • Overtime(초과근무 기록) 테이블을 설계한다.
    • Department(부서 정보) 테이블을 추가하여 Employee와 1:N 관계를 갖게 한다.
반응형
LIST