자전거 도로와 산책로 (팔당호반둘레길 1코스의 일부) |
3인용 자전거 |
자전거를 잠시 세워놓고 휴식 |
앞에 가는 다른 자전거 모습 |
둘레길 주변 숲과 평원 |
활짝 핀 코스모스들 |
둘레길에서 바라본 팔당호, 한강 |
둘레길에서 바라본 한강 모습 |
다육이 농원의 작은 화분들 |
다육이 농원의 빨간 선인장들 |
한강을 바라보며 차를 마실 수 있는 야외 테이블 |
야외 테이블 근처에 핀 흰 코스모스 |
자전거 도로와 산책로 (팔당호반둘레길 1코스의 일부) |
3인용 자전거 |
자전거를 잠시 세워놓고 휴식 |
앞에 가는 다른 자전거 모습 |
둘레길 주변 숲과 평원 |
활짝 핀 코스모스들 |
둘레길에서 바라본 팔당호, 한강 |
둘레길에서 바라본 한강 모습 |
다육이 농원의 작은 화분들 |
다육이 농원의 빨간 선인장들 |
한강을 바라보며 차를 마실 수 있는 야외 테이블 |
야외 테이블 근처에 핀 흰 코스모스 |
에어테이블(Airtable)은 관계형 데이터베이스를 기반으로 매우 쉽고, 매우 강력한 노코드 앱 개발 환경을 제공합니다. 스프레드시트와 유사하지만, 훨씬 다재다능하며, 워크플로우(workflow), 자동화, 데이터 시각화나 비즈니스 인텔리전스(BI)를 쉽게 구축할 수 있으며, 데스크톱 또는 모바일 앱 또는 웹을 쉽게 만들 수도 있습니다. 앞으로 Airtable과 관련한 다양한 이야기와 팁을 하나씩 정리해보겠습니다.
Airtable에서 {시작일}이라는 필드가 있다고 했을 때, 그 시작일이 현재를 기준으로 다음날인지, 전날인지, 아니면
이틀 후인지 등은 DATETIME_DIFF
함수를 통해 쉽게 파악할 수 있습니다.
SWITCH(
DATETIME_DIFF({시작일}, NOW(), 'days'),
2, '모레',
1, '내일',
0, '오늘',
-1, '어제',
-2, '그제' )
DATEADD
함수를 이용해
9시간을 더합니다.
DATEADD(NOW(), 9, 'hours')
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')),
{시작일}
)
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(
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,'담담날'
)
아주 예전부터 피아노로 즐겨 쳐왔던 곡입니다. 그런데 손으로만 치는 곡은 연주할 때마다 조금씩 달라지게 됩니다. 그리고 그것을 악보로 그리다 보면 또 생각이 계속 바뀌지요. 무엇이 최선일까? 이게 나을까 저게 나을까, 하나의 음표 가지고, 수 십 번을 바꿔가면서 고민합니다. 저같이 전문 작곡가가 아닌 사람에게는 이렇게 익숙한 곡도, 악보로 그리기 위해 엄청난 시간과 노력이 들어갑니다. 거의 일주일 정도 틈날 때마다 매달려서 겨우 그럴듯한 수준의 악보를 만들어냈습니다.
변진섭이 처음에 불렀었고, 한참 후에 유리상자가 리메이크해서 불렀습니다. 가을에 서둘러 온 초겨울 새벽녘에 찾아온 반가운 눈처럼 다가온 그대! 그러나 우울한 눈빛이 마음에 걸려서 조심스러운 마음이 노래에 잘 묻어나는 것 같습니다. 피아노 조금만 칠 줄 아는 분이라면, 아주 쉽게 연주할 수 있을 것입니다. 흔히 말하는 이지 피아노(easy piano) 스타일의 곡입니다.
최근에 힘든 일로 정말 시달렸습니다. 앞으로도 예정된 힘든 일들이 기다리고 있습니다. 그리고, 어느덧 한가위 명절 연휴를 눈앞에 두고 있습니다. 가족들이 모여서 따뜻한 정을 나누면서, 위로가 되고 사랑이 되어, 용기를 얻을 수 있는 시간이 되었으면 좋겠습니다. 제 스스로에게 위안을 주는, 그리고 덤으로 다른 사람들에게도 작은 울림을 전해주는 음악 작업들을 시간이 날 때마다 조금씩 해보겠습니다.
숙녀에게 - 하광훈 / 신승식 by Greg SHIN유리상자의 리메이크 곡, 숙녀에게(2005년). 이 곡을 듣고 피아노로 조금 더 클래시칼하게 편곡해보았습니다.
변진섭이 부른 원곡, 숙녀에게(1989년).
사용자가 편하게 입력할 수 있는 양식(form)이 있는 파일을 만들기 위해 ①(아래아) 한/글을 이용하는 방법, ②무료 리브레오피스를 이용하는 법과 ③무료 온라인 PDF 편집기를 이용하는 방법을 살펴보았습니다.
이번에는 PDF에 입력 가능한 양식을 넣는 대신에, 온라인 설문을 통해 응답을 수집하되, 수집된 결과물이 개인별 PDF 응답지로 저장되도록 해보겠습니다. 예를 들어, 동아리 가입 신청서는 온라인으로 아래와 같이 받고, 그 결과는 실제 가입신청서를 작성한 것처럼, PDF 파일로 생성되는 방식입니다.
제가 교육 운영 업무를 할 때 이런 경우가 있었습니다. 교육을 시작하기 전에 열심히 참여하겠다는 동의서를 개인적으로 다 받아야 했습니다. 주로 관공서 교육에서 많이 요구하죠. 교육 참여자 전원에게 설문을 실시해야 합니다. 현장에서 하는 교육은 참여자 10명에게 종이 10장을 나누어주고, 걷어야 합니다. 비대면 실시간 화상 교육을 한다면, 어떤 식으로든 설문지 파일을 전해주고, 개별 응답을 받고, 사진이나 첨부 파일로 받은 10개의 응답지를 다시 정리해야 합니다. 그 어느 경우도, 매우 귀찮은 일입니다. 그냥 온라인 설문으로 하면 되는데 말이죠.
이런 경우, 설문은 온라인 전자 설문으로 받고, 10개의 응답지는 알아서 PDF 파일로 개별 생성해준다면 편리하겠죠. 이렇게 하기 위한 몇 가지 방법을 앞으로 소개할 예정입니다. 오늘은 가장 널리 쓰이는 무료 온라인 설문 도구인 구글 설문지(Google Forms)를 이용하도록 하겠습니다.
입력 가능한 양식이 있는 문서, 특히 PDF 문서를 만들기 위한 여정을 가고 있습니다.
이번에는 별도의 프로그램 없이 그냥 온라인에서 입력 가능한 양식이 있는 PDF 문서를 쉽게 만들어주는 서비스를 살펴봅니다. 검색해보면 몇 가지 서비스들이 나옵니다. 예를 들면 DocFly, Sejda 등이 나오는데, 사실상 무료로는 제약이 너무 많아서 사용이 힘들게 되어 있습니다. 그래서 2023년 9월 12일 현재, 실제 무료로, 쓸만하게 양식을 만들 수 있는 온라인 서비스로 PDFescape를 이용합니다. 이후에 온라인 양식(form) 제작 툴을 이용한 좀 더 복잡한 방법들을 소개할 예정인데, 그걸 제외하면, 무료로, 가장 빠르고 간단하게 PDF 양식을 만드는 방법입니다.
기본적으로 온라인 PDF 에디터라고 보시면 됩니다. 구글링 해보면 온라인 PDF 에디터의 종류는 엄청나게 많습니다만, 그 중에서 PDFescape는 무료로, 입력 가능한 양식을 넣을 수 있다는 점에서 상당히 소중한 서비스입니다. 데스크톱용 에디터도 있는데, 시험판이어서 별로 추천하고 싶진 않습니다.
PDFescape에 아직은 양식이 없는 일반 PDF 파일을 업로드합니다.
Insert(추가) 버튼과 Form Field(양식 필드) 버튼을 눌러 양식 추가를 시작합니다. 이어서 Form Field Creation Tool(양식 필드 만들기 도구)가 나타납니다. Text, Checkbox, Radio button, Dropdown, Listbox 양식을 선택할 수 있습니다.
Form Field Creation Tool에서 Text 유형을 선택합니다. 한 번 유형이 선택되면, 별도로 중단시키기(disable) 전까지 계속 동일한 Text 양식을 추가할 수 있습니다. 성명, 휴대전화, 신청일, 신청자 성명 등에 모두 동일한 유형의 양식을 추가합니다. 마지막으로 이제 텍스트 필드 입력을 그만두기 위해 화면 상단에 Click here to disable. 부분을 누릅니다.
이제 각 텍스트 필드의 속성을 정합니다. 텍스트 필드 하나를 선택하고, 편집(🖉)을 누르고, 다시 속성(🔧)을 선택하면, 현재 선택한 필드의 속성창이 나옵니다. 사실상 아무 것도 안 하고, 다 기본값으로 놔도 상관은 없는데, 다른 필드와 알기 쉬운 이름으로 구분하기 위해, Name 속성에 적절한 이름을 넣어줍니다. 성명 필드에는 성명, 휴대전화 필드에는 휴대전화 이런 식으로 넣으면 됩니다.
Form Field Creation Tool(양식 필드 만들기 도구)에서 이제 Radio button 유형을 선택합니다. 작업용 파일에 남, 여, 기타 세 개의 선택 옵션이 있으므로, 연달아 세 개의 단추를 만들고, 화면 상단의 Click here to disable.을 눌러서 중단합니다. 이제 옵션 하나하나에 속성값을 넣어줍니다. 먼저 "남" 버튼을 선택하고, 속성창을 열어, Name에는 "성별"이라고 넣고, Export Value에는 "남"이라고 넣습니다. 세 개의 라디오 버튼 모두 공통으로 "성별"이라는 Name 값을 공유하고, 대신 Export Value만 각각 다른 값, "남", "여", "기타"를 넣어줍니다.
성인 회원, 청년 회원, 청소년 회원 중에 하나만을 선택한다는 점에서 라디오 버튼과 비슷하지만, 드롭다운(Dropdown) 필드는 시각적으로 공간을 절약하고, 최종적으로는 선택된 것만 보이도록 한다는 점에서 차이가 있습니다. Name에는 적당히 구분되는 "회원구분"이라는 값을 넣어주었고, 중요한 것은 Field Options에 선택 가능한 목록값을 넣어주는 것입니다. 성인, 청년, 청소년이라는 입력값을 한 줄씩 넣어줍니다.
가입경로는 여러 개의 경로를 복수로 선택 가능하므로, 체크상자로 구현합니다. Form Field Creation Tool에서 Checkbox를 선택합니다. 인터넷 검색, 지인 추천, 홍보 전단지 앞에 체크상자를 하나씩 넣어주고, 마지막으로 Click here to disable.을 눌러서 중단합니다. 체크상자는 각각의 상자마다 서로 다른 Name과 Export Value를 넣어주면 됩니다. 예를 들면, 인터넷 검색 상자에는 Name과 Export Value에 모두 "인터넷 검색"을 넣고, 나머지 상자도 각 상자에 맞는 값을 넣어줍니다.
입력 양식을 다 넣고, 속성도 다 맞줘주었다면, 마지막으로 왼쪽에 있는 디스크 모양의 저장 버튼(💾)을 눌러 저장하고, 마지막으로 다운로드 버튼(⭳)을 눌러 내 컴퓨터로 내려받습니다. 완성된 양식은 여기에서 볼 수 있습니다. 그리고 이제 가지고 있는 PDF 뷰어로 열어보면, PDF 양식에 입력이 가능한 것을 알 수 있습니다.
PDFescape는 매우 간편하게 입력 가능한 PDF 양식을 생성할 수 있습니다. 하지만, 몇 가지 제약이 있습니다.
그럼에도 불구하고, PDFescape는 무료로, 온라인으로, 바로 PDF 입력 양식 문서를 만들 수 있다는 점에서 상당히 유용한 서비스입니다. 다음에는 온라인 양식 입력 툴, 즉 설문조사 툴을 이용해서 PDF 입력 양식을 생성하는 방법을 알아보겠습니다. 감사합니다.
만약 이 노래를 잘 안다면, 라떼는 말이야를 가끔씩 외치는 구세대임을 드러내는 것인지도 모르겠습니다. 그렇다고 제가 한참 자랄 때 유행했던 노래는 아니고, 무려 1961년에 만들어진 곡입니다.
리브레오피스(LibreOffice)는 대표적인 오픈 소스 무료 오피스 스윗입니다. 오늘은 그 중에 워드프로세서인 라이터(Writer)를 이용하여, 입력 가능한 양식(fillable forms)이 있는 ODT(OpenDocument Text)파일을 만들어 보겠습니다. ODT 파일은 라이터 뿐만 아니라, 마이크로소프트 워드, 구글 문서(Google Docs), 한/글에서 열고, 편집할 수 있습니다.
라이터에는 앞서 살펴보았던 한/글보다 입력 가능한 양식 컨트롤(form controls)의 가짓수가 훨씬 많고, 속성도 더 상세하게 지정할 수 있습니다. 그 중에 자주 쓰이는 컨트롤만 가지고, 아래와 같은 동아리 가입 신청서 양식을 만들어보겠습니다.
먼저, 양식 컨트롤을 계속 사용해야 하니, 툴바를 보이도록 하고 고정시켜 놓습니다. 메뉴에서 View > Toolbars > Form Controls 를 선택하면 툴바가 보입니다.
툴바가 보였다 안 보였다 하면 불편하니 툴바에서 마우스 오른쪽 버튼을 누르고, Lock Toolbar Position을 선택해서 위치를 고정합니다.
리브레오피스에는 매우 많은 양식 컨트롤이 있습니다. 그 중에 현실적으로 자주 쓰이는 것들은, 텍스트 박스, 체크 박스, 옵션 버튼, 리스트 박스, 콤보 박스, 날짜 필드, 숫자 필드 정도입니다. 중요 컨트롤은 아래 예제에서 자세하게 설명합니다.
한/글과 달리 리브레오피스 라이터에는 날짜만 받을 수 있는 양식 컨트롤 날짜 필드(Date Field)가 있고, 달력을 통해 날짜를 선택하게 할 수도 있습니다. 신청일의 속성은 다음과 같이 지정해줍니다.
리브레오피스가 한/글보다 좋은 점은, PDF로 저장해도, 양식 입력이 가능하다는 점입니다. PDF 파일로 배포하려면, 메뉴에서 File > Export As > Export Directly as PDF 를 선택하여 PDF 파일로 저장합니다.
PDF 파일로 최종 저장된 입력 가능한 양식(동아리 신청서)을 확인해보십시오.
(주의) PDF 뷰어에 따라서 약간씩 다르게 나올 수 있습니다. 저는 PDF24 Reader, Microsoft Edge, Chrome, Firefox, Adobe Acrobat Reader DC 에서 확인해보았습니다.
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 주제 영역 | 출제 비율 | 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% |