본문 바로가기
채팅형 멀티에이전트 라우팅 설계 - 수정 요청은 어느 에이전트에게 갈까 3줄 요약채팅창 하나 뒤에 전문 에이전트 여러 개(콘텐츠 생성, 사이트 안내, 외부 발행 등)를 두는 구조에서, 오케스트레이터의 진짜 일은 첫 분배가 아니라 이어지는 대화를 올바른 에이전트에게 계속 잇는 것이에요.핵심은 세션 상태에 활성 에이전트(active_agent)와 진행 중 작업 요약을 저장하고, 매 메시지마다 "이 메시지는 그 작업의 연장인가, 새 주제인가"를 분류하는 것.여기에 에이전트별 대화 스레드 분리, 제어권 반환(done/handback) 시그널, 발행처럼 위험한 액션 앞 사용자 확인까지 더하면 골격이 완성됩니다.채팅창은 하나, 뒤에는 에이전트 여러 개요즘 구상 중인 구조가 있어요. 사이트에 채팅창을 하나 두고, 그 뒤에 전문 에이전트를 여러 개 두는 거예요.오케스트레이터 — 사용자와 .. 2026. 7. 24.
매일 새벽 5시, AI가 내 사이트에 PR을 보낸다 — 클로드로 콘텐츠 공장 만들기 내가 운영하는 놀랩(nolab.kr)은 심심풀이 테스트·퀴즈·게임을 모아둔 사이트다. 콘텐츠를 계속 새로 올려야 사는 사이트인데, 매일 소재를 찾고 만드는 게 일이었다. 그래서 이걸 통째로 자동화했다. 지금은 이렇게 돌아간다:매일 새벽 5시, 클로드 클라우드 에이전트가 알아서 요즘 유행을 조사하고, 콘텐츠 2~3개를 코드로 만들어 GitHub PR로 보낸다. 나는 아침에 폰으로 PR을 열어 실제 동작하는 프리뷰를 눌러보고 — Merge(배포) / 코멘트(수정 요청) / Close(폐기) 중 하나를 누른다. 끝. 이 글은 그 파이프라인을 만든 전체 과정이다. 뭘 준비해야 하는지, 어떤 순서로 만들었는지, 클로드에게 실제로 어떤 프롬프트를 줬는지, 수정·커밋·스케줄링이 어떻게 굴러가는지 전부 적었다.0. 전.. 2026. 7. 20.
새로 만든 웹사이트, 네이버 검색에 안 나온다면? 서치어드바이저 검색등록 직접 해본 후기 (robots.txt·사이트맵까지) 안녕하세요. 심심풀이 테스트 사이트 놀랩(nolab.kr)을 운영하고 있는 개발자입니다.사이트를 만들고 나서 한동안 이상한 점이 있었어요. 구글에서는 "정신연령 테스트", "치킨 이상형 월드컵" 같은 걸 검색하면 제 사이트가 잡히는데, 네이버에서는 아무리 검색해도 안 나오는 겁니다. 사이트 주소를 통째로 쳐도 안 나와요.알고 보니 이유는 간단했습니다. 구글은 웹을 알아서 돌아다니며 새 사이트를 찾아내지만, 네이버는 사이트 운영자가 직접 "제 사이트 여기 있어요"라고 등록해줘야 수집을 시작하는 경우가 많더라고요. 그 등록 창구가 바로 네이버 서치어드바이저(searchadvisor.naver.com)입니다.한국 사용자 검색의 상당수가 여전히 네이버에서 일어나기 때문에, 한국어 사이트라면 이 작업은 선택이 아.. 2026. 7. 19.
검색의 68%가 클릭 없이 끝난다 — SEO 다음은 AEO다 3줄 요약2026년 초 구글 검색의 68%가 제로클릭(링크를 하나도 안 누르고 끝나는 검색)입니다. AI 오버뷰가 답을 화면 안에서 다 보여주기 때문입니다.ChatGPT는 무료 사용자 답변에 광고를 붙이기 시작했고 한국도 파일럿 대상에 포함됐습니다. 네이버는 AI브리핑에 인용되는 창작자 3,000명에게 연 200억을 지원합니다.세 신호가 가리키는 방향은 하나 — 콘텐츠 경쟁의 전장이 검색 결과 페이지에서 AI 답변 안(AEO)으로 옮겨가고 있습니다.마케팅 리포트에서 같은 그림을 또 봤다얼마 전 ChatGPT가 어떤 페이지를 인용하는지 네트워크 트래픽 분석 글을 정리했었는데, 이번엔 전혀 다른 동네에서 같은 그림을 봤어요. 소셜마케팅코리아(소마코)의 SMK 트렌드 리포트 2026년 7월호인데, 광고·플랫폼.. 2026. 7. 17.
ChatGPT는 어떤 글을 인용할까? 네트워크 트래픽으로 밝혀진 소스 선택 방식 3줄 요약ChatGPT는 4개 파이프라인(serp·labrador·bright·oxylabs)으로 웹 소스를 가져오고, 개인 블로그는 사실상 스크레이퍼 티어에서 경쟁합니다.how-to·정의형 질문은 아예 검색을 안 하고 학습 데이터로 답합니다. 그런 키워드에 글을 써도 인용될 기회 자체가 없습니다.핵심 수치·정보를 JavaScript 뒤에 숨기면 모델이 읽기를 포기하고 남의 페이지(G2 같은 리뷰 사이트)를 대신 인용합니다.왜 이 글을 파봤나블로그를 운영하면서 요즘 제일 궁금했던 게 "구글 말고 ChatGPT 같은 AI 검색에는 어떻게 노출되지?"였어요. 검색해보면 다들 비슷한 얘기를 해요. 레딧 해라, 리스티클 써라, 좋은 콘텐츠 써라. 근데 그 근거가 뭐냐고 물으면 다들 서로를 인용하고 있죠.그러다 .. 2026. 7. 17.
AI 시대의 진짜 병목은 코드가 아니라 이해다 요즘 에이전트한테 코딩을 맡기다 보면 이상한 기분이 들 때가 있습니다. 분명 코드는 어제보다 훨씬 빨리 나오는데, 프로젝트가 그만큼 빨리 굴러가는 느낌은 아니라는 겁니다. 이 찝찝함의 정체를 정확하게 짚어주는 글을 긱뉴스에서 발견했습니다. Notion에서 일하는 Geoffrey Litt의 에세이 "Understanding is the new bottleneck"인데, 제목 그대로 이제 병목은 코드 생성이 아니라 인간의 이해 속도라는 이야기입니다.코드는 쏟아지는데 이해가 못 따라간다에이전트가 만들어내는 코드의 양은 계속 늘어나는데, 사람이 그걸 소화하는 속도는 그대로입니다. 글에서는 이걸 코드 더미가 사람 주변에 계속 쌓여가는 이미지로 표현합니다. diff를 한 줄씩 읽는 전통적인 방식으로는 에이전트의 작.. 2026. 7. 16.
클로드 데스크탑으로 매일 아침 브리핑 자동화하기 — Gmail·캘린더·Notion 연동 실전 후기 클로드 데스크탑으로 매일 아침 브리핑 자동화하기출근하면 제일 먼저 하는 일이 뭘까요? 저는 메일함을 열고, 캘린더를 확인하고, 어제 하다 만 일을 떠올리는 것부터 시작했습니다. 이 루틴에만 매일 15~20분씩 쓰고 있더라고요.지금은 아무것도 안 합니다. 클로드 데스크탑(Claude Desktop)의 예약된 작업(Scheduled Tasks) 기능으로 브리핑을 걸어두면, 매일 오전 9시에 클로드가 스스로 메일과 캘린더, Notion을 확인해서 브리핑을 만들어둡니다. 저는 완성된 브리핑을 읽기만 하면 됩니다.이 글에서는 제가 실제로 매일 받고 있는 아침 브리핑 자동화 세팅을 공유합니다. 어떤 상황에서 쓰면 좋은지, 어떤 서비스를 연결했는지, 프롬프트는 어떻게 작성하는지, 예약 작업은 어떻게 거는지까지 순서대.. 2026. 7. 16.
자동화 연차 관리 시스템 만들기 https://blog.naver.com/PostView.naver?blogId=coderlee_&logNo=223716091115&categoryNo=21&parentCategoryNo=&from=thumbnailList [직장] 무료 연차 신청 프로그램: 노션, 구글 스프레드시트, 구글 폼을 활용한 효율적인 관리 솔1. 연차 관리의 필요성과 프로그램 개발의 배경 연차 관리는 직원 만족도를 높이고 조직의 운영 효율성을 ...blog.naver.com 현재 네이버 블로그에 개발일지를 따로 올리고 있어서 위 블로그에서 글을 보시는게 예제파일도 있어서 더 좋을 거같아요. (25. 02. 26 수정 / 아래는 2024년 이전 글) 우리 회사는 연차를 관리할 수 있는 시스템이 없다.지금까지는 연차를 쓰려면 대표.. 2025. 2. 26.
[디스코드 봇] 롤 전적검색기능 만들기 - 1 주말에 심심해서 전적검색 디스코드봇을 만들어 보기로 했다. 정보가 많이 없어서 일일히 라이엇파일을 뜯어보고 만들었다. 만들어보고 싶으면 천천히 따라해보면 좋을 듯 하다. 먼저 디스코드봇을 만들어야하고, 라이엇 api의 토큰을 받아야한다. riot api 토큰을 받기 위해 먼저 riot 개발자 페이지로 가서 토큰을 받아주었다. Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ongoing effo.. 2024. 3. 17.
프로그래머스 '[PCCP 모의고사 #1] 1번 - 외톨이 알파벳' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/20847/lessons/255900?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(input_string): words = [input_string[0]] for word in input_string: if word != words[-1]: words.append(word) words = {answer:True for answer in words if words.count(answer) > 1} answer = ''... 2024. 3. 15.
pm2 flag로 5분마다 재실행시키기 백그라운드로 파이썬 파일 실행 관리하기 해결한지는 좀 됐지만 그래도 잊어버리지 않게 정리하려고 한다. AWS에서 프로세스를 1~2개를 관리할때는 문제가 생기지 않았는데 4~5개를 관리하려고 하니까 문제가 많이 생겼다. 처음엔 nohup으 beomcoder.tistory.com 이렇게 만들고 나서 새로운 버전에 대한 프로젝트를 진행하고 있었다. 기존의 방식은 24시간동안 계속 돌아가면서 코드안에서 스케줄링으로 일정시간마다 실행시키는 방법이었는데, 이게 좋지 않다고 판단했다. 그래서 코드를 빨리 끝내고 백그라운드단에서 코드를 주기적으로 다시 실행시키는 새로운 방식으로 코드를 전부 새로 짜게 되었다. 테스트를 다하고 서버에 적용시켜보려고 pm2에 업로드를 시키게 되었다. 기존의 방식으로는 문제가 없었는데, 꺼.. 2024. 3. 6.
대용량 처리에는 for 루프보다 numpy, df 벡터를 사용해보자. 학교에서 거의 처음으로 배우는 루프는 거의 모든 프로그래밍 언어에서 루프에 대해 배운다. 그래서 기본적으로 반복 작업이 있을 때마다 루프로 구현을 했던것 같다. 최근에 데이터를 처리하게 되면서 많은 수의 반복(수백만/수십억 행)으로 작업할 때 루프를 사용하는 것은 부담이 됐었다. 그래서 배웠지만 잘 안쓰고 있던 numpy를 사용하여 일을 진행하게 되었다. 여기에 대해서 잊어버리지 않게 적어보려고 한다. import time start = time.time() # iterative sum total = 0 # iterating through 1.5 Million numbers for item in range(0, 1500000): total = total + item print('sum is:' + str.. 2024. 1. 11.
프로그래머스 '2024 KAKAO WINTER INTERNSHIP가장 많이 받은 선물' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(friends, gifts): history = {name: {'friends': {k: 0 for k in friends}, 'score': 0} for name in friends} next_month_gift = {name: 0 for name in friends} for gift in gifts: give, get = gift.split() history[give].. 2024. 1. 8.
프로그래머스 '롤케이크 자르기' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(topping): ans, front, end = 0, {}, {} for t in topping: end[t] = end.get(t, 0) + 1 for t in topping: end[t] -= 1 front[t] = 1 if end[t] == 0: del end[t] ans += len(front.keys()) == len(end.keys()) # if len(fro.. 2024. 1. 3.
백그라운드로 파이썬 파일 실행 관리하기 해결한지는 좀 됐지만 그래도 잊어버리지 않게 정리하려고 한다. AWS에서 프로세스를 1~2개를 관리할때는 문제가 생기지 않았는데 4~5개를 관리하려고 하니까 문제가 많이 생겼다. 처음엔 nohup으로 백그라운드 관리하였는데 프로세스가 많이 생기고 백그라운드에서 돌아가다 보니까 메모리를 많이 잡아먹어 AWS 서버가 자주 꺼지는 일이 생겼다. 이것저것 찾아보다가 결국엔 pm2와 crontab, shell script로 해결했다. 해결방법은 마지막에 나와있어 바로 알고 싶으면 제일 아래로 내려가면 된다. 내가 해결하기 위해 노력한 방법들을 차례대로 기술해보려고 한다. 처음엔 nohup으로 자체로 해결해보려고 했다. 하지만 nohup만으로는 한계가 있었다. 그래서 다음으로 시도한 방법은 nohup으로 백그라운드.. 2023. 12. 21.
Fast API로 백엔드서버 만들기 [1] 게시판을 보니 2월에 Fast API를 공부했던 흔적이 있었다. 그 당시에는 서버를 빠르게 만들어야하니 익숙하지 않은 프레임워크보다 flask로 만드는게 편해서 잠시 접어두었다. 그래서 flask로 백그라운드에서 일정시간마다 유저정보를 취합해서 데이터를 업데이트를 하는 서버를 만들고 관리하고 있었다. 조금씩 내 업무 영역에 넓혀져서 프론트와 통신하는 서버단에서 내쪽으로 간간히 데이터를 넘겨 데이터를 활용해 결과물을 리턴해주는 서버를 만들어야 했다. 이번에도 flask로 만들고 테스트를 해봐서 잘되어 배포를 했는데 여기서 문제가 생겼다. 멍청하게 flask를 사용할때는 Flask + uWSGI + Nginx 세트와 같이 외부 자료를 함께 사용해야 했는데 flask에 무지했다. 그래서 열심히 이것저것 만져보.. 2023. 10. 26.
간편하고 특이하게 나만의 QR코드 만들기 나만의 개성있는 QR코드 만들기 1. 만들게 된 계기 새로운 모임플래너님이 들어오셨을 때 회사 디자이너님이 모임플래너님의 명함에 QR코드를 넣고 있었다. 예전에 QR코드가 딱딱하지 않고 재미있게 만들어져 있는 걸 어디선가 beomcoder.tistory.com 얼마전에 QR코드 글을 남기면서 QR코드를 만들어서 잘 썼었는데 새로운게 나와서 알려주려고 한다. QR Code AI • Builder app.qrcode-ai.com 위 사이트에서 간편하게 주소만 입력하면 잘 만들어진다. 먼저 여기에 QR코드를 만들 주소를 넣는다. 그리고 2번에서 자물쇠표시가 없는것들 중 하나를 골라서 GENERATE 버튼을 누르면 완성된다. 간단하게 만들어 본 QR코드이다. 카메라로 먼저 인식해보고 되면 가지고 오면 된다. Q.. 2023. 10. 24.
파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이썬 코드 https://kin.naver.com/qna/detail.naver?d1id=1&dirId=10402&docId=456810597&mode=answer 파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이... 파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는배치 파일이나 파이썬 코드가 필요한데 만들어 주실 분 계실까요?하위폴더들 안의 파일들도 동시에 처리되면 좋겠습니다. kin.naver.com 네이버 지식인 질문 파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이썬 코드 (하위폴더 포함) 파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이썬 코드가 필요한데 만들어 주실 분 계실까요? 하위폴더들 안의 파일들도 동시에 처리되면 좋겠습니다.. 2023. 10. 18.
구름레벨 '계수기 만들기' 파이썬 코드 https://level.goorm.io/exam/43061/%EA%B3%84%EC%88%98%EA%B8%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io m = int(input()) line_maxs = [v + 1 for v in map(int, input().split())] line_inits = list(map(int, input().split())) answers = [0] * m count = int(input()) for a, b in zip(line_maxs, line_inits): if a 2023. 10. 17.
AWS 포트(방화벽) 연결 실수 해결 [ufw 문제] 포트를 열었어야 했는데 인터넷에서 다 찾아보고 했는데 연결이 안되서 정말 답답했었다. 나는 내가 모르는거나 안되는게 있으면 답답하고 어떻게라도 해결을 봐야해서 거의 새벽, 하루동안 구글, 스택오버플로우, GPT, 빙 등 모든 검색사이트에서 열심히 찾아보아서 해결했다. 나의 상황은 우선 플라스크로 간단하게 서버 백엔드와 통신해줄 API서버를 만들고 있었다. AWS에 서버를 하나 만들고 연결을 해서 서버를 만들고 있었는데 테스트서버와 본서버를 둘다 돌려야 하는 상황이었다. 그래서 포트를 하나 더 열어야했는데 8000번 포트는 원래 쓰고 있었는데, 추가로 테스트서버 포트 8001을 열어야 했다. 나의 AWS 서버에 들어가서 Security에 들어가서 인바운드규칙을 추가해주어야 한다. 여기서 이제 열고 싶은 포.. 2023. 10. 17.
프로그래머스 '과제 진행하기' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(plans): plans = [[n, int(s.split(':')[0])*60 + int(s.split(':')[1]),int(p)] for n, s, p in plans] plans = sorted(plans, key=lambda x:-x[1]) stack, answer = [plans.pop()], [] time = stack[-1][1] while plans: if.. 2023. 9. 14.
프로그래머스 '다리를 지나는 트럭' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(length, threshold, trucks): answer = 0 bridge = [0]*length # 다리를 우선 길이만큼 0으로 세팅 cur_weight = 0 trucks = trucks[::-1] # trcuks.pop(0) 대신 trucks.pop()을 사용하기 위해 리스트를 뒤집어줌 while trucks: # 트럭이 남아있을때까지만 반복문 answer +=.. 2023. 9. 4.
구름레벨 '징검다리건너기' 파이썬 풀이 https://level.goorm.io/exam/49112/%EC%A7%95%EA%B2%80%EB%8B%A4%EB%A6%AC-%EA%B1%B4%EB%84%88%EA%B8%B0/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io n = int(input()) stones = list(map(int, input().split())) for i in range(3, n): stones[i] += min(stones[i-3:i]) print(min(stones[-3:])) ''' 처음엔 재귀함수로 풀었는데, 5번부터 런타임에러가 나와서 동적계획으로 풀게 되었다. ''' 2023. 8. 30.
프로그래머스 탐욕법(Greedy)'단속카메라' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(routes): order = [] for i, (s, e) in enumerate(routes): order += [[s, 0, i], [e, 1, i]] # 먼저 차량이 들어오는것과, 나가는걸 구분시켜주고 그 차량들의 인덱스값을 붙여주었다. answer, pass_car, check = 0, [], [] for _, out, index in sorted(order): i.. 2023. 8. 30.