반응형

안녕하세요.

이번 시간에는 다양한 앱에서 쓰이는 Formula 예시들을 가져와 보았습니다. 입문 강의에서 다뤘던 내용보다는 조금 더 구체적이고 조금 더 실용적인 내용입니다. 입문 강의 내용은 아래 링크를 참고해 주시기 바랍니다.

 

[앱시트 입문] 07. 앱시트 앱 개발 Key Points - 외부 배포용 앱, 에러 핸들링, Formula 예시

안녕하세요. 앱시트 입문 개발자 분들을 위해 앱시트 앱 개발 Key Points를 정리해 보았습니다. 이 글은 앱시트를 스프레드시트와 연동해서 사용하시는 분들, 아직 앱시트의 에러 

appsheet.tistory.com

Formula 작성도 하다보면 생각보다 반복되는 내용이 많아서 그러한 수식들을 모아놓은 '나만의 라이브러리'를 작성하시는 것도 좋은 방법입니다. 공유하고 싶은 나만의 꿀팁이나, Formula 작성에 어려움을 겪고 계신 분들은 댓글로 남겨주시면 많은 사람들에게 도움이 될 것 같습니다.

그럼 시작해 볼까요?

 

 

● 캘린더 색깔 지정하기

먼저 가볍게 시작해 보겠습니다. 앱시트에서 캘린더를 쓰는 앱은 꽤 많습니다. 그런데 개발을 진행하다 보면 캘린더 색이 원하는대로 표시되지 않아 불편할 때가 있습니다. 예를 들어 [미완료]인 작업은 빨간색으로, [완료]된 작업은 초록 색으로 표시하고 싶은 경우입니다. 그럴 때는 새로운 가상 컬럼에 이렇게 Formula를 작성해 주시면 됩니다.

SWITCH(
    [상태],
    "미완료", "Red",
    "Green"
)

이후 캘린더 뷰에서 아래와 같이 Category를 설정해주면,

아래 이미지처럼 원하는대로 일정의 색을 바꿀 수 있습니다.

테스트: 미완료, 테스트2: 완료

 

 

● 첨부파일 템플릿 활용법

입력된 데이터를 바탕으로 견적서나 보고서 등을 자동으로 생성하는 앱의 경우 첨부파일 템플릿을 작성해 주어야 합니다. 이 때 변수들을 이중꺾음괄호 안에 넣게 되는데요, 이 때 변수 뿐만이 아니라 함수도 넣을 수 있습니다.

또한, 문서 템플릿에서 리스트를 가져오는 방법으로 Start-End 메소드를 사용할 수 있습니다. 이를 활용하면 템플릿 상에서 활성화 상태의 주문 리스트 정보를 가져오기 위해 아래와 같은 표를 작성할 수 있습니다.

상품 가격 수량 총 금액
<<Start: SELECT(주문[주문ID], [상태]="활성")>><<[상품ID].[상품 이름]>> <<[상품ID].[가격]>> 원 <<[수량]>> 개 <<[상품 ID].[가격] * [수량]>> 원<<End>>

복잡해 보일 수 있지만, 하나씩 뜯어서 보면 어렵지 않습니다.

  • Start-End 메소드로 리스트를 불러온다.
  • SELECT() 함수로 불러올 리스트를 결정한다.
  • 꺾음 괄호 안에 불러오고 싶은 <<변수>>를 지정한다.

아래는 이 테이블을 통해 만들어진 문서의 예시입니다.

상품 가격 수량 총 금액
앱시트 스타터 7,000 원 10 개 70,000 원
앱시트 코어 14,000 원 10 개 140,000 원

 

 

● SHOW? 의 조건 정하기

저는 SHOW? 의 조건으로 두 가지 정도의 방법을 사용합니다.

  • 첫 번째는 권한에 의한 설정입니다.

보통 사용자 Role이 Admin인 경우에 이렇게 Formula를 작성합니다.

USERROLE() = ADMIN

 

  • 두 번째는 사용자 입력값에 의한 설정입니다.

예를 들어, 아래와 같은 방법으로 Form 뷰에서 사용자가 [배송 방법]을 "배달"로 선택한 경우에만 [주소 입력] 이라는 컬럼이 보이도록 설정할 수 있습니다.

[배송 방법] = 배달

"수학", "과학", "영어" 세 개의 선택지를 가진 [좋아하는 과목] 이라는 이름의 EnumList 값에 따라 [수학 점수] 컬럼을 표시하기 위해 IN() 함수를 활용하면 아래와 같은 응용도 가능합니다.

IN(수학, [좋아하는 과목])

 

 

● 특정 뷰로 이동하기

기본적으로 앱시트에서 데이터를 볼 때, 그 데이터를 클릭하면 해당 데이터에 대한 디테일 뷰로 이동하게 됩니다. 그러나 지금 설명드리는 방법을 통해 해당 데이터를 클릭했을 때 일어날 일을 지정할 수 있습니다.

우선 아래와 같은 테이블을 만들어 줍니다.

링크ID 이름 이동할 뷰 설명
Link-1 1번 메뉴 Menu1 첫번째 메뉴로 이동합니다.
Link-2 2번 메뉴 Menu2 두번째 메뉴로 이동합니다.
Link-3 3번 메뉴 Menu3 세번째 메뉴로 이동합니다.
Link-4 4번 메뉴 Menu4 네번째 메뉴로 이동합니다.

이 테이블을 앱시트 뷰로 만들어주면 4 개의 항목이 만들어질 것입니다(보통은 카드 뷰나 덱 뷰 선호). 그 다음으로는 각 항목을 선택했을 때 실행할 액션을 아래의 Formula 와 함께 작성해 줍니다. 예를 들어, 저는 아래와 같이 작성하였습니다.

LINKTOVIEW([이동할 뷰])

이 액션을 실행하게 되면 [이동할 뷰] 컬럼에 적힌 이름을 가진 뷰로 이동하게 됩니다. 그 다음으로는 아래와 같이 뷰 선택 > Behavior > Event Actions 에서 데이터를 클릭했을 때(Row Selected) 실행할 액션을 선택합니다.

참고로 카드 뷰의 경우 Layout 란에서 지정해 주어야 합니다.

이렇게 하면 데이터를 클릭했을 때 원하는 메뉴로 이동할 수 있게 설정할 수 있습니다. 다른 Formula를 써서 얼마든지 응용 가능한지라 꽤 자주 쓰는 테크닉입니다.

 

 

● 통계를 위한 값 만들기

앱을 만들다 보면 통계 대시보드를 만들어야 할 때가 꽤 있습니다. 막상 통계 대시보드를 만들어보려고 하면 생각보다 쉽지 않은데요, 원리는 알고 보면 간단합니다. 결국 통계는 2차원 그래프고, 2차원 그래프는 x축과 y축을 뭘로 설정할지만 정하면 되는 거니까요.

간단하게 알아보겠습니다. 배송을 위한 앱에서 "승인 필요", "승인됨", "거부됨", "배송 완료" 의 4개의 값을 갖는 [배송 상태] 라는 Enum 타입의 컬럼에서 각 타입에 대해 최근 7일 간 주문이 몇 개씩 있는지 확인하기 위한 통계입니다. 이 경우 최근 7일 간의 데이터를 뽑아내기 위해 아래와 같은 Row filter condition을 갖는 데이터 슬라이스를 만들어 줍니다.

HOUR(TODAY() - [DateTime])/24  <= 7

그 다음으로는 차트 뷰를 만든 다음 만들어둔 데이터 슬라이스를 선택 후 View Options 를 아래와 같이 설정해주면 됩니다.

여기서 Group aggregate가 의미하는 것이 y축, Chart columns가 의미하는 것이 x축이 됩니다. 즉, 7일간 이루어진 주문 데이터(Delivery Status)에서 각 배송 상태에 대해서 항목의 갯수를 세어(COUNT) 표시해달라는 의미가 되는거죠. 실제 그래프는 아래와 같이 완성됩니다.

최근 7일간 이루어진 배송 건들

이렇게 다양한 앱에서 쓰이는 Formula 예시들을 가져와 보았는데요, 생각보다 Formula가 여기저기서 많이 쓰이고 있다는 것을 알 수가 있습니다. 조금 더 복잡한 예시를 가져와 볼까 생각도 해봤는데 설명만 복잡해지고 결국 기본 함수들을 잘 쓸 수 있다면 다 하실 수 있을 것 같아서 굳이 가져오지는 않았습니다. 그럼 글은 여기서 마무리 하고 다시 한 번 말씀드리자면, 공유하고 싶은 나만의 꿀팁이나, Formula 작성에 어려움을 겪고 계신 분들은 댓글로 남겨주시면 감사할 것 같습니다. 같이 열심히 공부해 보아요~

반응형
반응형

안녕하세요.

앱시트 입문 개발자 분들을 위해 앱시트 앱 개발 Key Points를 정리해 보았습니다.

이 글은 앱시트를 스프레드시트와 연동해서 사용하시는 분들, 아직 앱시트의 에러 및 Formula에 익숙하지 않으신 분들에게 도움이 될 것입니다.

목차는 아래와 같습니다.

  1. 외부 배포용 앱에 관하여
  2. 앱시트에서의 에러 및 트러블슈팅
  3. 앱시트 FORMULA 잘 쓰는 법과 활용 예시

 


외부 배포용 앱에 관하여

앱시트는 사내 비즈니스 로직을 자동화하는 것에 최적화 되어 있습니다. 따라서 앱시트로 외부 배포용 앱을 개발하기 위해서는 추가로 고려해야 할 사항이 있습니다.

현재 앱시트는 앱 별로 가격을 매기는 것이 아닌, 사용자 별로 가격을 매기는 라이선스 정책을 채택하고 있습니다. 이는 사용자 수를 예측하기 어려운 외부 배포용 앱에 적용하기 어려운 가격 정책입니다. AppSheet Enterprise 버전의 경우 로그인이 필요하지 않은 외부 사용자를 위한 라이선스를 보다 저렴한 가격에 따로 구매할 수 있지만, 그보다 낮은 버전의 경우 일반 사용자와 동일한 라이선스를 구매해야 합니다.

다만, 아래의 조건만 만족한다면 Publisher Pro(앱 당 월별 $50) 요금제를 사용하는 것도 고려해볼만 합니다.

  • 특정 인원에 대한 앱 액세스 제한이 필요하지 않습니다.
  • 앱이 기밀 데이터를 포함하지 않습니다.
  • 사용자에 따라 앱의 동작을 다르게 할 필요가 없습니다.
 

How to choose a subscription plan - AppSheet Help

The following sections describe what you can do with a free plan and how to choose a subscription plan when you are ready to deploy your apps for use by other users.  What can I do with a free plan? App development and testing is always free on AppSheet.

support.google.com


또한 앱의 사용자 및 데이터의 양이 너무 많은 경우가 있습니다. 외부 앱 배포 시 특히 이런 경우가 많이 발생할 수 있는데요. 앱에 연결된 테이블 수가 너무 많아지거나(30개 이상), 앱의 데이터(이미지나 문서 등 외부 파일 제외)가 5MB 또는 10MB를 초과하거나, 데이터가 쌓이다가 엑셀이나 스프레드시트가 허용하는 최대 셀 개수를 초과하는 경우 앱의 유지가 어려울 수 있습니다. 이런 경우 AppSheet Enterprise 요금제를 이용하여 외부 데이터 소스를 연결하거나 데이터 파티셔닝 등의 기능을 활용하는 것을 권장드립니다.

 

 

 앱시트에서의 에러 및 트러블슈팅

앱시트에서는 다양한 에러가 발생할 수 있습니다. 앱시트 앱에서 에러가 발생하는 경우 앱이 더이상 동작하지 않기 때문에 꼭 해결해 주어야 합니다. 에러가 발생하면 아래와 같은 경고 메세지가 표시되는데요, More info 를 눌러 에러 리스트에 등록된 관련 세부정보를 확인하거나, Go to the problem 을 눌러 어디에서 에러가 발생했는지 확인해볼 수 있습니다.

에러 메세지 표시 예시

 

AppSheet : mobile apps from spreadsheets : Errors and Warnings

ERROR WORKFLOW RULE ATTACHMENT INVALID PAGE DIMENSIONS unfold_more Meaning The attachment file has an invalid width or height. Likely Cause The attachment page Height or width is too small Resolution Steps Increase the page height or width, or use a non-cu

www.appsheet.com

 

하지만 이 정보만으로 에러를 해결하지 못하는 경우도 있습니다. 그런 경우 직접 문제의 원인을 찾아서 필요한 부분을 고쳐줘야 합니다. 저는 아래와 같은 단계로 에러를 해결합니다.

  1. 에러 메세지를 참고하여 에러가 발생한 위치로 이동합니다.
  2. 발생한 에러가 어떤 테이블에 대한 에러인지 확인합니다.
  3. 해당 테이블에 대한 변경 사항 로그를 확인하여 에러의 원인을 찾아냅니다.
  4. 에러의 원인이 된 부분을 수정합니다(주로 데이터 연결이 잘못된 경우가 많습니다).
  5. 필요한 경우 이전 버전으로 앱을 롤백합니다.

 

이렇게 해도 원인을 찾아내지 못한 경우 AppSheet Community 에 영어로 질문을 올리거나 앱시트 고객센터에서 관련 문서들을 찾아보아야 합니다. 그래도 원인을 알 수 없다면 SBC Technology 와 같은 앱시트 파트너사에 문의하는 방법도 있습니다. 다만 이 방법은 Google Workspace 혹은 AppSheet를 SBC Technology를 통해 사용하고 있을 때만 가능하다고 합니다.

 

AppSheet

Find answers, ask questions, and connect with other creators.

www.googlecloudcommunity.com

 

 

AppSheet Help

 

support.google.com

 

 

● 앱시트 FORMULA 잘 쓰는 법과 활용 예시

FORMULA 를 잘 사용하기 위해서는 결국 각 함수의 기능과 사용법을 잘 알고 있어야 합니다. 다행히 앱시트 고객센터에는 각 함수의 기능과 사용법이 친절한 예시와 함께 설명되어 있습니다. 특히 AND, OR, NOT, IF, TEXT, NOW, UNIQUEID, USEREMAIL, USERROLE 등의 기본 함수들과, ISBLANK, LINKTOVIEW, CONCATENATE, REF_ROWS, COUNT, SELECT 등 자주 쓰이는 함수들에 대해서는 미리 알아두는 것이 좋습니다.

아래는 다양한 활용 예시입니다.

  1. 화면에 표시되는 문자열 형식 변경

CONCATENATE([고객명], ” 님”) 또는 [고객명]&” 님”


→ 설명: 고객명 뒤에 “님” 이라는 글자를 붙여 앱에 표시하고 싶을 때 사용.

→ 결과 예시: “앱시트 님”

TEXT(NOW(), “YYMMDD”)


→ 설명: 날짜 및 시간에 대한 특정 형식 부여.

→ 결과 예시: “221005”

  2. 다른 테이블의 값 가져오기

SELECT(영어[알파벳], TRUE)


→ 설명: 영어 테이블의 알파벳 컬럼 중 조건이 TRUE인 값들만 선택

→ 결과 예시: LIST(“a”, “b”, …, “z”)

SELECT(영어[알파벳], [_RowNumber] < 4)


→ 설명: 영어 테이블의 알파벳 컬럼 중 행 번호가 4 미만인 값들만 선택(행 번호는 2부터 시작)

→ 결과 예시: LIST(“a”, “b”)

  3. 기타

OR(USERROLE() = “ADMIN”, [관리자] = USEREMAIL())


→ 설명: Security filter 등에서 사용자가 관리자 Role을 갖고 있거나, 관리자 컬럼에 기록된 경우 Yes 를 반환하여 해당 테이블에 대한 권한을 부여하도록 설정

→ 결과 예시: Yes

COUNT(REF_ROWS(“할일”, “담당자”))


→ 설명: 차트 뷰 등에서 할 일 테이블에서 담당자 별로 관련 데이터가 몇 개 있는지 확인

→ 결과 예시: 2

그 외에도 이러한 함수들을 응용하여 정말 많은 기능을 구현할 수 있습니다. 더 많은 함수들을 조합한 복잡한 형태의 예시도 있지만, 설명이 너무 길어질 것 같아 생략하였습니다.

여기까지 앱시트 입문 개발자 분들을 위한 앱시트 앱 개발 Key Points였습니다.

앱시트 입문 가이드는 이정도로 내용을 마무리하려고 합니다. 다음 글부터는 앱시트 중급 개발자가 알아야 할 내용을 가지고 돌아오도록 하겠습니다. 중급 가이드에서는 이번 시간과 같이 앱 개발 Key Points, 그 중에서도 추가적인 FORMULA 예시 등의 주제를 위주로 다루어볼 생각입니다. 고생 많으셨습니다! 같이 열심히 공부해 보아요~

반응형

+ Recent posts