발표자료를 만들거나, 저처럼 블로그에 글을 쓸 때나, 누군가에서 설명하기 위해서 글 만으로는 부족하여, 사진이나 영상 같은 미디어 파일을 첨부합니다. 직접 눈으로 보는게 가장 이해가 빠를테니까요. 이럴 때 어떻게 하시나요?
저는 이렇게 합니다.
1단계 : 캡쳐 프로그램을 열고
2단계 : 웹페이지에 접속하여,
3단계 : 필요한 화면을 캡쳐한 다음
4단계 : 캡쳐된 파일을 붙여넣죠.
이렇게 하지 안아도 되는 방법이 있습니다.
1단계 : 웹페이지를 접속
2단계 : api를 호출.
3단계 : 리턴받은 결과를 본문에 링크.
이렇게 말이죠. 지금 보고 계신 블로그를 캡쳐해 보겠습니다.
cURL 명령 하나로, 캡쳐된 이미지의 주소를 얻었고, 그 이미지를 브라우저에서 바로 확인할 수 있습니다. 간단하죠?
GitHub 마켓플레이스에서 발견한 서비스를 이용한 건데요. HCTI API라고 합니다. 뭐 여러가지 언어를 지원한다고 하지만 중요한 건 아닙니다. ( 사실 모두 POST로 API를 호출하는 코드 예시를 들어놓은 것이라서 http 요청을 할 수 있는 모든 언어가 사용가능합니다. )
라이브 데모( https://htmlcsstoimage.com/#demo )를 한번 해보니 바로 이해가 가더라구요. HTML과 CSS로 렌더링 되는 페이지를 캡쳐해주는 서비스 입니다. 데모의 예시처럼 HTML과 CSS를 파라미터로 보내도 되고, 제가 위에서 보여드린 것처럼 웹페이지 주소를 바로 캡쳐를 해줍니다.
사용법은 간단합니다. 회원가입을 하게 되면 USER ID와 API Key를 발급 받게 되는데 그것을 이용해서 API를 요청하면 그 응답으로 캡쳐된 이미지 주소를 얻게 됩니다.
# API 요청
$ curl -X POST https://hcti.io/v1/image -u 'UserID:APIKey' -d url="https://google.com"
사실 평소에 캡쳐를 하는 것이 그렇게 귀찮은 일이 아니므로, 제가 예시로 든 사용성은 장점이 되지 않을 수 있지만, 화면 캡쳐를 프로그램 수행 중에 할 수 있다는데, 장점이 있는 서비스 같습니다. 가령 GitHub에 액션으로 빌드 되는 과정을 캡쳐해서 남겨 둔다거나, 빌드 된 후 테스트 과정에서 출력된 페이지를 캡쳐해서 보관해 두면, 테스트를 퇴근 후에 수행하더라도 다음날 와서 캡쳐화면을 확인하면 될테니 유용할 것 같습니다.
( 그리고 사실 셀레니움으로 큰 어려움 없이 구현할 수 있으니, 개발자들에게 사소한 귀찮음을 줄여주는 것에 불과한데도 사업 모델이 될 수 있다는게 흥미롭습니다. )