안녕하세요.
영진닷컴 『코딩은 처음이라 with 파이썬』 저자 남박사입니다.
C/C++, 파이썬, 그리고 AI를 활용한 자동화 시스템(AI Agent) 개발을 주로 하고 있습니다.
제 강의를 보시는 모든 분들, 끝까지 "화이팅" 입니다!
💡개인블로그: https://blog.naver.com/nkj2001
💡AI 블로그: https://wordpress.nambaksa.kr
강의
수강평
- 수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
- 수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
- 수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
- 수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
게시글
질문&답변
502 Bad gateway 에러
안녕하세요, kium님.Bad gateway 502 bad gateway 는 단순히 흔하게 발생하는 통신 오류입니다. 검색 도구의 설정 문제인지 아니면 서버 문제인지 아니면 도메인 문제인지 일단 말씀하신 내용으로만으로는 제가 답변해드릴 내용이 없습니다. HTTP Request 의 전체 설정 상태 및 서버의 주소 등 좀 더 자세한 정보를 주셔야 제가 확인을 해볼 수 있을것 같습니다.
- 0
- 2
- 12
질문&답변
안녕하세요 선생님! 24강 사이트맵 생성 관련 질문드립니다!
일단 해당 주소를 직접 접속해보시고 어떤 주소에서 사이트맵이 사용되는지 확인 할 수 있습니다. 강의에서는 워드프레스 디폴트 상태인 wp-sitemap.xml 으로 진행을 했으나 실제 구글 검색 등록을 시켜서 테스트를 해봤을때 wp-sitemap.xml 이 제공하는 구조적인 정보들이 오히려 초기에 블로그 컨텐츠가 별로 없는 상황에서는 오히려 더 단점이 많다고 생각했습니다.그래서 실제 제가 제공하고 있는 수업자료에서는 wp-sitemap.xml을 disable 시켜서 사용하지 않게 설정했고 직접 sitemap.xml 을 구현하여 훨씬 더 단순하게 사이트맵을 제공하고 있습니다. 이 부분을 참고하시기 바라며 제가 제공해드린 소스코드를 한번 살펴보시기 바랍니다.
- 0
- 2
- 12
질문&답변
포르테이너를 도메인으로 접속할때 ERR_SSL_PROTOCOL_ERROR 에러
안녕하세요, kairipton님.일단 내용을 정리해야 할 필요가 있어 보입니다. 지금 어디까지 설정을 하셨는지 모르겠지만 mydomain.kr:9000 으로 접속을 할때는 http 로 접속을 하셔야 합니다. 만약 nginx-proxy-manager 설치가 끝나고 https 설정까지 끝난 상황이라면 그때는 https://서브도메인.mydomain.kr 로 해당 서비스에 접속을 하셔야 하구요 그런데 지금 상황은 엔진x에서 https 설정은 하지 않았는데 https://mydomain.9000 으로 접속을 시도하고 계신거 아닌가 합니다. 만약 설정을 했다면 9000을 사용하는 https://포르테이너.mydomain.kr 로 접속을 하는게 맞을테니까요. 해당 부분을 한번 확인해보시기 바랍니다.
- 0
- 2
- 17
질문&답변
10강에서 막힙니다.ㅜㅜ
HTTP 노드의 위의 주소 설정값과 워크플로우 스샷을 함께 올려주시기 바랍니다.
- 0
- 2
- 29
질문&답변
Connection Lost 에 대해서 질문입니다.
안녕하세요, Gram Lee님.일단 헤더에서 proxy_set_header Upgrade websocket 를 proxy_set_header Upgrade $http_upgrade처럼 변경하시던가 아니면 proxy_set_header Upgrade websocket을 아예 지우고 해보셔도 좋습니다. 이는 docker-compose.yml 파일의 N8N_PUSH_BACKEND=sse 설정과 일치해야 하는데 만약 $http_upgrade 처럼 변수값을 쓴다면 클라이언트의 값을 넘어온 값 그대로 넘겨주는 방식을 사용한다는 의미로 보시면 되고 proxy_set_header Upgrade websocket 으로 설정하면 무조건 websocket 방식으로 처리한다는 의미가 됩니다. 그러면 이때 N8N_PUSH_BACKEND=websocket 이 되어야 클라이언트가 넘겨주는 값과 헤더가 처리 하는 값이 일치하게 되므로 만약 docker-compose.yml 의 설정이 N8N_PUSH_BACKEND=sse 로 되어있다면 proxy_set_header Upgrade websocket 을 지우시던가 하시면 될 듯 합니다. 다시 정리하자면 proxy_set_header Upgrade 값은 docker-compose.yml 의 N8N_PUSH_BACKEND 의 설정값과 일치해야 한다 라는 결론 입니다.
- 0
- 2
- 30
질문&답변
26강 Code에서 Python 문의
안녕하세요, 충환님.저는 뭐 별 탈 없이 잘 지냈고 잘 쉬기도 했습니다. 충환님도 잘 지내셨는지요? (사진)말씀하신 코드는 강의 재생중 하단에 보면 위와 같이 자료 다운로드 버튼을 볼 수 있는데 해당 강의의 수업자료를 다운로드 하시면 JSON 파일이 하나 다운로드 됩니다. (사진)다운로드 한 파일을 n8n 우측 메뉴의 Import from File을 통해서 불러오실 수 있습니다. 그러면 강의에 사용한 워크플로우 전체를 확인 하실 수 있고 해당 노드의 코드 또한 확인하실 수 있습니다. 강의에 사용된 모든 워크플로우를 이런식으로 제공하고 있으니 참고하시길 바랍니다. 일단 코드는 아래 따로 올려드리긴 하겠습니다. import urllib.request import urllib.error import re import json def get_channel_videos(html): # HTML에서 ytInitialData JSON 객체 추출 m = re.search(r"var ytInitialData = ({.*?});", html) if not m: m = re.search(r"window\['ytInitialData'\] = ({.*?});", html) if not m: print("ytInitialData를 찾을 수 없습니다.") return [] try: initial_data = json.loads(m.group(1)) except Exception as e: print("JSON 파싱 에러:", e) return [] videos = [] try: tabs = initial_data["contents"]["twoColumnBrowseResultsRenderer"]["tabs"] for tab in tabs: tab_renderer = tab.get("tabRenderer") if not tab_renderer: continue # 'Videos' 혹은 '동영상' 탭을 찾음 title = tab_renderer.get("title", "").lower() if title not in ("videos", "동영상"): continue content = tab_renderer.get("content", {}) # 두 가지 렌더러를 지원: sectionListRenderer와 richGridRenderer section_list = [] if "sectionListRenderer" in content: section_list = content["sectionListRenderer"].get("contents", []) elif "richGridRenderer" in content: section_list = content["richGridRenderer"].get("contents", []) else: print("동영상 섹션 정보를 찾을 수 없습니다.") return [] for section in section_list: # sectionListRenderer의 경우 if "itemSectionRenderer" in section: items = section["itemSectionRenderer"].get("contents", []) # richGridRenderer의 경우 elif "richItemRenderer" in section: # richItemRenderer 안에 content에 videoRenderer가 포함됨 items = [section["richItemRenderer"].get("content", {})] else: continue for item in items: video_renderer = None if "gridVideoRenderer" in item: video_renderer = item["gridVideoRenderer"] elif "videoRenderer" in item: video_renderer = item["videoRenderer"] if video_renderer: video_id = video_renderer.get("videoId") title_runs = video_renderer.get("title", {}).get("runs", []) video_title = title_runs[0]["text"] if title_runs else "" video_url = f"https://www.youtube.com/watch?v={video_id}" if video_id else None videos.append({ "id": video_id, "title": video_title, "url": video_url }) break # 동영상 탭을 찾았으면 더 이상 반복하지 않음 except Exception as e: print("동영상 데이터 파싱 중 에러 발생:", e) return [] return videos html = _input.item.json.data videos = get_channel_videos(html) youtube_url = _('Edit Fields').item.json.youtube_url return { "url": youtube_url, "videos": videos }
- 0
- 2
- 21
질문&답변
8강 이메일트리거가 계속 리스닝상태입니다
이메일 트리거를 계속 테스트 하다보면 가끔 n8n 내부적으로 뭔가 꼬이는 증상이 있어 보입니다. (사진)올려주신 이미지를 봤을때 이메일을 확인하면 확인 상태로 변경되게 설정되어있으신데 혹시 안읽은 이메일이 없는지 먼저 확인해보시고, 문제가 없다면 n8n 도커 컨테이너 restart 혹은 새로운 계정을 한번 테스트 해보시는것도 좋을듯 합니다. 참고로 얼마전 모든 정책이 변경되어 네이버, 구글 모두 앱 비밀번호 및 2차 인증을 해야만 사용가능하걸로 알고 있으니 그것도 참고하시기 바랍니다.그리고 추가로 추가 강의 섹션에 제가 따로 추가한 하나의 워크플로우로 Gamil.Naver 메일 완전 자동화하기 - 스팸분류부터 삭제까지 강의가 있는데 여기서는 조금 다른 방식으로 메일 Agent를 구동하니 이부분도 참고 해보시기 바랍니다.
- 0
- 2
- 22
질문&답변
콘타보 결제 취소
(사진)콘타보 사이트에서 현재 서비스중엔 VPS를 위 그림과 같이 취소 하시면 더이상 해당 서비스에 대한 과금이 되지 않습니다. 그리고 회원 탈퇴는 저도 해보지 않아서 정확하게 모르겠습니다만 chat gpt 문의 결과 활성 서비스를 모두 취소하면 자동으로 계정이 close 되는 형태로 운영된다고 하는데 이런 클라우드 서비스에서는 이런 방식으로 운영되는 서비스가 종종 있기에 서비스를 모두 종료 한 후 한번 확인해보시는게 좋을듯 합니다.
- 0
- 1
- 38
질문&답변
아무리 해도 안되는 오류를 내 방식대로 해결했습니다
그건 해결 방법은 아닙니다. 그냥 HTTP 검색 노드를 삭제하고 사용하지 않는것과 같습니다. 위키피디아는 그냥 오래된 위키 DB를 검색하는 정도의 용도일뿐 실시간 검색을 하지는 않습니다. 단지 오류가 문제라면 그리 사용하셔도 상관은 없으나 AI 가 실시간 검색 도구를 활용하지는 못하는 상태임을 인지하셔야 합니다. 그러므로 최신 데이터를 기준으로 뭔가를 생성하지는 못합니다.인증 삭제 후 재설정 후 문제 없이 되었다니 다행입니다.flux1.1 모델 비용이 부담이시면 더 저렴한 모델을 사용해보시기 바랍니다. flux-schnell 같은 모델은 이미지 장당 4.3원 정도 합니다. 물론 flux1.1 모델에 비해 품질이나 디테일면은 당연히 떨어집니다. 이미지를 자체적으로 생성하려면 cpu는 큰 의미가 없고 nvidia rtx 5070 이상 급의 그래픽카드가 필요합니다. 물론 이렇게 직접 생성한 이미지가 flux1.1 보다 더 품질이 좋지는 않습니다. 이미지 생성은 결국 투자대비 결과의 공식이기 때문에 가성비를 따져서 적정수준에서 타협해야 하는 문제입니다. 또한 수십가지의 이미지 생성모델을 다 사용해보고 내가 원하는 이미지를 어떤 모델이 가장 잘 뽑아내는지도 직접 확인해보셔야 합니다. 쓰임에 따라 모두 다르기에 절대적으로 좋은 AI 모델이란건 없습니다.
- 0
- 2
- 27
질문&답변
잘돼다가 create a post 노드에서 이런에러가 생기네
올려주신 이미지를 봤을때 워드프레스 서버가 rest api 요청을 수행하지 못했다는 내용으로 보입니다. 이는 단순 n8n에서의 문제는 아니고 서버 설정 및 도메인 연결 등 전반적인 모든 항목을 체크해봐야 할 부분으로 보입니다. 프록시 서버 설정도 다 체크해보셔야 할 듯 합니다. 잘 되던게 이상이 생긴거라면 그 사이에 무슨 설정을 건드리셨는지를 체크해봐야 할것 같네요.
- 0
- 2
- 31