본문 바로가기
Projects

[Slack AI Bot] ngrok으로 로컬 서버 외부 노출

by hxxyeoniii 2025. 11. 23.

ngrok

  • 로컬 서버를 인터넷에 임시로 노출시켜주는 터널링 서비스
  • Slack 서버가 localhost:8080에 직접 접근 불가하므로 ngrok 사용

ngrok 설정

ngrok 접속

 

 

 

 

로컬호스트가 떠있는지 확인

 

 

 

 

Slack Event Subscriptions 설정

Slack API 설정 : https://api.slack.com/apps

 

-> ngrok에서 포워딩된 url 입력

 

 

 

verified 확인 : Request URL 입력 시 슬랙이 바로 검증 요청을 보내기에 스프링에서 임시 엔드포인트 설정

package com.group.slack_ai_summary.slack.api.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
@RequestMapping("/slack")
public class SlackController {

    @PostMapping("/events")
    public Map<String, String> handleEvents(@RequestBody Map<String, Object> payload) {
        if (payload.containsKey("challenge")) {
            String challenge = (String) payload.get("challenge");
            return Map.of("challenge", challenge);
        }

        return Map.of("status", "ok");
    }
}

 

 

 

ngrok > http request 확인


ngrok 단점

포트포워딩 url 팀원간 공유 불가능 -> 공용 개발 서버 사용 필요(aws ec2 등).. AWS는 비용 발생 -> OCI 사용?


OCI = Oracle Cloud Infrastructure, 오라클 클라우드
oci 환경에서 k8s 클러스터 구축시 무료 사용 가능
-> 외부 ip할당 무료, nat gateway 무료, RAM 24Gb & 하드 200GB /MySQL 50GB 까지 무료