Blog Archive

2023-09-29

Airtable 팁: 2024년 공휴일을 반영한 영업일 기준 전날, 다음날 계산식

에어테이블(Airtable)은 관계형 데이터베이스를 기반으로 매우 쉽고, 매우 강력한 노코드 앱 개발 환경을 제공합니다. 스프레드시트와 유사하지만, 훨씬 다재다능하며, 워크플로우(workflow), 자동화, 데이터 시각화나 비즈니스 인텔리전스(BI)를 쉽게 구축할 수 있으며, 데스크톱 또는 모바일 앱 또는 웹을 쉽게 만들 수도 있습니다. 앞으로 Airtable과 관련한 다양한 이야기와 팁을 하나씩 정리해보겠습니다.

두 날짜의 차이 판단하여 이름 붙이기

Airtable에서 {시작일}이라는 필드가 있다고 했을 때, 그 시작일이 현재를 기준으로 다음날인지, 전날인지, 아니면 이틀 후인지 등은 DATETIME_DIFF 함수를 통해 쉽게 파악할 수 있습니다.

SWITCH(     
	DATETIME_DIFF({시작일}, NOW(), 'days'), 
	2, '모레',
	1, '내일',
	0, '오늘',
	-1, '어제',
	-2, '그제' )
이런 식입니다. 그런데, 이 수식에는 몇 가지 문제가 있습니다. 

첫째, 시간대가 반영되지 않았습니다. 우리 나라는 표준 시간(UTC, Universal Time Coordinated)보다 9시간 빠르므로, 위와 같이 하면, 9시간의 오차가 계속 나게 됩니다. 즉, 필드 값이 어제 오후 3시가 넘어가면, 위의 수식에서는 그냥 '오늘'이라는 값을 리턴해버립니다.

둘째, 영업일(working days, business days)이 반영되지 않았습니다. 실제 Airtable을 비즈니스 현장에서 쓸 때에는 영업일을 기준으로 날짜 계산이 필요한 경우가 많습니다. 예를 들어, 예정 일정 하루 전에 반드시 (자동 또는 수동으로) 이메일/문자 알림을 보내거나, 고객에게 전화를 걸어야 하는 업무가 있다고 가정해보겠습니다. 다음 주 월요일이 교육 시작일인데, 오늘은 전주 금요일입니다. 그러면 오늘은 그냥 날짜 상으로는 3일 전이지만, 영업일 기준으로는 하루 전입니다. 그래서 오늘 반드시 고객에게 전화를 걸어야 합니다. 

2024년 9월 달력. 영업일 기준 다음날과 캘린더 기준 내일이 완전히 다른 경우
2024년 9월 달력. 영업일 기준 다음날과 캘린더 기준 내일이 완전히 다른 경우


    
영업일을 반영하려면, 주말인 토요일, 일요일을 일단 계산에서 제외해야 합니다. 그래도 문제가 있습니다. 주말은 아니지만, 공휴일, 소위 말하는 빨간 날을 제외해야 제대로 된 영업일 기준의 날짜 계산을 해줍니다. 그냥 수동으로 업무를 처리할 때에는, 그 정도는 사람이 감안해서 미리미리 처리해주면 되겠지만, 모든 것이 자동으로 처리되는 대량의 데이터 시스템에서는, 이런 계산을 대충 하게 되면 큰일 납니다.

시간대, 영업일을 고려한 날짜 차이 계산식

따라서 다음과 같이 보완을 해줍니다.

첫째, 시간대를 반영해서, Airtable 현재 시스템 시간에 DATEADD 함수를 이용해 9시간을 더합니다.
DATEADD(NOW(), 9, 'hours')
둘째, 구해진 시간을 한국 시간대로  설정해줍니다. SET_TIMEZONE 함수는 첫 번째 파라미터의 시간을 두 번째 파라미터에서 표시한 시간대로 표시해 시간값을 리턴해줍니다. 시간대별 표시자(identifier) 목록을 참고하십시오. (Airtable 필드 형식(Formatting) 설정에서 시간대를 바꿔주는 옵션이 있습니다만, 이것은 손대지 않는다고 가정합니다.) 추가로, 편의상 DATESTR 함수를 써서 일정 표시를 ISO 8601 날짜 표현방식에 따라, YYYY-MM-DD로 바꿔주겠습니다.

DATESTR(SET_TIMEZONE(DATEADD(NOW(), 9, 'hours'), 'Asia/Seoul'))


셋째, 이렇게 구한 현재 날짜/시간과 {시작일} 필드값을 비교해야 합니다. 그런데, 위에서 썼던 DATETIME_DIFF 함수를 쓰면, 주말이나 공휴일을 고려하지 않고, 날짜 차이를 계산합니다. 약간 주의할 점은, 시작일과 끝일을 모두 포함하여 계산하니, 양수인 경우 +1이, 음수인 경우 -1을 더한 값이 나옵니다.WORKDAY_DIFF라는 영업일 계산 함수를 써서, 일단 주말을 고려하여 날짜 차이를 계산합니다.

WORKDAY_DIFF(
  	DATESTR(SET_TIMEZONE(DATEADD(NOW(), 9, 'hours'), 'Asia/Seoul')),
    {시작일}
)

이렇게 하면, 시작일에서 현재일 사이에 영업일이 며칠 있는지 계산해줍니다. 그 값이 마이너스이면, 시작일이 이미 지났다는 뜻이고, 양수이면 시작일이 미래라는 뜻입니다. 결과가 0이면 영업일이 하나도 없으니, 시작일과 현재일이 모두 휴일이라는 뜻입니다. 1 또는 -1이면 시작일이나 현재일 둘 중의 하나가 영업일이라는 뜻입니다.

넷째, WORKDAY_DIFF 함수에서 세 번째 파라미터에 주말이 아닌 공휴일을 추가합니다. 2024년 기준 대한민국 공휴일을 참조하여, 마지막으로 공휴일 목록을 하나의 문자열로 묶어서 넣습니다. 

WORKDAY_DIFF(
	DATESTR(SET_TIMEZONE(DATEADD(NOW(), 9, 'hours'), 'Asia/Seoul')),
    {시작일}, 
    '2023-01-23, 2023-01-24, 2023-03-01, 2023-05-05, 2023-06-06, 2023-08-15, 2023-09-28, 2023-09-29, 2023-10-02, 2023-10-03, 2023-10-09, 2023-12-25, 2024-01-01, 2024-02-09, 2024-03-01, 2024-05-15, 2024-06-06, 2024-08-15, 2024-09-16, 2024-09-17, 2024-09-18, 2024-10-03, 2024-10-09, 2024-12-25'
)

다섯째, 다시 SWITCH 조건문에서 위의 값을 검사하여, 전전날, 전날, 오늘, 다음날, 담담날을 표시해주도록 합니다.

SWITCH(
	WORKDAY_DIFF(DATESTR(SET_TIMEZONE(DATEADD(NOW(), 9, 'hours'), 'Asia/Seoul')), {시작일}, '2023-01-23, 2023-01-24, 2023-03-01, 2023-05-05, 2023-06-06, 2023-08-15, 2023-09-28, 2023-09-29, 2023-10-02, 2023-10-03, 2023-10-09, 2023-12-25, 2024-01-01, 2024-02-09, 2024-03-01, 2024-05-15, 2024-06-06, 2024-08-15, 2024-09-16, 2024-09-17, 2024-09-18, 2024-10-03, 2024-10-09, 2024-12-25'),
	-3,'전전날',
	-2,'전날',
    -1,'(지난)오늘',
    0, '휴일',
	1,'(올)오늘',
	2,'다음날',
	3,'담담날'
)

실제 베이스 예시: 행사 운영 관리


아래에 예시로 만들어놓은 '행사운영관리'라는 베이스를 살펴보십시오. {시작일}이 오늘인지, 전날인지, 다음 날인지 판단하여 {영업일 기준}이라는 필드에서 결과를 보여줍니다. 시작일 하루 전에는 '사전 안내'를 반드시 해야 하고, 당일은 '현장 진행'을 해야 하고, 하루가 지나면 '해피콜'을 반드시 해야 한다고 합시다. 그런 업무를 체크리스트로 만들어놓고, 전날 일정, 오늘 일정, 다음날 일정 등만 따로 볼 수 있는 뷰(View)를 만들어놓으면, 누락이 없는 업무 관리 시스템이 됩니다. 또 거기에 전날, 오늘, 다음날 해야 하는 일들을 자동화(automation)로 걸어놓으면, 업무 담당자의 반복적인 업무가 획기적으로 줄어들겠죠? 이런 이야기는 다음 기회에...

2023-09-27

유리상자 숙녀에게 피아노 편곡

아주 예전부터 피아노로 즐겨 쳐왔던 곡입니다. 그런데 손으로만 치는 곡은 연주할 때마다 조금씩 달라지게 됩니다. 그리고 그것을 악보로 그리다 보면 또 생각이 계속 바뀌지요. 무엇이 최선일까? 이게 나을까 저게 나을까, 하나의 음표 가지고, 수 십 번을 바꿔가면서 고민합니다. 저같이 전문 작곡가가 아닌 사람에게는 이렇게 익숙한 곡도, 악보로 그리기 위해 엄청난 시간과 노력이 들어갑니다. 거의 일주일 정도 틈날 때마다 매달려서 겨우 그럴듯한 수준의 악보를 만들어냈습니다.

변진섭이 처음에 불렀었고, 한참 후에 유리상자가 리메이크해서 불렀습니다. 가을에 서둘러 온 초겨울 새벽녘에 찾아온 반가운 눈처럼 다가온 그대! 그러나 우울한 눈빛이 마음에 걸려서 조심스러운 마음이 노래에 잘 묻어나는 것 같습니다. 피아노 조금만 칠 줄 아는 분이라면, 아주 쉽게 연주할 수 있을 것입니다. 흔히 말하는 이지 피아노(easy piano) 스타일의 곡입니다.

최근에 힘든 일로 정말 시달렸습니다. 앞으로도 예정된 힘든 일들이 기다리고 있습니다. 그리고, 어느덧 한가위 명절 연휴를 눈앞에 두고 있습니다. 가족들이 모여서 따뜻한 정을 나누면서, 위로가 되고 사랑이 되어, 용기를 얻을 수 있는 시간이 되었으면 좋겠습니다. 제 스스로에게 위안을 주는, 그리고 덤으로 다른 사람들에게도 작은 울림을 전해주는 음악 작업들을 시간이 날 때마다 조금씩 해보겠습니다.

숙녀에게 - 하광훈 / 신승식 by Greg SHIN


유리상자의 리메이크 곡, 숙녀에게(2005년). 이 곡을 듣고 피아노로 조금 더 클래시칼하게 편곡해보았습니다.


변진섭이 부른 원곡, 숙녀에게(1989년).


숙녀에게 가사

어쩌면 처음 그땐 시간이 멈춘듯이
미지의 나라 그곳에서 걸어온 것처럼
가을에 서둘러온 초겨울 새벽녁에
반가운 눈처럼 그대는 내게로 다가왔죠
그대의 맑은 미소는 내맘에 꼭 들지만
가끔씩 보이는 우울한 눈빛이 마음에 걸려요
나 그대 아주 작은 일까지 알고 싶지만
어쩐지 그댄 내게 말을 안해요
허면 그대 잠든밤 꿈속으로 찾아가
살며시 얘기 듣고 올래요
그대의 맑은 미소는 내맘에 꼭 들지만
가끔씩 보이는 우울한 눈빛이 마음에 걸려요
나 그대 아주 작은 일까지 알고 싶지만
어쩐지 그댄 내게 말을 안해요
허면 그대 잠든밤 꿈속으로 찾아가
살며시 얘기 듣고 올래요
나 그대 아주 작은 일까지 알고 싶지만
어쩐지 그댄 내게 말을 안해요
허면 그대 잠든밤 꿈속으로 찾아가
살며시 얘기 듣고 올래요

2023-09-21

온라인 설문 결과를 원하는 양식의 PDF로 변환하기

사용자가 편하게 입력할 수 있는 양식(form)이 있는 파일을 만들기 위해 ①(아래아) 한/글을 이용하는 방법, ②무료 리브레오피스를 이용하는 법과 ③무료 온라인 PDF 편집기를 이용하는 방법을 살펴보았습니다.


이 글의 목차


들어가며

이번에는 PDF에 입력 가능한 양식을 넣는 대신에, 온라인 설문을 통해 응답을 수집하되, 수집된 결과물이 개인별 PDF 응답지로 저장되도록 해보겠습니다.  예를 들어, 동아리 가입 신청서는 온라인으로 아래와 같이 받고, 그 결과는 실제 가입신청서를 작성한 것처럼, PDF 파일로 생성되는 방식입니다.

온라인 설문 응답
응답을 기반으로 생성된 PDF

제가 교육 운영 업무를 할 때 이런 경우가 있었습니다. 교육을 시작하기 전에 열심히 참여하겠다는 동의서를 개인적으로 다 받아야 했습니다. 주로 관공서 교육에서 많이 요구하죠.  교육 참여자 전원에게 설문을 실시해야 합니다. 현장에서 하는 교육은 참여자 10명에게 종이 10장을 나누어주고, 걷어야 합니다. 비대면 실시간 화상 교육을 한다면, 어떤 식으로든 설문지 파일을 전해주고, 개별 응답을 받고, 사진이나 첨부 파일로 받은 10개의 응답지를 다시 정리해야 합니다. 그 어느 경우도, 매우 귀찮은 일입니다. 그냥 온라인 설문으로 하면 되는데 말이죠.

이런 경우, 설문은 온라인 전자 설문으로 받고, 10개의 응답지는 알아서 PDF 파일로 개별 생성해준다면 편리하겠죠. 이렇게 하기 위한 몇 가지 방법을 앞으로 소개할 예정입니다. 오늘은 가장 널리 쓰이는 무료 온라인 설문 도구인 구글 설문지(Google Forms)를 이용하도록 하겠습니다. 

구글 설문지 만들기

여기에서 자세하게 구글 설문지를 만드는 방법은 설명하지 않겠습니다. 그렇게 어렵지 않으니 시도해보시면 금방 할 수 있습니다. 아래와 같이 동아리 가입 신청서 양식을 온라인 설문으로 만듭니다. 
Google Forms 동아리 가입 신청서 편집 화면
설문지 편집 화면

참고로 구글 설문에서 제공하는 문항 종류에 따라 다음과 같은 질문 형식을 사용했습니다.
  • 성명, 휴대전화 - 단답형 (텍스트 필드)
  • 성별 - 객관식 질문 (라디오 버튼)
  • 회원 구분 - 드롭다운 
  • 가입 경로 - 체크박스

부가 기능 설치하기

구글 설문을 포함한 워크스페이스 제품들은 마켓플레이스를 통해 여러 가지 부가 기능(add-ons)을 제공합니다. 그 중에 구글 설문과 구글 시트용 부가기능인 Form Publisher를 설치합니다. 마켓플레이스에서 [설치] 버튼을 누르면 됩니다. 

폼 퍼블리셔는 구글 설문으로 수집한 데이터를 기반으로, 원하는 문서를 생성해주는 부가 기능입니다. 이것을 응용하면, 설문을 기반으로 개인 응답지를 만들 수 있고, 회사에서는 간단한 신청 및 결재 프로세스를 태울 수도 있으며, 메일 머지, 상장 만들기, 심리 검사에 대한 개인별 자동해석 리포트 만들기도 할 수 있습니다. 

응답지 템플릿 만들기

개인별 응답지가 어떤 형식으로 생성될 지 미리 템플릿을 정의해놔야 합니다. 템플릿은 구글 독스(워드프로세서), 구글 스프레드시트, 구글 슬라이드(프리젠테이션 툴)로 만들 수 있는데, 동아리 가입신청서는 간단히 구글 독스로 만들겠습니다. 구글 독스를 열고 아래 예시와 같이 템플릿을 만듭니다.  (구글독스로 만들어진 실제 템플릿)

구글 독스로 만든 가입 신청서 템플릿
구글 독스로 만든 응답지 템플릿

템플릿 안에서, 설문지에 사용된 질문 문항을 그대로 변수로 사용합니다. Form Publisher에서는 이런 변수를 마커(Marker)라고 합니다. 마커 이름에는 <<마커명>>과 같이 양쪽을 꺾인 괄호로 묶어줍니다. 바로 이 마커 부분에 사용자가 실제 응답한 내용이 대체되어 개인별 응답지가 만들어집니다. 예를 들어, 성명을 사용자가 "홍길동"이라고 답한다면, <<성명>>이라는 마커 자리에 홍길동이 들어간 응답지가 생성됩니다. 

오늘 날짜, 응답자 이메일, 자동 증가하는 응답자 일련 번호 등과 같이 미리 정의된 변수, Standard Markers를 사용할 수도 있습니다. 동아리 신청서 예시에서는 신청한 날짜를 자동으로 불러오기 위해 <<Today>>라는 미리 정의된 마커를 사용합니다. 

저장 폴더 만들기

설문 응답이 쌓여가면, 자동으로 생성된 응답지 파일(PDF 포함)을 저장할 폴더를 지정해야 합니다. 저는 현재 설문지가 있는 폴더의 하위 폴더를 하나 만들고, "가입신청서_저장"이라는 이름을 붙였습니다. 아래와 같이, 현재 폴더에 가입신청서_설문, 가입신청서_설문(응답), 가입신청서_템플릿 파일이 놓이게 되고, 가입신청서_저장이라는 하위 폴더가 생성된 것을 알 수 있습니다. 

구글 드라이브 폴더 구조. 설문지, 응답 스프레드시트, 템플릿이 한 폴더에 있고, 저장 폴더가 하위 폴더로 있다.
설문이 있는 폴더 밑에 저장 폴더를 만들었습니다.


Form Publisher 설정하기

이제 구글 설문 편집 화면으로 돌아가서 아래 화면에서처럼 부가 기능에서 Form Publisher를 선택하고, 실행합니다.
구글 설문 편집 화면에서 부가 기능 > Form Publisher > Launch Form Publisher를 선택하여 시작합니다.
Form Publisher 실행

Form Publisher를 실행하면 화면 오른쪽 아래에 팝업 실행창이 뜹니다. 첫 화면은 Template and markers 화면이고, 좌측 위에 있는 햄버거 메뉴(☰)를 통해 다음과 같은 항목들을 차례대로 설정해주면 됩니다.
Form Publisher 팝업창에서는 왼쪽 위에 있는 햄버거 메뉴에서 여러 기능들을 설정할 수 있습니다.
Form publisher의 메뉴 선택


Template and markers (템플릿 파일 선택 및 변수(마커) 확인)

템플릿 파일과, 템플릿 안에 사용된 마커가 정상적인지 확인합니다.
Template and markers


  • Select template: 기본값으로 Form Publisher가 만들어준 템플릿이 있을 것입니다. 이것을 위에서 구글 독스로 만든 응답지 템플릿 파일로 바꿉니다.  
  • Markers: 템플릿 파일을 읽어서 템플릿 파일 안에 변수(마커)가 설문지와 제대로 매칭되는지 확인합니다. 정상적이라면 초록색으로 1개의 표준 마커(<<Today>>)와, 5개의 설문지 문항이 마커로 쓰였다는 것을 확인할 수 있습니다. 

Destination folders & routing rules (저장 폴더 지정)

응답자 개인별로 생성되는 응답지가 저장될 폴더 위치를 지정하는 것입니다. 위에서 미리 만들어놓은 "가입신청서_저장"이라는 폴더로 지정합니다.
응답한 내용을 PDF로 만들어 보관할 저장 폴더의 위치를 설정합니다.
Destination folders



File generation options (개별 응답 시트 파일 생성 옵션)

응답자 개인별로 생성되는 파일 관련 옵션입니다. 그 중에 제일 중요한 것은, Keep PDF copy in Drive 옵션을 선택해서, PDF 파일이 차곡차곡 저장되도록 하는 것입니다. 
응답지 파일 생성시 몇 가지 옵션을 지정합니다. 구글 독스에 추가로 PDF를 반드시 생성하도록 해주었습니다.
File generation options


Naming convention (개별 응답 시트 파일 이름 설정)

응답자가 여러 명이 되면, 개별 응답지 생성 파일이 서로 구분될 수 있는 파일 이름을 부여해야 합니다. 저는 응답한 시간과 응답자의 성명을 변수로 넣어서 파일 이름을 "<<Timestamp>>_가입신청서_<<성명>>" 과 같이 지정했습니다. 그러면 실제로는 "2023-09-20_가입신청서_홍길동", "2023-09-21_가입신청서_김철수"와 같이 응답한 시간과 응답자 성명을 조합하여 응답자별로 PDF 파일이 생성됩니다.
생성되는 응답지 파일 이름 규칙을 지정하였습니다.
Naming convention


Sharing options and notifications (파일을 받아볼 사람 지정)

설문을 받고, 설문 결과 개인별로 생성된 PDF를 응답자 개인에게 자동으로 보낼 수도 있고, 아니면 관리자에게 보낼 수도 있습니다. 메일의 제목과 메시지의 세부 내용도 조정할 수 있습니다. 물론 메일을 보내지 않아도, 관리자 입장에서는 구글 드라이브의 저장 폴더에 응답지가 쌓이므로, 꼭 메일로 통보를 받는 것이 필수는 아닙니다.
생성된 응답지 파일을 누구한테 이메일로 보낼 것인지 지정합니다. 여기에도 그냥 이메일 주소 외에 마커를 사용할 수 있습니다.
Sharing options and notifications


마치며

이제 동아리 가입 신청서를 PDF로 배포하지 않고, 그냥 구글 설문으로 가입 신청을 받게 됩니다. 그리고, 신청이 한 번씩 이루어질 때마다, 자동으로 신청서 PDF 파일이 생성되어 쌓입니다. 물론, 구글 설문의 원래 기능대로 모든 응답 내용은 구글 스프레드시트에 저장되어, 쉽게 데이터 관리를 하고 통계 분석도 가능합니다. 아래 설문지 링크에서 테스트해보시기 바랍니다.


이 글에서는 전자 서명(싸인)과, 워크플로우(workflow)를 태워서 다른 사람이 승인하는 것까지는 넣지 않았습니다. 다음 기회에는 PDF에 전자 서명 넣는 것과 워크플로우를 태우는 것도 다뤄보겠습니다. 

2023-09-12

입력 가능한 양식이 있는 PDF 만들기 2: 무료 온라인 서비스

입력 가능한 양식이 있는 문서, 특히 PDF 문서를 만들기 위한 여정을 가고 있습니다.



이 글의 목차

  1. PDF 양식을 만들어주는 온라인 서비스
  2. 최종 목적물과 작업용 파일
  3. PDFescape란
  4. 작업용 파일 업로드
  5. 폼 필드(form field) 추가
  6. 성명, 휴대전화, 신청일, 신청자 성명을 위한 텍스트 필드
  7. 성별 입력을 위한 라디오 버튼
  8. 회원구분 입력을 위한 드롭다운 필드
  9. 가입경로 입력을 위한 체크상자
  10. 저장 및 다운로드
  11. PDFescape의 특징과 한계

PDF 양식을 만들어주는 온라인 서비스

이번에는 별도의 프로그램 없이 그냥 온라인에서 입력 가능한 양식이 있는 PDF 문서를 쉽게 만들어주는 서비스를 살펴봅니다. 검색해보면 몇 가지 서비스들이 나옵니다. 예를 들면 DocFly, Sejda 등이 나오는데, 사실상 무료로는 제약이 너무 많아서 사용이 힘들게 되어 있습니다. 그래서 2023년 9월 12일 현재, 실제 무료로, 쓸만하게 양식을 만들 수 있는 온라인 서비스로 PDFescape를 이용합니다. 이후에 온라인 양식(form) 제작 툴을 이용한 좀 더 복잡한 방법들을 소개할 예정인데, 그걸 제외하면, 무료로, 가장 빠르고 간단하게 PDF 양식을 만드는 방법입니다. 

최종 목적물과 작업용 파일

최종 목적물은 지금까지 해왔던 동아리 가입신청서입니다. PDFescape로 만들어진 실제 결과물을 참조하십시오. 작업용 파일은 아직 입력 양식이 없는 PDF 파일입니다. 이 파일을 PDFescape 에 업로드하여 양식을 추가할 예정입니다.
최종적으로 PDFescape를 이용해 만들어질 결과물. 입력 가능한 양식이 있는 PDF 문서
PDFescape로 만들 최종 결과물
PDFescape에 업로드할 PDF 문서. 아직은 입력 양식이 없는 PDF 문서
PDFescape에 업로드할 작업용 문서

PDFescape란

기본적으로 온라인 PDF 에디터라고 보시면 됩니다. 구글링 해보면 온라인 PDF 에디터의 종류는 엄청나게 많습니다만, 그 중에서 PDFescape는 무료로, 입력 가능한 양식을 넣을 수 있다는 점에서 상당히 소중한 서비스입니다. 데스크톱용 에디터도 있는데, 시험판이어서 별로 추천하고 싶진 않습니다.

PDFescape은 온라인 또는 데스크톱 소프트웨어를 이용해 PDF 편집을 할 수 있게 합니다.
PDFescape: 온라인 PDF 에디터와 데스크톱용 PDF 에디터

작업용 파일 업로드

PDFescape에 아직은 양식이 없는 일반 PDF 파일을 업로드합니다. 

PDFescape 첫 화면에서 작업용 파일을 업로드합니다.
PDFescape에 작업용 PDF 업로드하기

폼 필드(form field) 추가

Insert(추가) 버튼과 Form Field(양식 필드) 버튼을 눌러 양식 추가를 시작합니다. 이어서 Form Field Creation Tool(양식 필드 만들기 도구)가 나타납니다. Text, Checkbox, Radio button, Dropdown, Listbox 양식을 선택할 수 있습니다.

Insert, Form Field를 선택하여 양식 추가를 시작합니다.
양식 추가 시작하기
Form Field Creation Tool에서 Text, Checkbox, Radio button, Dropdown, Listbox를 선택할 수 있습니다.
Form Field Creation Tool

성명, 휴대전화, 신청일, 신청자 성명을 위한 텍스트 필드

Form Field Creation Tool에서 Text 유형을 선택합니다. 한 번 유형이 선택되면, 별도로 중단시키기(disable) 전까지 계속 동일한 Text 양식을 추가할 수 있습니다. 성명, 휴대전화, 신청일, 신청자 성명 등에 모두 동일한 유형의 양식을 추가합니다. 마지막으로 이제 텍스트 필드 입력을 그만두기 위해 화면 상단에 Click here to disable. 부분을 누릅니다.

텍스트 필드를 원하는 만큼 생성한 다음, 이제 그만 생성하려면, 맨 위에 회색 영역을 클릭합니다.
텍스트 필드 반복 입력 및 중단

이제 각 텍스트 필드의 속성을 정합니다. 텍스트 필드 하나를 선택하고, 편집(🖉)을 누르고, 다시 속성(🔧)을 선택하면, 현재 선택한 필드의 속성창이 나옵니다. 사실상 아무 것도 안 하고, 다 기본값으로 놔도 상관은 없는데, 다른 필드와 알기 쉬운 이름으로 구분하기 위해, Name 속성에 적절한 이름을 넣어줍니다. 성명 필드에는 성명, 휴대전화 필드에는 휴대전화 이런 식으로 넣으면 됩니다.

성명 텍스트 필드 속성창에서 Name 의 값으로 성명이라고 넣어줍니다.
성명 필드 속성값 입력

성별 입력을 위한 라디오 버튼

Form Field Creation Tool(양식 필드 만들기 도구)에서 이제 Radio button 유형을 선택합니다. 작업용 파일에 남, 여, 기타 세 개의 선택 옵션이 있으므로, 연달아 세 개의 단추를 만들고, 화면 상단의 Click here to disable.을 눌러서 중단합니다. 이제 옵션 하나하나에 속성값을 넣어줍니다. 먼저 "남" 버튼을 선택하고, 속성창을 열어, Name에는 "성별"이라고 넣고, Export Value에는 "남"이라고 넣습니다. 세 개의 라디오 버튼 모두 공통으로 "성별"이라는 Name 값을 공유하고, 대신 Export Value만 각각 다른 값, "남", "여", "기타"를 넣어줍니다.

모든 라디오 버튼에 동일한 Name 값을 넣고, 버튼마다 다른 Export Value 값을 넣어줍니다.
성별 라디오 버튼 속성값 입력

회원구분 입력을 위한 드롭다운 필드

성인 회원, 청년 회원, 청소년 회원 중에 하나만을 선택한다는 점에서 라디오 버튼과 비슷하지만, 드롭다운(Dropdown) 필드는 시각적으로 공간을 절약하고, 최종적으로는 선택된 것만 보이도록 한다는 점에서 차이가 있습니다. Name에는 적당히 구분되는 "회원구분"이라는 값을 넣어주었고, 중요한 것은 Field Options에 선택 가능한 목록값을 넣어주는 것입니다. 성인, 청년, 청소년이라는 입력값을 한 줄씩 넣어줍니다.

드롭다운 필드의 속성창에서는 Field Options에 선택 가능한 값들을 한 줄씩 넣어줍니다.
드롭다운 필드의 속성값 입력

가입경로 입력을 위한 체크상자

가입경로는 여러 개의 경로를 복수로 선택 가능하므로, 체크상자로 구현합니다. Form Field Creation Tool에서 Checkbox를 선택합니다. 인터넷 검색, 지인 추천, 홍보 전단지 앞에 체크상자를 하나씩 넣어주고, 마지막으로 Click here to disable.을 눌러서 중단합니다. 체크상자는 각각의 상자마다 서로 다른 Name과 Export Value를 넣어주면 됩니다. 예를 들면, 인터넷 검색 상자에는 Name과 Export Value에 모두 "인터넷 검색"을 넣고, 나머지 상자도 각 상자에 맞는 값을 넣어줍니다.

인터넷 검색 체크상자의 속성으로는 Name가 Export Value에 모두 인터넷 검색이라고 넣어줍니다.
체크상자 필드의 속성값 입력

저장 및 다운로드

입력 양식을 다 넣고, 속성도 다 맞줘주었다면, 마지막으로 왼쪽에 있는 디스크 모양의 저장 버튼(💾)을 눌러 저장하고, 마지막으로 다운로드 버튼(⭳)을 눌러 내 컴퓨터로 내려받습니다. 완성된 양식은 여기에서 볼 수 있습니다. 그리고 이제 가지고 있는 PDF 뷰어로 열어보면, PDF 양식에 입력이 가능한 것을 알 수 있습니다.

PDFescape의 특징과 한계

PDFescape는 매우 간편하게 입력 가능한 PDF 양식을 생성할 수 있습니다. 하지만, 몇 가지 제약이 있습니다.

  • 필드의 종류는 텍스트, 체크상자, 라디오 버튼, 드롭다운, 목록상자(Listbox)까지 있습니다. 텍스트의 종류에 따라, 정교하게 날짜, 숫자 등을 지정하지는 못합니다. 또 목록상자는 한글 입력이 안 되더군요.
  • 각 필드의 모양(글꼴 크기, 종류 등)을 다듬을 수는 없습니다.
  • 양식의 접근성(accessibility) 측면에서 각 양식 컨트롤은 레이블(label)과 짝짓기가 되어야 하는데, 그런 기능은 전혀 없습니다.

그럼에도 불구하고, PDFescape는 무료로, 온라인으로, 바로 PDF 입력 양식 문서를 만들 수 있다는 점에서 상당히 유용한 서비스입니다. 다음에는 온라인 양식 입력 툴, 즉 설문조사 툴을 이용해서 PDF 입력 양식을 생성하는 방법을 알아보겠습니다. 감사합니다.

2023-09-04

노란 샤쓰의 사나이 (장동인 편곡)

노란 샤쓰의 사나이 앨범 표지
노란 샤쓰의 사나이 앨범 표지

만약 이 노래를 잘 안다면, 라떼는 말이야를 가끔씩 외치는 구세대임을 드러내는 것인지도 모르겠습니다. 그렇다고 제가 한참 자랄 때 유행했던 노래는 아니고, 무려 1961년에 만들어진 곡입니다. 

그렇지만 잘 알고 있는 노래입니다. 그만큼 히트했던 곡이라는 말이겠죠. 

이런 오래되고, 친숙한 멜로디들을 현대적으로 편곡한 것들을 저는 좋아합니다. "현대적(modern)"이라는 말에는 세련되고, 장르에 구애받지 않는 크로스오버에 가까우며, 고리타분하지 않다는 뜻을 담고 있습니다. 한 때 작곡가를 꿈꾸기도 했던 저는, 어느 정도 복잡성이 있지만, 우아하고 세련된 음악에 대한 막연한 동경이 있습니다. 제 수준에서는 그런 음악을 생산하지는 못하고, 그냥 만들어진 음악을 충분히 좋아할 수만 있으니까요. 이 곡을 실제 피아노 반주를 하기 위해 연습하던 아내가 투덜거리더군요. 노래는 쉬운데, 피아노만 어렵게 만들어놨다고... 예전에 저도 합창단 반주를 아주 조금 했었는데, 지금은 이런 빠르기의 반주는 저에게 완전히 넘사벽이 되었습니다.

오늘 악보로 제공하는 이 음악은 가요무대에서 틀어줄 법한, 그 옛날 노래, "노란 샤쓰의 사나이"를 현대의 젊은 작곡가 장동인님이 합창으로 편곡한 것입니다. 아주 풍성하고 웅장한 하모니를 이루는 합창이 아니라, 오히려 곳곳에 나오는 유니즌(제창)이 더 멋지게 들리는, 가볍고, 발랄하고, 재지(Jazzy)하고, 경쾌한 노래입니다. 

노란 샤쓰의 사나이 - 장동인 by Greg SHIN

제작 노트

  • 제가 악보를 그리면서, 15마디 이후 반주부(주로 바이올린, 피아노로 진행되는 4분음표 연속음들)에 스윙(Swing) 리듬을 약간 넣었습니다. 연주가 너무 빨라 잘 느껴지지 않습니다만.
  • 34~37마디 바이올린 부분의 화성은 조금 바꿨습니다.
  • 합창 파트의 악기를 무엇으로 하느냐가 항상 고민입니다. 아직까지는 기계가 가장 흉내를 못 내는 것이 사람의 노래 소리인 것 같습니다. 클래식 합창 사운드를 흉내낼 때 기본적으로 쓰는 Choir Aahs Expr. 대신, 이번에는 빠른 곡의 특성을 살려 Voice Oohs Expr.을 썼습니다. Choir Aahs Expr.는 처음 사운드가 나올 때 땅 때려주는 속도(attack rate)이 조금 늦어서 답답한 느낌을 주었기 때문입니다.
  • 29마디에서 붙임줄을 구현하지 못했습니다. 되돌이 후 2번으로 이어지는 경우, 앞엣 마디 음과 붙임줄을 붙이는 방법을 아직 못 찾았습니다.
  • 82마디부터 모든 음에 액센트가 붙어 있는데, 뮤즈스코어 상에는 플레이할 때 너무 강조되는 경향이 있어서 다 뺐습니다.
  • 아직도 구 버전인 Musescore 3을 이용했습니다. 최신 소프트웨어인 Musescore 4를 쓰지 않는 이유는, 제 PC 사양이 낮아서 잘 구동이 안 되기 때문입니다.

입력 가능한 양식이 있는 PDF 만들기 1: 무료 LibreOffice Writer 사용

리브레오피스(LibreOffice)는 대표적인 오픈 소스 무료 오피스 스윗입니다. 오늘은 그 중에 워드프로세서인 라이터(Writer)를 이용하여, 입력 가능한 양식(fillable forms)이 있는 ODT(OpenDocument Text)파일을 만들어 보겠습니다. ODT 파일은 라이터 뿐만 아니라, 마이크로소프트 워드, 구글 문서(Google Docs), 한/글에서 열고, 편집할 수 있습니다. 

라이터에는 앞서 살펴보았던 한/글보다 입력 가능한 양식 컨트롤(form controls)의 가짓수가 훨씬 많고, 속성도 더 상세하게 지정할 수 있습니다. 그 중에 자주 쓰이는 컨트롤만 가지고, 아래와 같은 동아리 가입 신청서 양식을 만들어보겠습니다.

동아리 가입 신청서 양식: 성명, 성별, 휴대전화, 회원 구분, 가입 경로, 신청일, 신청자 성명 등을 입력할 수 있다.
만들고자 하는 동아리 가입 신청서 양식. 클릭하면 원본 ODT 파일을 다운로드합니다.

 

 

양식 컨트롤 도구모음 보이기

먼저, 양식 컨트롤을 계속 사용해야 하니, 툴바를 보이도록 하고 고정시켜 놓습니다. 메뉴에서 View > Toolbars > Form Controls 를 선택하면 툴바가 보입니다. 

양식 컨트롤 도구모음(툴바) 보이기: 메뉴에서 View, Toolbars, Form Controls를 선택한다.
양식 컨트롤 도구모음(툴바) 보이기

툴바가 보였다 안 보였다 하면 불편하니 툴바에서 마우스 오른쪽 버튼을 누르고, Lock Toolbar Position을 선택해서 위치를 고정합니다. 

양식 컨트롤 도구모음(툴바) 고정시키기
양식 컨트롤 도구모음(툴바) 고정시키기

양식 컨트롤의 종류

리브레오피스에는 매우 많은 양식 컨트롤이 있습니다. 그 중에 현실적으로 자주 쓰이는 것들은, 텍스트 박스, 체크 박스, 옵션 버튼, 리스트 박스, 콤보 박스, 날짜 필드, 숫자 필드 정도입니다. 중요 컨트롤은 아래 예제에서 자세하게 설명합니다.

양식 컨트롤 툴바 버튼: 디자인 모드 온/오프(토글), 레이블(모든 폼의 레이블), 텍스트 박스, 체크 박스(다중 선택), 옵션 버튼(단일 선택), 리스트 박스, 콤보 박스, 날짜 필드, 숫자 필드
양식 컨트롤 툴바의 버튼 안내

성명 입력란 (Text Box)

성명 입력란은 일반 텍스트 박스로 넣습니다. 폼 컨트롤 툴바에서 텍스트 박스 아이콘을 선택하고 입력란을 넣고 싶은 위치에서 마우스로 박스를 그려주면 됩니다. 
텍스트 박스 그려넣기
텍스트 박스 그려넣기
 
다시 박스 위에서 마우스 오른쪽 버튼을 눌러 폼 컨트롤 속성(Control Properties...)를 선택하여 나타나는 대화 상자에서 몇 가지 속성을 지정해줍니다. 
텍스트 박스 속성 설정하기
텍스트 박스 속성 설정하기
  • Name: 시스템에서 다른 컨트롤과 구분해서 붙이는 고유한 이름입니다. Text Box 1이 자동으로 생성되는데, 그대로 두어도 되지만, 나중에 Name으로 컨트롤들을 구분하기 위해, "성명"이라는 값을 주었습니다.
  • Tab order: 나중에 탭키를 눌러 키보드로 폼 컨트롤 사이를 이동할 때, 이동 순서입니다. 제일 위에 있는 것이니 순서 1번을 부여합니다. 
  • Font: 입력란에 데이터를 넣을 때, 표시되는 글자 모양, 크기 등을 지정합니다. 

성별 (Option Button)

성별의 선택은 남, 여가 동시에 될 수 없으므로, 라디오 버튼(옵션 버튼)으로 만듭니다. 옵션 버튼을 두 개 연속으로 만듭니다. 먼저 만든 옵션 버튼 위에서 마우스 오른쪽 버튼을 누르고, Control Properties... 메뉴를 선택하여, 대화 상자에 다음과 같은 속성을 넣어줍니다. 
 
옵션 버튼(라디오 버튼) 속성 설정하기
라디오 버튼 속성 설정하기
  • Name: 시스템에서 구분하는 명칭입니다. "남"이라고 넣어줍니다. 기본값을 그대로 놔두어도 상관은 없습니다.
  • Label: 실제 라디오 버튼 옆에 무슨 값이 보이는지 지정하는 것으로 반드시 넣어주어야 합니다. "남"이라고 넣습니다.
  • Group name: 여러 개의 옵션 버튼이 하나의 그룹으로 묶이도록 하기 위해 같은 그룹 이름을 넣어주어야 합니다. 이 경우 "성별"이라고 넣습니다.
  • Tab order: 탭키 순서는 2번을 부여합니다.
  • Font: 글꼴 모양, 크기 등을 지정합니다.
이어서 두 번째 옵션 버튼에는 Name과 Label을 "여"라고 입력하고, Group name은 똑같이 "성별"이라고 입력합니다.

회원 구분 (List Box)

청소년, 청년, 성인 회원으로 구분하기 위해 목록 상자(List Box)로 만듭니다. 목록 상자는 옵션 버튼처럼 여러 개 중에 하나만 선택하게 되어 있지만, 화면에 모든 옵션이 나타나지 않고, 오른쪽에 있는 목록 보이기 버튼(▼)이 눌러져야 목록이 나타납니다. Control Properties... 대화상자에 다음과 같은 값들을 입력합니다.
목록 상자 속성 설정하기
목록 상자 속성 설정하기
  • Name: "회원 구분"이라고 넣습니다. 
  • Tab order: 탭키 순서는 5번을 부여합니다.
  • List entries: 여기가 제일 중요하죠! 목록에서 선택 가능한 옵션을 아래 그림처럼 한 줄씩 입력해줍니다.
  • Font: 원하는 글꼴과 크기를 지정합니다. 

가입 경로 (Check Box)

가입경로는 회원구분과 달리 여러 개의 옵션을 복수로 선택할 수 있으므로, 체크 상자(Check Box)로 만듭니다. 그룹으로 묶어줄 필요는 없고, 옵션 하나하나의 속성을 독립적으로 지정해줍니다.
첫 번째 체크 상자인 "인터넷 검색"이라는 옵션의 Control Properties...는 다음과 같습니다. 나머지 체크 상자도 같은 방식으로 속성을 지정하면 됩니다.
체크 상자 속성 설정하기
체크 상자 속성 설정하기
  • Name: 다른 양식 컨트롤이나 체크 상자와 구분하기 위한 이름으로 "인터넷 검색"을 지정했습니다. 
  • Label: 여기서 레이블은 체크 상자 옆에 실제 표시되는 이름이기도 하고, 선택했을 때 전해지는 값이기도 합니다. "인터넷 검색"이라고 넣으면 됩니다.
  • Tab order: 탭키 순서 6번을 주었습니다.
  • Font: 원하는 글꼴과 크기를 선택합니다. 

신청일 (Date Field)

한/글과 달리 리브레오피스 라이터에는 날짜만 받을 수 있는 양식 컨트롤 날짜 필드(Date Field)가 있고, 달력을 통해 날짜를 선택하게 할 수도 있습니다. 신청일의 속성은 다음과 같이 지정해줍니다.

날짜 필드 속성 설정하기
날짜 필드 속성 설정하기
  • Name: 이름은 다른 곳과 구분되게 "신청일"이라고 지정합니다.
  • Tab order: 탭키 순서 9번을 부여했습니다.
  • Date format: 연월일을 어떤 형식으로 표시할 지 선택합니다. 연월일 순으로 표시하려면 YYYY-MM-DD 를 선택하면 됩니다.
  • Dropdown: 날짜를 직접 입력하는 대신에 드롭다운 버튼(▼)을 눌러서 달력이 나오게 하려면, "Yes"를 선택합니다. 
  • 그 밖에, 입력 가능한 날짜의 최소값( Date min), 최대값(Date max ), 기본값(Default date) 등을 지정할 수 있습니다. 

양식 파일 배포

파일을 받아 사용하는 사람은 양식을 수정하면 안 되니, 저장하기 전에 툴바에서 '디자인 모드'를 끈(Off) 다음, 리브레오피스 라이터 파일(ODT)로 저장하고 배포합니다.  이 글에서 사용된 양식 파일(ODT)을 다운로드해서 확인해보세요.
 

PDF 파일 배포

리브레오피스가 한/글보다 좋은 점은, PDF로 저장해도, 양식 입력이 가능하다는 점입니다. PDF 파일로 배포하려면, 메뉴에서 File > Export As > Export Directly as PDF 를 선택하여 PDF 파일로 저장합니다. 

PDF 파일로 최종 저장된 입력 가능한 양식(동아리 신청서)을 확인해보십시오.
(주의) PDF 뷰어에 따라서 약간씩 다르게 나올 수 있습니다. 저는 PDF24 Reader, Microsoft Edge, Chrome, Firefox, Adobe Acrobat Reader DC 에서 확인해보았습니다. 

2023-08-28

AWS Certified Cloud Practitioner 자격 시험 후기

지난 번에 Google Cloud Certified Cloud Digital Leader 시험을 치르고 나니, 아무래도 시장에서 가장 많이 쓰이는 클라우드 서비스인 AWS를 무시할 수는 없겠다는 생각이 들었습니다. 시험만 계속 봐야 하나 고민하다, 결국 AWS의 가장 기본 자격증인 AWS Certified Cloud Practitioner (CLF-C01) 시험을 준비하였고, 8월28일 월요일 오전 8시에 오늘 시험을 치르고, 그 자리에서 합격(Pass) 결과를 확인했습니다! 

CLF-C01 시험을 준비하면서 느꼈던 몇 가지 소회들을 정리해봅니다. 

출제 범위


Google Cloud Certified Digital Leader와 비교


구글 클라우드 디지털 리더는 확실히 "리더" 계층에 맞추어져 있다는 것을 알 수 있습니다. 구글은 구체적인 클라우드 기술에 앞서, 모든 종류의 혁신과 디지털 혁신, 데이터 혁신, 혁신 마인드셋 등을 말합니다. 반면 아마존은 클라우드로 인한 비즈니스 혁신 이야기가 맨 끝에 조금 나옵니다. 대신 조금 더 구체적인 서비스와 기능에 대한 질문이 많이 나옵니다. 
GCP 주제 영역 출제 비율 CLF-01 주제 영역 출제 비율
Digital Transformation with Google Cloud ~10% Cloud Concepts 26%
Innovating with data and Google Cloud ~30% Security and Compliance 25%
Infrastructure and application modernization ~30% Technology 33%
Google Cloud security and operations ~30% Billing and Pricing 16%
합계 100% 합계 100%

업데이트되는 버전과 비교


현재의 CLF-C01 시험은 2023년 9월 18일자로 종료되고, 9월19일부터는 업데이트된 버전인 CLF-02 시험이 나옵니다. 그러나, 제가 봤을 때, 두 개의 차이는 크지 않아 보입니다.
CLF-C01 주제 영역 출제 비율 CLF-C02 주제 영역 출제 비율
Cloud Concepts 26% Cloud Concepts 24%
Security and Compliance 25% Security and Compliance 30%
Technology 33% Cloud Technology and Services 34%
Billing and Pricing 16% Billing Pricing and Support 12%
합계 100%   100%

AWS에는 서비스의 종류가 200가지가 넘는데, 그 이름과 특징을 다 외우기는 어렵습니다. 그리고, 시험 준비 자료에서도 어떤 서비스까지, 어느 수준에서 나오는지가 애매하게 안내되어 있어서, 계속 공부하면서, 새로운 서비스를 익혀나가다 보니, 범위가 점점 넓어지는 문제가 있었습니다. 

시험 준비 자료  


자료의 종류가 너무 많아 상당히 혼란스러웠습니다. 제 생각에 꼭 봐야 하는 자료는 중요라고 표시했습니다. 그리고 유료 서비스는 이용하지 않아도 될 것 같습니다. 저는 시험을 CLF-C01로 보았지만, 앞으로 시험 보실 분들을 위해 CLF-C02 자료가 있는 경우 새로운 링크를 걸었습니다. 

AWS에서 제공하는 자료들


AWS Skill Builder의 My courses 화면
AWS Skill Builder의 My courses 화면

  • 종합 시험 준비 안내서 PDF (CLF-C02 기준) (중요)

    자세한 시험 범위, 시험 형식, 범위 안에 들어가는 기술과 범위에 안 들어가는 기술이 명확히 구분되어 있습니다. CLF-C01 시험 안내서에는 범위에 안 들어간다고 명시적으로 나열된 것이 없어서 공부할 때 어려움이 있었는데, 이제 좀 명확해졌네요.

  • 공식 시험 준비 표준 동영상 과정 (CLF-C01 기준)

    도대체 이런 과정을 왜 만들었는지 모르겠습니다. 시험 보는 요령과, 수박 겉핥기 식의 내용 설명이 있는데, 시간 낭비라고 느껴졌습니다. 


  • 공식 시험 준비 향상 동영상 과정 (CLF-C01 기준) (유료)

    이건 월 29달러 구독을 해야 수강 가능한 유료 프로그램입니다. 저는 이런 것 듣지 않아도 충분히 시험 준비가 가능했습니다. 


  • AWS Cloud Practitioner Essential 과정 (매우 중요)

    이게 핵심입니다. 반드시 들어야 합니다! 11개의 모듈과 무려 80개의 레슨으로 구성되어 있고, 1회의 마지막 종합 시험이 들어있습니다. 4시간 과정이라고 안내되어 있는데, 4시간으로는 택도 없습니다. 저는 과정 보면서, 노트 정리 하면서, 퀴즈 풀면서 공부하니 최소 2주 정도는 걸린 것 같습니다. 


  • 공식 연습문제 세트(CLF-C02 기준) (중요)

    이것도 반드시 해봐야 합니다. 연습문제를 풀어보면, 내가 잘 모르거나 애매하게 알았던 부분을 파악할 수 있습니다. 그런데 달랑 20문제밖에 안 됩니다.


  • 공식 연습 시험(CLF-C02 기준) (유료)

    위에 연습문제 세트는 무료인데, 연습 시험은 또 구독이 필요한 유료 서비스입니다! 아쉽지만 저는 하지 않았습니다. 


  • Cloud Essentials Knowledge Readiness Path (옵션. 도움이 됨)

    짧은 8개의 온라인 과정을 묶어서 러닝 패쓰를 만들어놓은 것입니다. 이 중에 저는 Billing and Cost, Job Roles, Getting Started, 그리고 아래에 나오는 Assessment를 공부했습니다. 


  • Cloud Essentials Knowledge Badge Assessment (중요)

    8개의 온라인 과정을 묶은 것에 대한 종합 평가 50문제입니다. 문제는 비즈니스 사용 예제(use case) 위주로 되어 있어, 실제 시험보다는 난이도가 약간 높은 편입니다. 그러나 문제를 풀어보는 것은 많이 도움이 되었습니다. 


  • Cloud Quest 롤플레잉 게임

    비즈니스 과제들을 AWS 서비스로 어떻게 해결하는지 솔루션을 찾아가는 게임입니다. 조금 해보다가, 너무 시간이 많이 소요되서, 그만 두었습니다. 시험 준비 과정에서 하기에는 너무 과한 서비스인 것 같습니다. 


  • AWS 화이트페이퍼 PDF (나름 도움됨)

    다 읽어볼 필요는 없습니다. 서비스 목록과 각 서비스의 내용들을 한 번 정리할 때, 읽어볼 필요는 있습니다. 그러나 여기에 전체 서비스 목록이 다 나온 건 아닙니다.

외부에서 제공하는 자료들

  • 외부 문제 은행: Exam Topics (많이 도움됨)

    지난 번 구글 시험 때에는 Exam Pro를 봤는데 이번에는 Exam Topics를 봤습니다. 문제 은행에 900개가 넘는 문제가 있는데, 무료로 볼 때에는 한 페이지에 10개씩만 보입니다. 저는 이걸 늦게 알아서 대략 60개 문제만 풀어보고 갔습니다. 그런데 거의 똑같은 문제가 시험에 꽤 나왔습니다. 미리 알았더라면 많이 풀어보고 갔을텐데...


  • 그 밖에 Exam Pro, Udemy 등등 

    인터넷에 정말 많은 유료 강좌와 자료가 있습니다. 그러나 굳이 그렇게까지 하지 않아도, 위의 무료 자료들만으로 충분한 것 같습니다. 

시험 접수와 응시


시험 접수


Pearson VUE라는 시험 대행 기관을 통해 접수합니다. 한국에서 시험 볼 수 있는 장소들이 몇 개 있는데, 날짜 선택지는 많지 않습니다. 미리미리 접수해야 합니다. 저는 시간 선택권이 없어서 아침 8시 시험을 봤습니다.

이번에도 집에서 온라인 감독관을 통해 시험보는 방법을 하지 않고, 직접 시험 장소(안양 범계역 앤아버 어학원)로 가는 방법을 선택했습니다. 

시험 응시 / 결과 통보


2시간이 주어지는데, 특별한 일이 없으면, 다 풀고, 따로 플래그 표시한 문제들만 한 번 더 풀어도 1시간 정도면 충분합니다.

답이 애매한 문제가 분명히 몇 개가 있습니다. 저는 대략 15개 정도가 약간 애매하게 느껴졌는데, 채점이 되지 않는 문제(unscored content)가 15개 출제된다고 합니다. 대략 그 정도 비율의 문제를 다 틀린다고 쳐도, 시험 통과에는 큰 무리가 없어 보입니다.

시험 결과는 끝나자마자 화면에 "Grade: Pass" 라고 뜹니다! 공식적인 결과는 업무일 기준 5일 이내에 이메일로 통보된다고 합니다. 



2023-07-18

Google Cloud Certified Cloud Digital Leader 자격 시험 후기

Lead the digital revolution with Google Cloud
Google Cloud Digital Leader 관련해서 Microsoft Designer가 만들어준 이미지: Lead the digital revolution with Google Cloud

운전 면허증 빼고는 자격증이라고는 없는 제가, 처음으로 구글 클라우드 플랫폼(Google Cloud Platform, GCP)의 클라우드 디지털 리더(Cloud Digital Leader) 자격증 시험을 준비하고, 다행히 시험에 통과했습니다. 

이 자격증 시험은 GCP의 모든 자격증 중에 가장 기본 자격증이고, 저같이 엔지니어나 개발자가 아닌 사람을 대상으로 디지털 전환, 클라우드 기술 전반에 대한 이해와, 구글 클라우드 제품에 대한 개괄적인 이해도를 테스트합니다. 그리고 조직에서 디지털 전환과 혁신을 하기 위해, 리더가 알아야 할 기본적인 디지털 안목을 갖추고, 기술자들과 대화를 할 수 있도록 하자는 목적이 있습니다. 

왜 더 널리 알려진 아마존 클라우드(AWS)나 마이크로소프트 애저(Microsoft Azure) 관련 자격증 대신 구글 클라우드를 선택했냐구요? AWS와 MS에서는 "리더"를 위한 자격증이 없습니다. AWS에는 비기술자를 위한 클라우드 프랙티셔너(AWS Certified Cloud Practitioner)가 있고, MS에는 애저 펀더멘털스(Microsoft Certified: Azure Fundamentals)가 있습니다만, 이름에서도 암시하듯이 비기술직군 실무자를 위한 자격증에 가깝습니다. 반면에 구글의 자격증은 의사결정을 하고, 조직을 리드하는 "리더"를 위한 소양을 기르는 것으로 설명이 되어 있어서, 냅다 지르게 되었습니다.


시험 접수


시험을 봐야겠다고 생각한 것은 몇 달 전이었는데, 공부를 슬렁슬렁 대충 하다 말다 하면서 버티고 있었습니다. 그러다가, 이래선 안 되겠다 싶어서 일단 시험 응시 접수부터 먼저 했습니다. 약 1주일 남겨놓고 시험 접수를 했습니다. 등록 비용 $99라고 나와 있는데, 이유를 모르겠는데 저는 $59.4을 결제했습니다. 그리고, 일주일 정도 바짝 준비를 했습니다. 준비하면서, 진작에 좀 더 알았으면 좋았을 걸 하는 점들을 정리해봅니다. 

시험 접수 확인 메일
접수가 되면 위와 같은 내용의 확인 메일이 옵니다.

시험은 집에서 온라인으로 치르는 방법과 테스트 센터에 가서 보는 방법이 있습니다. 집에서 보더라도, 책상도 깨끗이 치우고, 방도 완전히 비우고, 감독관에게 모든 것을 카메라로 검증받아야 하는데 요구조건이 상당히 까다롭습니다. 그래서 차라리 테스트 센터(우리 나라에 하나밖에 없어요!)에 가는 게 깔끔하겠다 싶어서 선정릉역에 있는 SRTC로 가서 시험을 보았습니다. 

기본 학습 자료 및 학습 방법


구글 제공 학습 자료


가장 중요한 학습 자료는 구글에서 자체적으로 제공하는 총 4개의 온라인 과정으로 이루어진 추천 학습 경로(Cloud Digital Leader Learning Path)가 있습니다. 시험을 보고 나서 느낀 건데, 대부분의 문제는 여기에서 제공된 동영상과 자료의 범위를 거의 벗어나지 않았습니다. 다시 말해, "교과서"를 중심으로 충실하게 준비하면 충분히 통과할 수 있는 수준의 문제들입니다. 비디오를 하나하나 보면서 메모도 하고, 자료도 찾아보고 해야 하니까, 최소한 한 과정당 하루 이상, 총 4일은 걸립니다. 

Learning path activities of Google Cloud Digital Leader.
디지털 전환, 데이터, 인프라와 앱의 현대화, 보안과 운영에 관한 주제로 총 4개의 학습 과정이 있습니다.

4개의 동영상 과정에는 학습자용 슬라이드(Student Slides)를 PDF 파일로 제공합니다. 이 파일들은 과정에 등록한 사용자에게만 배포되고, 배포 금지가 걸려 있어서 링크를 걸지는 못했습니다만, 가장 중요한 학습 자료입니다. 사실상 시험 문제는 이 슬라이드의 범위를 크게 벗어나지 않았습니다. PDF 파일을 적당한 크기로 축소 인쇄하여, 4개의 세트를 먼저 만들어놓고, 모든 학습 노트를 여기에 정리하는 것을 추천드립니다. 

구글이 제공하는 스터디 가이드라는 것도 있습니다. 여기에는 용어 사전과 구글 제품 목록이 있어서 정리용으로 괜찮습니다. 저는 시험 보고 나서 이 자료가 있는 것을 알았습니다. 

제3자가 제공하는 학습 자료


ExamPro에서는 무료 비디오 강좌와 1회 모의고사를 제공합니다. 24달러를 결제하면, 추가 모의고사를 볼 수 있고, 치트시트와 플래시 카드 형태의 학습 자료를 제공합니다.
ExamPro에서는 무료로 비디오 강좌와 1회 모의 고사를 제공합니다.

구글의 슬라이드들은 그림은 많고, 텍스트는 그다지 많지 않아, 이것만 봐도 되는지 약간 불안하긴 합니다. 그래서 인터넷을 좀 더 찾아서 익잼프로(ExamPro.co)라는 곳에 있는 무료 강의와 무료 연습 시험(1회)를 이용했습니다. 이 내용을 사라 워커 렙티치(Sarah Walker-Leptich)가 상세하게 구글 독스로 정리한 문서도 있습니다. 이것도 인쇄해놓고 공부하면 좋습니다. 내용은 구글 공식 학습 자료보다 난이도가 더 높습니다. 익잼프로 연습 시험 난이도도 실제 시험보다 높았습니다. 그러나, 익잼프로가 도움이 된 이유는, 피상적으로 시험을 위해 소량의 지식만을 암기하는 것보다는, 풍부한 주변 지식을 공부하는 것이 오히려 더 도움이 되기 때문입니다. 

그 밖에 유데미의 유료 강좌도 있고, 유료 학습 기회를 제공하는 것들이 꽤 있습니다만 그렇게까지 하지 않아도 시험은 통과할 수 있는 것 같습니다. 

생성형 AI 활용


준비하다 보면 명확히 이해가 안 되는 부분들이 있을 수 있습니다. 예를 들면 정확히 Cloud Run과 Cloud Functions의 용도 차이가 잘 와닿지 않아서, 생성형 AI에게 질문을 해보니 자세히 설명해주었습니다. 
구글 바드에게 App Engine, Cloud Runn, Cloud Functions의 차이에 대해 물어보았습니다.
생성형 AI에게 궁금한 점들을 물어보니, 상당히 도움이 되었습니다.

당일 시험 응시


시험장에는 공식 신분증과 본인 명의 신용카드를 지참하고 가야 합니다. SRTC에는 30분 정도 전에 도착했고, 주머니에 있는 소지품, 목걸이, 귀걸이, 시계, 휴대폰은 맡기고, 신발, 안경까지 다 검사한 다음 시험장에 들어가게 됩니다. 일찍 가면 예약한 시간보다 일찍 시작할 수 있습니다. 총 90분간 영어 (또는 일본어로) 진행되는 시험이고, 총 50~60문제가 컴퓨터로 객관식으로 출제됩니다. 시간은 부족하지 않고, 대략 30~40분이면 다 풀 수 있습니다. 좀 애매한 문제는 나중에 다시 확인하겠다는 표시(Mark for later review 였던가?)를 해놓으면 전체 문제 번호를 열람할 때 별표가 떠서, 그 문제들만 다시 점검해볼 수 있습니다. 전체 문제를 다시 풀어도 시간이 남아서, 그냥 대략 1시간 10분 정도 되는 시점에서 최종 제출했습니다. 

결과 통보


공식 결과는 구글 클라우드 측에서 상세 조사(당일 부정 행위 여부 등?)가 끝난 뒤, 7일~10일 후에 이메일로 보내준다고 합니다. 결과는 점수 없이 합격 여부만 알려줍니다. 그러나 당일, 웹어세서(webassessor.com) 홈페이지에 들어가보면 일차 결과가 아래와 같이 조그맣게 나옵니다.

종료된 시험에 대한 결과 확인
시험 종료시 확인 가능한 1차 결과

주로 클라우드 소프트웨어(SaaS) 위주로만 써왔던 저같은 사람에게 인프라스트럭처나 개발 환경, 플랫폼을 클라우드로 꾸민다는 것이 정말 중요하다는 것을 알게 된 계기였습니다. 디지털 전환에서도 가장 핵심 키워드 중에 하나가 "클라우드"입니다. 관심 있는 분들은 각 클라우드 서비스 공급자들이 제공하는 무료 등급(free tier) 또는 무료 체험(free trial) 서비스를 활용해서 경험해보시기 바랍니다.

2023년 7월 26일 추가: 시험 보고 9일만에 합격 통보 이메일이 왔습니다!

Google Cloud Certified Cloud Digital Leader 자격증 (신승식)