・
수강평 1
・
평균평점 3.0
기존에 강사님의 n8n 자동화 완벽 가이드 강의를 듣고 만족했었고, 이번에는 실서비스 구축 방법에 대한 강의를 진행한다 하여 기대를 갖고 수강했습니다. 전반적으로 바이브 코딩과 프롬프트 수정을 통해 실제 에이전트 서비스를 구축해가는 방법론에 대한 설명은 괜찮았습니다. 또한, n8n이 2.x 버전에서 변경된 점을 짚어주는 것도 좋았다고 생각합니다. 다만, 강의 초반부터 실습을 진행하는 데 있어 매우 치명적인 이슈를 발견했습니다. 이 점 때문에 평가를 낮출 수밖에 없다는 점은 대단히 유감입니다. https://github.com/n8n-io/n8n/security/advisories/GHSA-44v6-jhgm-p3m4 n8n에서는 파이썬 코드 노드에서 표준 라이브러리가 아닌 외부 라이브러리를 설치 및 실행해야 하는 코드가 작동하는 것을 'Python Task Runner Sandbox Escape' 이슈라 하여 치명적인 보안이슈로 규정하고 있습니다. 그리고 해당 이슈가 발생할 때마다 이걸 바로 패치하고 있습니다. 강사님꼐서는 이 이슈에 대하여 강의 초반에 docker-compose를 세팅할 때 n8n 2.12.2 버전을 사용하라고 한마디만 언급하셨지만, 실제 제가 세팅한 결과 파이썬 태스크 러너의 Dockerfile까지 버전을 맞춰줘야 해당 코드 노드가 제대로 작동했습니다. 도커에 익숙하지 않거나. 이 이슈 자체를 모르고 있다면 이걸 몰라서 강의 실습이 불가능할 가능성이 매우 높다고 생각됩니다. 이것에 대해 명확히 고지를 하거나, 다른 해결책을 제시해 주셔서 차후 수강생들이 이것에 대해 불편함을 겪지 않도록 해주시기 바랍니다.
안녕하세요, Seunghyun Lee 님. 먼저, 실습 환경의 중요성에 대해서는 저 역시 100% 공감합니다. 수강평 점수를 낮춰가면서까지 남겨주신 내용을 보며, 여러 버전을 직접 테스트하시면서 얼마나 많은 시행착오와 불편을 겪으셨을지 충분히 느껴졌습니다. 이 부분에 대해서는 강의를 제공하는 입장에서 분명히 더 세심하게 안내드렸어야 했다고 생각합니다. 말씀 주신 Python Task Runner Sandbox 관련 이슈에 대해 설명을 보완드리면, 제가 해당 강의를 위해 프로젝트를 구성하고 테스트하던 수개월 전 시점에서는 현재와 같이 문제로 부각된 상황은 아니었습니다. 원래 n8n 이 처음 등장했을때 유일하게 이런 AI Agent 툴에서 파이썬 코드 노드를 제공함에 있어서 개발자들 사이에 상당히 이슈가 되었습니다만 막상 코드노드를 사용을 해봤을때 외부라이브러리 사용불가 및 너무 제한적인 기능으로 반쪽짜리 기능이라는 불만이 많았었습니다. 그런데 이 코드노드가 2.x 버전에서 태스크 러너라는 개념으로 확장되었습니다만 이전에 사용했던 문법이 변경되어 이전 버전에서의 코드 노드 재사용이 안된다는 불편함에 원성도 있었지만 1.x 버전에서는 사용하지 못했던 외부 라이브러리를 사용할 수 있음에 반기는 사람들이 많았었습니다. 물론 n8n 2.x에서 태스크 러너 개념이 처음 도입될 당시부터 코드 노드에 대해서는 개발자 커뮤니티 내에서도 다양한 의견이 있었고, 유사한 맥락의 이슈들이 간헐적으로 언급되었던 것은 사실입니다. 다만 이 부분은 관점에 따라 보안 취약점으로 볼 수도 있고, 반대로 유연한 실행을 위한 기능으로 해석될 수도 있는 다소 경계에 있는 영역이기도 합니다. 또한 이전에는 크게 문제로 다뤄지지 않던 부분이 현재 시점에서 보안 이슈로 공식 처리된 배경에 대해서는 저 역시 미리 파악하고 있지 못했습니다. 다만 강의를 준비하던 당시에는 2.x 버전이 어느 정도 안정화 단계에 들어섰다고 판단하여 버전 의존성까지 충분히 고려하지 못했던 점은 제 판단이 부족했던 부분이라고 생각합니다. 지적해주신 내용처럼 n8n 버전뿐 아니라 Task Runner 및 Dockerfile 환경까지 함께 맞춰야 정상 동작하는 부분은, 초반에 명확하게 안내되었어야 하는 중요한 요소였습니다. 일단 현재 n8n 설치 강의의 수업자료에서 n8n뿐 아니라 태스크 러너의 Dockerfile 까지 버전 명시를 한 내용으로 교체 하였고 해당 강의 수업 노트에 버전 명시에 대한 내용을 추가해 다른 수강생분들이 동일한 문제를 겪지 않도록 하였습니다. 또한 추후 영상 파일에도 자막을 사용하여 말씀하신 버전 강제 내용을 추가해놓도록 하겠습니다. 다시 한번 상세하고 진정성 있는 피드백에 감사드립니다. --------------- 추가 사항 위 댓글을 달고 제가 깃헙 및 여러 포럼을 참조하여 확인된 몇가지 사항을 정리합니다. 오늘자 최신버전 2.17.7 버전에서 date.tody() 가 반환하는 date 객체 속성이 내부적으로 mappingproxy로 래핑되는 이상한 버그가 있습니다. 이게 버그인지 의도된건지는 모르겠습니다만(의도할 이유가 1도 없긴 합니다.) 다른 코드는 아무런 문제가 없는데 유독 얘만 이상한걸로 봐선 버그로 보입니다. 이 문제로 인해서 강의에서 제공하는 코드를 n8n 최신버전에서 실행하면 mappingproxy 오류가 발생합니다. 따라서 강의에서 제공하는 코드를 그대로 사용하려면 2.12.2 버전에서 수행하시거나 아니면 오늘자 최신버전(2.17.7) 에서 수행하려면 코드에서 사용하고 있는 today = date.today() 에서 date 객체 대신 time 객체를 사용하게 변경해야 합니다. 해당 수정된 코드는 "n8n에서 파이썬 코드 실행과 데이터 흐름 이해" 강의의 수업자료에 첨부토록 하겠습니다. 결론적으로 말씀하신 Python Task Runner Sandbox Escape 보안 이슈는 현재 강의와 크게 상관없고 다만 n8n 자체의 버그로 인해 최신버전에서 수업자료로 제공하는 코드가 정상 동작하지 않고 있는 상황으로 판단됩니다. 아무튼 소중한 정보주셔서 제가 놓치고 있던 버그를 알게되어 감사드립니다.




