웹 개발
웹보안도구_02_첫 배포_Render 써보기
작성자 : Heehyeon Yoo|2025-12-02
# Blog# Security# Flask# Deployment# Render
개발 과정에서 가장 막힌 지점
암호 검사기 구현은 비교적 간단했지만 안심 링크의 악성 링크 판별 로직은 생각보다 까다로웠다.
어떻게 이것을 악성 링크로 판단할 것인가?
단순 키워드만으로는 부족했다. 오탐이나 누락도 최대한 줄여야 했다.
방향은 이렇게 잡았다.
- 단축 URL을 끝까지 추적해 최종 목적지를 먼저 확보
- 의심 키워드/패턴 검사로 1차 필터링
- 피싱 도메인 DB 대조로 2차 판단
피싱 도메인 DB라는 데이터에 의존한다는 한계는 있지만 우선은 이 방향으로 진행하고
추후 필요하다면 LLM 등을 올리는 것도 좋겠다 싶었다.
배포 환경 선택
Flask 기반의 가벼운 웹앱이라 Render를 선택했다.
배포 복잡도가 낮고 무료 플랜에서도 바로 확인할 수 있었다.
기준은 명확했다.
- 빠르게 올릴 수 있을 것
- 무료로 유지 가능할 것
- Python/Flask 배포 경험으로 남을 것
배포 과정에서 정리한 것들
배포를 하려면 “로컬에서 돌아가던 것”을 서버가 이해할 수 있는 형태로 바꿔야 한다.
아래 항목들을 먼저 정리했다.
requirements.txt정리Procfile설정- 실행 진입점(app) 명확히 분리
- 환경 변수(.env) 분리
키/토큰은 절대 코드에 넣지 않도록 기준을 잡았다.
첫 배포 결과
Render에 올린 뒤 실제 URL로 접속이 가능해졌다.
https://zeroroom.onrender.com
이제 이 프로젝트는 “실제 서비스로 접근 가능한 도구”가 됐다. 덕분에 다음 같은 결과를 얻었다.
- 로컬에서 끝나지 않는 프로젝트가 됨
- 실제 환경에서 오류를 발견할 수 있게 됨
- 증명 가능한 링크 확보
다만 Render 무료 플랜 특성상 슬립/재기동 이슈가 있어 운영 측면에서는 다른 배포 방법도 고민해야 한다.
기능을 개선하고 추가한다면 Render 배포만으로는 부족할 것 같다.