GPT야! 블로그 글 써줘

최창효·2025년 4월 26일
0
post-thumbnail

최근 비개발자 친구로부터 '네이버에 XXX에 관한 글이 올라오면 알림이 오도록 할 수 있는 방법이 있냐'라는 질문(을 가장한 부탁)을 받았습니다.

검색해보니 관련 네이버 API가 존재했고, AWS Lambda를 이용해 구현하면 될 거 같단 생각이 들어 GPT를 이용해 1시간 정도의 시간을 들여 해당 기능을 완성했습니다.

최근 Cursor + MCP조합으로 바이브 코딩을 해보는 등 LLM 모델을 개발에 적극적으로 활용해보고 있는데요. 이번에도 저는 AWS Lambda를 사용해본 경험이 없었지만 GPT의 도움으로 빠르게 기능을 구현할 수 있었습니다. 그러다 문득 현재의 LLM 모델이 어느 정도의 작업까지 해 줄 수 있는지에 대한 궁금증이 생겼고, 이를 확인하기 위해 앞서 얘기한 'AWS Lambda를 이용해 구현한 알림 기능'에 대한 블로그 포스팅을 부탁해 봤습니다.

제가 사용한 모델은 chatGPT의 GPT-4o입니다.


GPT가 작성해준 글

AWS Lambda로 네이버 키워드 알림 시스템 구성하기

네이버 블로그나 카페에 특정 키워드가 포함된 게시글이 올라왔을 때 알림을 받을 수 있도록 AWS Lambda를 활용한 키워드 감시 시스템을 구성하였습니다.
서버 없이 주기적으로 실행되며, Slack 또는 SMS로 알림을 전송하는 구조입니다.

전체 흐름 (pseudo code)

def handler():
    now = get_current_time("Asia/Seoul")
    if now.hour < 8 or now.hour >= 22:
        return

    results = naver_api.search("search keyword")
    recent_posts = []

    threshold = now - timedelta(hours=1)
    for post in results:
        if post.pub_date > threshold:
            recent_posts.append(post)

    for post in recent_posts:
        message = format_message(post)
        send_to_slack(message)
        # optionally: send_sms(message)

키워드 기반 검색

네이버 검색 API를 호출하여 특정 키워드가 포함된 블로그 또는 카페 게시글을 가져옵니다.
응답에는 게시 시간(pubDate)이 포함되어 있으며, RFC 822 포맷입니다.
이를 datetime으로 파싱한 후 기준 시각(현재 시각 - 1시간)보다 이후에 작성된 게시글만 필터링합니다.

시간 조건 분기

알림은 오전 8시부터 오후 10시까지만 전송되도록 제한하였습니다.
Lambda는 UTC 기준으로 실행되기 때문에, 한국 시간으로 변환하여 비교해야 합니다.
pytz 대신 zoneinfo를 사용하면 별도 패키지 없이 시간대를 처리할 수 있습니다.

알림 전송

알림 전송은 Slack Webhook을 사용하였습니다.
간단하게 HTTP POST 요청만으로 메시지를 보낼 수 있어 Lambda와 함께 사용하기 적합합니다.
SMS는 비용 문제가 있어 현재는 사용하지 않았으며, 필요 시 특정 키워드에 한해서 조건 분기로 추가할 수 있습니다.

자동 실행 설정

EventBridge를 통해 Lambda를 매 정시마다 자동 실행되도록 설정하였습니다.
사용한 cron 표현식은 다음과 같습니다.

cron(0 * ? * * *)

UTC 기준으로 실행되며, Lambda 내부에서 시간 조건을 한 번 더 확인합니다.

정리

  • 네이버 검색 API를 사용하여 키워드 기반으로 게시글을 수집하였습니다.
  • 게시 시간 기준으로 새 글 여부를 판단하였습니다.
  • 오전 8시부터 오후 10시까지만 알림을 전송하도록 구성하였습니다.
  • Slack Webhook으로 알림을 전송하였습니다.
  • EventBridge를 통해 Lambda를 주기적으로 실행하였습니다.

개선 여지

  • 중복 알림 방지를 위해 Redis 등을 활용한 캐싱 처리
  • 여러 키워드를 동시에 처리하는 구조로 확장
  • 하루 요약 리포트 전송 기능 도입 (예: 이메일, Slack 스레드 등)

전달한 프롬프트(들)

위 내용은 GPT가 한번에 만들어준 글은 아니고 제가 계속해서 수정을 요구해서 나온 결과물입니다. 제가 GPT에게 명령한(주고 받은) 내용은 아래와 같습니다. (GPT의 중간 답변은 모두 생략했습니다)

  • 안녕 나 너한테 글쓰기를 시킬꺼야. 너 https://velog.io/@qwerty1434 여기 링크 보여? 이게 내 블로그 링크거든? 이제 너는 해당 블로그의 주인이 되어 너가 블로그에 글을 쓸꺼야 알겠어? 무슨 글을 써야 할지는 차차 알려줄께
  • 글의 주제는 내가 오늘 너한테 물어본 'Lambda 멱등성 구현 방법' 에 적힌 글이야. 우선 너가 그냥 한번 글을 써봐. 써진 내용을 보고 이상한거 같으면 내가 큰 주제를 정해줄께
  • 아 너는 완전 잘못 이해하고 있어. 'Lambda 멱등성 구현 방법' 이라는 제목으로 존재하지만 거기서 너와 내가 나눈 주된 대화는 멱등성과 전혀 관계가 없었어. 오히려 naverAPI와 SlackAPI, SMS와 같은 내용이 있었지. 너는 이전 대화인 'Lambda 멱등성 구현 방법' 의 대화 내용을 볼 수 없는거야?
  • 다시 작성해봐
  • 여기에 https://velog.io/@qwerty1434 블로그의 평소 글 작성 방식을 참고하고 해당 스타일로 써줘
  • 말투나 어조도 https://velog.io/@qwerty1434에 있는 글과 비슷하게 써줘
  • 비공개 글은 참고하지 말아줘. 아래 링크글들의 어조 및 글 작성 방식을 참고해주면 좋겠어
    • (제가 이전에 포스팅한 게시글의 url링크를 5개 정도 전달해 줬습니다)
  • 다른것보다 어조 및 말투가 가장 이상한거 같아
  • 나는 모든 글을 존댓말로 썼는데 너는 왜 그걸 알지 못하지?
  • 다시 써줘
  • 나는 블로그에 코드 전체를 보여주지만 실제 코드가 아닌 pseudo code로 쓰는걸 선호해.
  • pseudo code를 기능마다 보여주지 않고 전체 pseudo code를 적고 거기 아래 설명을 적는 방법을 선호해
  • pseudocode는 영어로 써줘. if나 반복문 같은거는 코드를 그대로 써도 될거 같아

느낀점

아직까지 GPT에게 블로그 포스팅을 맡기기는 어려워 보입니다. 특히 '~를 바탕으로'라는 지시를 사람이 원하는대로 수행하지 못하는 것 같습니다. https://velog.io/@qwerty1434 블로그를 참고해서, 내가 오늘 너한테 물어본 'Lambda 멱등성 구현 방법' 에 적힌 글을 참고해서와 같은 요구는 해당 링크 및 글의 내용을 이해하고 그걸 바탕으로 동작하길 바라고 내린 지시였지만, GPT는 그렇게 행동하지 못했습니다.
차라리 제 블로그에 포스팅된 게시글 내용 전체를 전달하거나, 'Lambda 멱등성 구현 방법'에서 GPT와 나눴던 대화 전체를 전달하는 게 더 효과가 좋을거 같습니다.

또한 '~스타일로 글을 써줘'라는 명령을 상당히 어려워하는 느낌이였습니다. 물론 제 글에 특징이 없었을 수도 있고, GPT가 아닌 사람에게 같은 부탁을 했더라도 원하는 결과가 나오지 않았을 수도 있다고 생각하는데요. 어조 및 말투 정도는 캐치할 수 있을줄 알았지만 제가 직접 '모든 글을 존댓말로 썼다'고 얘기하기 전까지는 계속 반말로 글을 작성해 주는 모습을 보였습니다.

profile
기록하고 정리하는 걸 좋아하는 백엔드 개발자입니다.

0개의 댓글