공부한 것 꼭꼭 씹어먹기

[앱시트 AppSheet] 휴가 관리 어플 - 1. 데이터 다듬기 본문

노코딩으로 문제 해결하기/AppSheet - 앱시트

[앱시트 AppSheet] 휴가 관리 어플 - 1. 데이터 다듬기

젤라솜 2022. 8. 10. 14:02
반응형

 

첫걸음도 데이터부터

 

이제 본격적으로 앱시트 홈페이지에서 앱을 만들어 보겠습니다.

제일 먼저 할 일은 구글 스프레드 시트를 앱시트 내의 데이터베이스와 연동시키는 것입니다.

왼쪽 Data 메뉴를 클릭하면 Tables 탭이 보입니다.

leave 테이블에는 내용은 없고 헤더만 있어서 그런지 자동으로 테이블 생성이 안되어 있네요.

Add Table "leave"를 클릭해서 테이블로 만들어줍니다.

 

leave테이블은-수동으로-만들어줍니다
leave테이블은-수동으로-만들어줍니다

 

 

이제 Columns 탭에 가서 leave 테이블을 클릭해 봅니다.

leave테이블이-만들어졌습니다
leave테이블이-만들어졌습니다

 

스프레드 시트에 가로로 쭉 입력한 헤더가 세로로 바뀌어 들어가 있습니다.

우리가 입력하지 않은 _RowNumber가 자동으로 생겼는데요. 이것은 한 개의 연차 즉 한 줄의 데이터의 일련번호 입니다. 데이터를 입력할 때마다 자동으로 1씩 증가합니다.

id는 key입니다. key는 한 줄의 데이터가 가지고 있는 고유한 값입니다. 모든 테이블에는 반드시 key가 하나씩은 있어야 합니다.

INITIAL VALUE를 보면 자동으로 UNIQUEID()라는 함수가 들어가 있는데요. 이 함수 덕분에 zbzjr6S7 이런식으로 랜덤하게 유니크한 문자열이 생성됩니다.

 

 

 

 

 

타입 수정하기

 

이제 TYPE부터 하나씩 수정해 보겠습니다.

일단 신청일, 휴가 시작일, 휴가 종료일, 상태 변경일 등 일자가 들어가야 하는 컬럼은 Date 타입으로 바꿔주고요.

사유 컬럼은 아주 구구절절한 사유를 쓸 수도 있으니 LongText라는 타입으로 변경합니다.

휴가 종류와 진행 상태는 Enum 타입으로 바꿔줍니다.

휴가 종류 컬럼에 들어갈 값은 '연차, 병가, 출산 휴가, 생리 휴가'이고 진행 상태 컬럼에는 '승인대기, 승인, 반려'입니다. 

Enum은 몇 가지 정해진 값들 중 하나가 들어갈때 쓰이는 타입입니다.

마지막으로 신청자는 Ref 타입을 선택하겠습니다.

Ref는 이 컬럼의 데이터가 다른 테이블의 레퍼런스, 즉 참조값으로 삼을 데이터일때 선택합니다.

여기서는 신청자 컬럼에 신청한 사람의 이메일을 넣을 건데요. 이 앱을 사용하는 사용자가 휴가 신청한 내용을 보다가 신청한 사람의 이메일을 클릭해서 그 사람의 member 정보를 보고 싶을 수 있겠죠. 그럴때 member 정보를 가리킬 수 있는 참조값에 Ref 타입을 설정하면 됩니다. 즉, 한 개의 연차 정보를 통해 신청자의 사원정보도 함께 조회할 수 있는 것입니다.

 

leave테이블의-타입을-하나씩-수정
leave테이블의-타입을-하나씩-수정

id에 선택되어 있던 LABEL?을 해제하고 신청자에 선택합니다.

공식 문서를 보면 LABEL은 이 컬럼이 이 테이블의 행을 대표하거나 참조값일때 선택 하라고 되어있습니다. 

 

FORMULA : 사용자의 입력값 대신 엑셀 수식을 사용하고 싶을때 넣습니다. 신청자는 본인만 가능하니까 USEREMAIL() 함수를 넣어줍니다.

SHOW? : 화면에 보여주는지 여부

EDITABLE? : 편집 가능 여부

REQUIRE? : 필수로 입력해야 하는 값인지 여부 

 

INITIAL VALUE는 디폴트값을 말합니다.

데이터를 입력할때 아무 값을 넣지 않아도 기본적으로 들어가는 값입니다.

신청자는 UESREMAIL() 함수를 통해 본인의 이메일이 들어가게 하고 Date 타입의 컬럼들은 TODAY() 함수를 통해 오늘 날짜가 기본적으로 들어가게 했습니다. 또한 진행 상태는 '승인 대기'값을 디폴트로 합니다.

 

  

 

신청자 컬럼에서 타입 Ref를 선택할때 팝업창이 하나 나왔었죠? 

Type Details > Source table에서 member를 선택하고 input mode는 Auto로 하겠습니다.

신청자-컬럼의-source-table은-member입니다
신청자-컬럼의-source-table은-member입니다

 

 

 

Enum 타입을 선택했던 휴가 종류 컬럼 앞 쪽에 있는 연필 모양의 아이콘을 클릭합니다.

Type Details > Values에 원하는 휴가 종류를 추가해주고 Base type은 Text, Input mode는 Auto로 선택합니다.

휴가종류-컬럼에-enum-타입-추가하기
휴가종류-컬럼에-enum-타입-추가하기

 

마찬가지로 진행 상태 컬럼의 Values에도 승인대기, 승인, 반려 등을 추가하고 Base type, Input mode를 설정해 줍니다.

 

 

이제 leave 테이블의 기본적인 설정이 끝났네요! 

member 테이블도 설정을 해줍니다.

 

member테이블도-설정을-해야겠죠?
member테이블도-설정을-해야겠죠?

 

앱시트가 알아서 어느 정도 타입을 찾아줍니다. 이메일은 Email 타입, 연락처는 Phone 타입으로 설정이 잘 되어있네요.

나머지 타입은 직접 설정해줍니다.

권한은 Enum 타입을 설정하고 values에 '직원'과 '관리자'를 추가했습니다.

직속 팀장 컬럼은 직속 팀장의 member 정보와 연동이 되어야 하니까 Ref 타입을 선택했고요,

이메일 보다는 이름이 직원 정보를 대표하기에 알맞은 것 같아서 이름 컬럼을 LABEL로 선택했습니다.

총 휴가 컬럼의 initial value는 관리자일 경우 17일을 주고 관리자가 아닐 경우 15일을 주기 위해 아래와 같은 수식을 입력했습니다.

IF([권한]="관리자", 17, 15)

남은 휴가 컬럼에도 같은 함수를 입력해줍니다. 그리고 당연히 사용한 휴가 컬럼의 디폴트 값은 0이겠죠!

 

그런데, 제일 아래에 Related leaves라는 컬럼이 보입니다. 

연필 아이콘을 클릭해서 보면 제일 상단에 member : Related leaves (virtual) 이라고 써있습니다. 

스프레드 시트에 존재하지 않는 가상의 컬럼이 자동으로 생겼습니다.

app formula에 입력되어 있는 REF_ROWS("leave", "신청자")라는 수식은 leave 테이블의 신청자 컬럼을 참조하겠다는 말입니다.

아까 leave 테이블의 신청자 컬럼의 타입을 Ref로 선택하면서 source table을 member로 선택했기 때문에 생성되었습니다.

Related leaves 컬럼에는 이 직원이 신청한 휴가 정보가 전부 보여지게 됩니다.

 

 

이렇게 데이터 테이블을 만들어 봤습니다.

앞으로 화면과 기능을 구성하면서 조금씩 더 수정할 부분이 있을겁니다.

 

다음 포스팅은 화면단 설정을 해보겠습니다 🤟

 

반응형
Comments