{"id":42866535,"url":"https://github.com/dohyeon5626/serverless-functions","last_synced_at":"2026-01-30T12:48:14.079Z","repository":{"id":319591926,"uuid":"847326439","full_name":"dohyeon5626/serverless-functions","owner":"dohyeon5626","description":"개인 프로젝트 서버리스 함수 모노레포","archived":false,"fork":false,"pushed_at":"2026-01-10T12:06:31.000Z","size":489,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-11T03:24:05.642Z","etag":null,"topics":["aws-lambda","serverless"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dohyeon5626.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-25T14:06:19.000Z","updated_at":"2026-01-10T12:06:24.000Z","dependencies_parsed_at":"2025-12-18T18:06:22.133Z","dependency_job_id":null,"html_url":"https://github.com/dohyeon5626/serverless-functions","commit_stats":null,"previous_names":["dohyeon5626/licorice-functions","dohyeon5626/serverless-functions"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dohyeon5626/serverless-functions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohyeon5626%2Fserverless-functions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohyeon5626%2Fserverless-functions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohyeon5626%2Fserverless-functions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohyeon5626%2Fserverless-functions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dohyeon5626","download_url":"https://codeload.github.com/dohyeon5626/serverless-functions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dohyeon5626%2Fserverless-functions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28912915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-lambda","serverless"],"created_at":"2026-01-30T12:48:13.432Z","updated_at":"2026-01-30T12:48:14.071Z","avatar_url":"https://github.com/dohyeon5626.png","language":"JavaScript","readme":"# Serverless Functions\u003cimg src=\"https://github.com/user-attachments/assets/38618fea-ad8a-461c-b618-a485f844e35d\" align=left width=100\u003e\n\n![GitHub License](https://img.shields.io/github/license/dohyeon5626/serverless-functions?style=flat\u0026color=green) ![Api Gateway](https://img.shields.io/badge/api_gateway-running-blue) ![Event Bridge](https://img.shields.io/badge/event_bridge-running-blue)\n\u003cbr/\u003e\u003cbr/\u003e\n\n\u003cimg width=\"100%\" align=center alt=\"readme\" src=\"https://github.com/user-attachments/assets/c97dee6d-5fb4-46eb-af65-917e23af0a88\"\u003e\n\u003cbr/\u003e\u003cbr/\u003e\n\n각종 개인 프로젝트에서 쓰이는 서버리스 함수 모노레포입니다.\u003cbr/\u003e\n확장 프로그램, 단순한 웹 서비스, 배치성 프로그램 등 단순하고 작은 개인 프로젝트들을 위한 서버 기능이 필요할 때 사용합니다.\u003cbr/\u003e\n[Serverless 프레임워크](https://www.serverless.com)를 이용하여 개발되었습니다.\u003cbr/\u003e\n\u003cbr/\u003e\n\n---\n\n### baekjoon-problem-letter\n문제 추천 구독 정보 저장 및 이메일 발송, 배치를 통한 문제 추천 기능을 운영 중입니다.\n\u003e [Baekjoon Problem Letter](https://github.com/dohyeon5626/baekjoon-problem-letter)\n```\n1. 구독 생성 Api\n- POST /subscription\n\n2. 구독 취소 Api\n- DELETE /subscription\n\n3. 문제 추천 이메일 발송 배치\n- cron(0,30 21-23 * * ? *) // 매일 KST 06:00 ~ 08:30\n- cron(0,30 0-14 * * ? *) // 매일 KST 09:00 ~ 23:30\n\n4. 티어 업데이트 및 문제 업데이트 배치\n- cron(0 15 * * ? *) // 매일 KST 00:00\n- 티어 업데이트 관련 eventBridge // 요청 수 제한을 벗어나기 위해서 여러번에 걸쳐서 배치를 진행함\n```\n\n\n### github-html-preview\n깃허브 파일을 가져오기 위한 프록시와 Oauth를 위한 기능을 운영중입니다.\n\u003e [Github Html Preview Extension](https://github.com/dohyeon5626/github-html-preview-extension), [Github Html Preview Page](https://github.com/dohyeon5626/github-html-preview-page)\n```\n1. 깃허브 Content를 Header없이 Url로 가져오기 위한 Proxy Api\n- GET /github-html-preview/content/{token}/{proxy+}\n\n2. 깃허브 Content Proxy Api 사용시 Github Token을 숨기기 위한 Jwe 발급 Api\n- POST /github-html-preview/token\n\n3. 깃허브 Oauth를 위한 로그인 페이지 리다이렉트 Api\n- GET /github-oauth/authorize\n\n4. 깃허브 Oauth를 위한 토큰 정보 Api\n- POST /github-oauth/token\n```\n\n### monitoring-system\n각종 개인 프로젝트의 운영 상태를 모니터링하고 알림을 받기 위해 사용하고 있습니다.\u003cbr/\u003e\n특히 확장 프로그램의 경우, 대상 사이트의 선택자가 변경되면 구조적으로 오류가 발생할 수밖에 없는데, 이러한 문제를 빠르게 감지하고 즉시 수정하기 위한 용도로 활용하고 있습니다.\u003cbr/\u003e\n이와 함께 현재 사용자 수와 다운로드 수 등의 지표를 파악하는 데에도 사용하고 있습니다.\u003cbr/\u003e\n\u003e Github Html Preview Extension, Auto Gitkeep Plugin, Spreadsheets Filter Extension 서비스 정보를 제공합니다.\n```\n1. 현재 상태를 알림 발송 배치 (사용자 수, 확장프로그램이 의존하고 있는 웹 선택자의 변경 여부)\n- cron(10 0 * * ? *) // 매일 KST 09:10\n```\n\n### time-capsule\n디지털 타임캡슐 프로젝트에서 필요한 타임캡슐 정보 저장 및 조회, 이메일 발송 기능을 운영 중입니다.\n\u003e [Time Capsule](https://github.com/dohyeon5626/time-capsule)\n```\n1. 타임캡슐 생성 Api\n- POST /subscription\n\n2. 타임캡슐 상세조회 Api\n- GET /subscription/:id\n\n3. 타임캡슐 현황 Api\n- GET /subscription-status\n\n4. 타임캡슐 데이터 관련 작업 (생성 시 이메일 발송 및 예약 / 데이터 삭제 시 s3 객체 삭제)\n- 타임캡슐 dynamodb 테이블 stream\n\n5. 예약된 시간에 이메일 발송 작업\n- 이메일 발송 관련 eventBridge\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdohyeon5626%2Fserverless-functions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdohyeon5626%2Fserverless-functions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdohyeon5626%2Fserverless-functions/lists"}