이번 학기에 수강하는 수업은 거의 모두 개인 발표로만 이루어지는 방식이였습니다. Canva 로 제작한 발표 PPT 를 사용해, 빔 프로젝터에 연결된 다른 컴퓨터에서 발표해야 하는 상황이 자주 생겼는데, 이때 Canva 의 아주 긴 공개 보기 링크를 옮기기는 쉽지 않습니다.
그래서 주로 bit.ly 와 같은 URL 단축 서비스들을 사용했는데, 나만의 URL Shortener 서비스가 있으면 어떨까? 해서 만들어봤습니다.
구현 방식
클라우드 다이어그램
원본 URL 을 특정 키와 매핑하여 특정 키에 대한 요청이 들어왔을 때, 원본 URL 로 리다이렉션 시키는 방식으로 구현했습니다. 이를 위해 2개의 Lambda Function, 키와 원본 URL 을 저장하기 위한 DynamoDB, 그리고 엔트리 포인트로 API Gateway 가 사용되었습니다.
정적 호스팅을 위해 S3 사용을 고민했으나, API Gateway 딴에서 이를 해결할 수 있다는 것을 새롭게 배울 수 있었습니다. 호스팅 해야하는 페이지는 JS 가 약간 가미된 HTML 로 구성되어 있었고, API Gateway의 Mock Integration 으로 해결하였습니다.
이는 특정 경로로 요청이 들어왔을 때, 직접 정의한 응답을 클라이언트로 전송할 수 있는 방식입니다. 이 방식을 사용해 불필요한 S3 비용을 줄이고, API Gateway 하나로 통합할 수 있다는 장점이 있습니다. 또한 HTTPS 를 통한 보안 연결도 자동으로 처리되고, 개인 도메인을 연결하는 과정에서도 이점을 가져갈 수 있었습니다.