박카스
박카스
🎻 루키 파트너
🚀 SNS 챌린지 달성자

[4주차 실습 가이드] AI로 만드는 나만의 블로그 포스팅 분석기


부제: 파이썬, 돌도끼에서 아이언맨 슈트가 되기까지

1. 실습 개요

우리는 오늘 '안티그래비티'라는 AI 도구를 사용해, 단순한 키워드 검색기블로그 분석 AI 비서로 진화시킬 것입니다. 복잡한 코딩은 AI가 합니다. 여러분은 "어떤 기능을 추가해줘"라고 명령(프롬프트)만 내리면 됩니다.

사전 준비 (필수 라이브러리)

터미널(Terminal) 창에 아래 명령어를 복사해서 입력하세요. 우리 도구에 필요한 부품들을 설치하는 과정입니다.

Bash

pip install customtkinter requests feedparser beautifulsoup4 openpyxl lxml

2. 변신 5단계 프로세스

[1단계] 뼈대 세우기: 디자인 리모델링

기존의 투박한 화면을 버리고, 탭(Tab) 화면을 가진 현대적인 디자인으로 바꿉니다.

⌨️ 입력할 프롬프트 (그대로 복사+붙여넣기)

Plaintext

지금부터 '네이버 블로그 지능형 분석기(BlogAnalyzerApp)'를 만들 거야. UI와 기본 설정을 먼저 잡아줘.

1. `customtkinter`를 사용해 1100x850 크기의 윈도우를 만들고, 화면을 [분석 실행], [API 설정] 탭으로 나눠줘.
2. [API 설정] 탭에는 다음 5가지 입력 필드를 만들어야 해.
   - 네이버 검색 API: Client ID, Client Secret
   - 검색광고 API: License Key, Secret Key, Customer ID
   - (설정은 `config_blog_analyzer.json`에 저장/로딩되게 해줘)
3. [분석 실행] 탭 상단에는 '블로그 ID', '분석 개수', '시작 위치(offset)'를 입력받는 Input Bar를 배치해줘.
4. 초기화 시 `[LOG] 이전에 저장된 API...` 같은 형식으로 로그를 남기도록 해줘.

🔍 1단계 핵심 코드 돋보기

  • ctk.CTkTabview: 화면을 여러 장의 카드(탭)로 정리하는 서랍장입니다.

  • config_blog_analyzer.json: 앱을 껐다 켜도 아이디와 비번을 기억하는 '기억 저장소' 파일입니다.


[2단계] 감각 기관 장착: 눈, 귀, 손 만들기

데이터를 가져오는 3가지 핵심 엔진(RSS, 크롤러, 검색광고 API)을 장착합니다.

⌨️ 입력할 프롬프트

Plaintext

데이터 수집 엔진 3개를 구현해줘. 특히 로그 포맷을 정확히 지켜야 해.

1. **RSS & URL**: `feedparser`로 `rss.blog.naver.com/{아이디}` 주소에서 글 목록을 가져오고, URL을 변환할 때 파라미터에서 `blogId`를 추출해서 `[LOG] 실제 블로그 ID 감지: {id}`라고 출력해줘.
2. **크롤링**: `BeautifulSoup`으로 제목/본문/해시태그를 가져와. `requests` 요청 시 예외가 발생하면 멈추지 말고 `[LOG] 크롤링 실패`를 출력하고 넘어가도록 예외처리를 꼼꼼히 해줘.
3. **검색광고 API**: `_get_keyword_stats` 메서드에서 API 요청 직전에 `[Debug BlogAnalyzer] API 요청 URL/Headers/Params` 로그를 상세히 찍고, 성공 시 `[LOG] API 응답 성공`이라고 남겨줘.

🔍 2단계 핵심 코드 돋보기

  • feedparser.parse(rss_url): 블로그에 새 글이 올라왔나 감시하는 '레이더'입니다.

  • requests.get(url): 네이버 서버에 "이 페이지 좀 보여주세요"라고 요청하는 '전화기'입니다.

  • BeautifulSoup(..., 'lxml'): 받아온 HTML 코드 덩어리에서 우리가 필요한 제목, 본문만 쏙쏙 발라내는 '생선 가시 바르는 전문가'입니다.


[3단계] 지능 탑재: 무엇이 중요한지 판단하기

단순히 글을 읽는 것을 넘어, 핵심 키워드가 무엇이고 내 글이 몇 등인지 파악하는 두뇌를 만듭니다.

⌨️ 입력할 프롬프트

Plaintext

키워드 분석 로직을 구현해줘.

1. **스마트 키워드**: 해시태그, 제목/본문 연관 명사, 제목 연속 단어 조합 순으로 5개를 뽑고 `[LOG] 식별된 해시태그: ...`, `[LOG] 스마트 키워드 추출 완료: ...` 로그를 남겨.
2. **후보군 통합**: 해시태그와 스마트 키워드를 합쳐 중복을 제거한 뒤 `[LOG] 통합 검색 후보군 생성 완료 (총 N개 키워드)`를 출력해.
3. **순위 추적**: `_get_blog_rank` 메서드를 만들어 특정 키워드로 내 블로그(URL 패턴 매칭)가 몇 위인지(100위 이내) 찾는 기능을 구현해.

🔍 3단계 핵심 코드 돋보기

  • _extract_smart_keywords: "이 글의 주제가 뭐지?"라고 고민하는 '요약 로봇'입니다. 단순히 많이 나온 단어뿐만 아니라, 제목과 본문의 연관성을 따집니다.

  • _get_blog_rank: 네이버 검색결과 1페이지부터 10페이지까지 뒤지면서 "월리를 찾아라"처럼 내 블로그 글을 찾는 '탐정'입니다.


[4단계] 심장 연결: 분석 프로세스 통합

만들어진 부품들을 연결해, 실제로 블로그를 분석하고 등급을 매기는 메인 로직을 완성합니다.

⌨️ 입력할 프롬프트

Plaintext

이제 `_analyze_blog_posts` 메서드에서 분석 흐름을 완성해줘. 로그 순서를 똑같이 맞춰야 해.

1. **제목 점검**: 제목 전체로 검색 후 1위면 `[LOG] > [확인] 제목 전체 검색 결과 1위로 정상 노출 중입니다.`라고 출력해.
2. **전수 조사**: `[LOG] 전수 조사를 시작합니다`를 출력하고, 후보 키워드들의 순위를 모두 확인해.
3. **선정 및 조회**: 가장 순위가 높은 '베스트 키워드'를 뽑고, 검색광고 API로 검색량을 조회해.
4. **기타 우수 키워드**: 베스트 외에도 10위 안에 든 키워드가 있다면 `[LOG] 기타 우수 키워드 발견` 로그를 남겨줘.
5. **결과 확정**: `[LOG] 최종 선정 키워드: ...` 로그를 남기고 데이터를 저장해.

🔍 4단계 핵심 코드 돋보기 (가장 중요!)

이 단계가 적용되면 코드는 아래 순서로 생각하게 됩니다.

  1. "내 글이 네이버에 등록은 됐나?" (제목 전체 검색)

  2. "어떤 검색어로 떴을 때 가장 상위권이지?" (키워드 전수 조사)

  3. "그 검색어는 사람들이 많이 찾나?" (검색광고 API로 검색량 조회)

  4. "그럼 이 글은 S급이다!" (최종 판단)


[5단계] 화룡점정: 시각화 및 영구 보존

결과를 예쁜 전광판(대시보드)으로 보여주고, 프로그램을 꺼도 데이터가 사라지지 않게 만듭니다.

⌨️ 입력할 프롬프트

Plaintext

마지막으로 UI 연결과 저장을 마무리해줘.

1. **UI 업데이트**: 분석될 때마다 대시보드 카운트(S/A/B/C/누락)와 Treeview에 데이터를 추가해. 베스트 키워드 옆에는 괄호로 `(검색량)`을 표시할지 결정해줘.
2. **엑셀 저장**: `_save_to_excel` 메서드에서 `[LOG] 엑셀 파일 저장을 시도합니다...` 등의 상세 로그를 남기게 해줘.
3. **앱 종료/초기화**: 앱 종료 시 JSON 자동 저장, '데이터 초기화' 버튼 클릭 시 `[LOG] 모든 분석 데이터가 초기화되었습니다.` 로그와 함께 데이터를 날리는 기능을 연결해줘.

🔍 5단계 핵심 코드 돋보기

  • analysis_results.json: 게임의 '세이브 파일'과 같습니다. 컴퓨터를 꺼도 여러분의 분석 기록을 안전하게 보관합니다.

  • Treeview: 엑셀처럼 표 형태로 데이터를 보여주는 화면 구성 요소입니다.


3. 실습 마무리 및 팁

축하합니다!

이제 여러분은 단순한 코드가 아니라, "블로그 마케팅 전문가의 뇌"를 가진 프로그램을 소유하게 되었습니다. 만약 위 프롬프트로 프로그램을 구현하셨지만, 완전한 결과물이 나오지않으셨을경우, 스터디시간에 배포드리는 최종완성본 파이썬 파일을 참조부탁드립니다.

한국 컴퓨터 화면의 스크린샷

사용 꿀팁

  • API 키가 없다면? 검색량 조회 기능(0으로 표시됨)만 작동하지 않을 뿐, 순위 분석 기능은 정상 작동합니다.

  • 누락(OMITTED)이 뜬다면? 제목 전체를 복사해서 네이버에 검색해보세요. 그래도 안 나오면 네이버 검색 로직에 의해 진짜로 누락된 것입니다. (글 수정 필요!)

  • 파란색(B급), 회색(C급)이 많다면? 글의 품질은 좋지만, 경쟁이 너무 치열한 키워드를 잡았을 가능성이 높습니다.

수고하셨습니다! 이제 여러분만의 비서를 마음껏 활용해 보세요!

3

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요