해결된 질문
작성
·
16
0
AI agent노드에서 HTML코드를 생성하는데 자꾸 백슬래시(\)가 따라 붙네요. 프롬프트에도 쓰지말라고 다시 한 번 명시를 했는데도 안돼서, Set노드를 통해 제거를 했는데도 output값에 자동으로 달려 나옵니다.
이런식으로 Set노드를 설정했는데
output값에 여전히 \가 붙습니다.
"<div style=\"line-height: 1.6;\"><h1>초보자를 위한 완벽한 파이썬 입문 방법 (2025년 최신, 설치부터 기초 강의 추천까지)</h1><div style=\"background-color: #E5FAF7; color: #015249; border: 1px solid #C4E1DC; padding: 30px; margin: 30px 0; border-radius: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);\"><p style=\"color: #015249 !important; font-size: 20px !important;\">
근데 뭐가 문제인지는 모르겠는데 또
Set노드의 expression창을 키워서 들어가보면 output값이 깨끗하거든요?
근데 왜 실제 결과값에는 자동으로 저런게 붙는지 모르겠습니다..
답변 2
0
안녕하세요, s Lee님.
말씀하신 백슬래시는 백슬래시 단독으로 사용되는 문자는 아니고 \"
를 하나의 문자로 봐야 하며 이를 이스케이프 문자라고도 합니다.
지금 보면 최종결과가 output : "내용"
처럼 JSON으로 출력되는데 이 "내용" 은 이미 쌍따옴표로 감싸져 있는데 이 안에서 쌍따옴표를 처리할수가 없습니다. 예를 들어 내용:"a="1", b="2""
뭐 이런 값이 있다고 가정한다면 쌍따옴표를 앞에서부터 순서대로 그룹핑 해보면 a=
까지가 되고 1
되고 , b=
으로 묶이고... 이러면서 오류가 날 수 밖에 없습니다. 그래서 이런 경우 "a=\"1\", b=\"2\""
처럼 표기하면 \"
는 이스케이프 문자로 처리 되기 때문에 문제없이 원래 표현하려던 값을 표현할 수 있게 되는겁니다.
물론 그래서 파이썬 문법에서는 문자열 표현식을 output: 'a="1", b="2"'
처럼 큰 틀의 변수값을 홑따옴표로 묶고 안에서는 쌍따옴표 처리가 가능하지만 이는 파이썬만의 독특한 문법이며 파이썬을 제외한 대부분의 언어에서는 (JSON포함) 문자열 표현식은 무조건 output="내용"
처럼 쌍따옴표만 사용이 가능하기에 내부적으로 다시 쌍따옴표를 처리하기 위해선 반드시 이스케이프문자 표현식을 사용할 수 밖에 없습니다.
이스케이프 문자에는 \\ (역슬래시 자체를 표현), \" (쌍따옴표), \t (탭), \n (엔터), \b (백스페이스)
등등 이외에도 여러가지가 더 존재합니다.
궁금하신 부분이 해결되셨으면 좋겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다. s Lee님.
HTML 코드에서 백슬래시()가 자동으로 추가되는 문제는 종종 데이터가 문자열로 처리될 때, 특히 JSON 형식의 데이터일 경우 발생할 수 있는 흔한 이슈입니다. 백슬래시가 추가되는 이유는 HTML 코드가 JSON 형식으로 인코딩될 때 문자열 내의 특수문자를 이스케이프 처리하기 때문입니다.
이스케이프 문자 처리
"
)를 포함한 문자열을 표현하기 위해 이스케이프 문자(백슬래시)가 추가될 수 있습니다. 이를 해결하는 방법은 출력 시 이스케이프 문자를 적절히 제거하거나, 데이터를 필요에 맞게 파싱하는 것입니다.Set 노드 활용
JSON.parse()
메서드를 활용하면 이스케이프 처리를 해제하여 깔끔한 HTML을 얻을 수 있습니다.Set Node
의 표현식에서 다음과 같이 사용하세요:
const output = JSON.parse($json["field_name"]);
return output;
플랫폼 특성 확인
테스트와 개선
유사한 문제를 다룬 관련 질문을 링크해 드립니다. 도움이 될 수 있으니 참고해 주세요:
위 링크들은 JSON과 HTML 코드 처리 시 발생할 수 있는 유사한 문제를 다룹니다. 제안된 해결책을 참고하시어 문제를 해결하시길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.