커뮤니티

CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.4

안녕하세요. 

 

<td @class(["type" => in_array($key, $_css_type), "rank" => in_array($key, $_css_rank)])>

 

현재 @class에서 기본값 없이 동적으로만 조건을 걸었을때 조건식이 모두 거짓인 경우, 위의 예에서 <td>가 아니고 <td class>와 같이 속성명만 남습니다.

지금까지 v2를 쓰면서 딱히 문제는 없는데 ai(copilot,gemini)가 잘못된 문법으로 속성명 삭제를 권합니다. css에서 td[class] { 에 의도치 않은 적용이 있다거나  js에서 const cell = document.querySelector('td'); if (cell.hasAttribute('class')) { 이런 때 의도와 다르게 작동한다고 예시까지 들어주네요.

저렇게까지 써본적은 없어서 이게 오류인 것 같기도 하고 별 문제가 없어 보이기도 하고... 하도 ai에 많이 낚인 터라 반신반의합니다만 오류인지 문의합니다. 

 

감사합니다.

ehii Lv. 2

댓글 9

  • AI에 대한 잘못된 질문을 답변해드리지 않으려 했지만, 생각을 고쳐먹고 이전 댓글 삭제 후 다시 작성합니다. 양해해주세요.

    자바스크립트로 어떤 어플리케이션을 짜시는지 모르겠지만, cell.hasAttribute('class')라는걸 조건으로 걸어야 하는 상황의 스크립트라면 분명히 잘못된 스크립트입니다.

    class가 존재하는지를 확인하려면 element.classList 를 사용하시면 됩니다.

     

    document.children[0].classList.add('test-class')

    document.children[0].classList.remove('test-class')

     

    를 작성한다고 지금 작동되는 html문서가 완전히 깨지는것처럼 보이시나요?

     

    개발자마다 다르겠지만, 제가 라이믹스에서 개발하며 .hasAttribute를 사용한건 editor_sequence 확인할때말곤 없었습니다.

    그리고 개발은 제가 해보았을때 gemini 3 pro가 나온 현시점에서도 claude가 훨씬 낫습니다.

  • @에카

    에카님 안녕하세요. 답변 감사드립니다. 제가 질문을 혼동되게 작성했나 봅니다. 일단 제가 사용하는데는 문제가 없습니다. js에서도 말씀하신것처럼 특정클래스명을 지정해서 컨트롤하고 있구요. 

     

    현재 <td class>와 같이 속성값이 없고 속성명만 존재하는 태그가 있는 상황이 템플릿v2에서는 발생합니다. 작성된 코드를 ai에 검토시켰는데  <td class="test-class">로 속성값을 써주거나 <td>로 작성하지 않으면 잘못된 문법이라고 수정을 권하네요. 그러면서 발생할 수 있는 부작용에 대해 위 예시를 들었습니다. 저는 저렇게 안써서 일단 저에게는 오류가 없지만, 잘못된 문법 및 오류 가능성을 언급하니 코어에서는 수정이 필요한지 먼저 확인하고자 github 오류보고 대신 질문글로 오류가 확실한 것인지 질문을 한겁니다.

     

    추가로 ai 추천 감사드립니다.

  • @ehii

    한마디로 답변드리자면

     

    문제없음

     

    이 될것같습니다.

    애초에 문제가 될만한 형태인지에 대한 예시를 코드로 들어드린거고, 이상한데서 쓸데없이 엄격하게 보는 AI가 틀렸다고 말씀드리려 한거라서요.

    모든 값이 비어있는 attribute를 처리하려면 엄청나게 힘들어지지 않을까 생각되네요.

  • @에카

    그런가요?... @class와 @style에서 이미 이슈등록 및 패치가 되었는걸요. ^^;

     

    제가 질문한 요지는 문제가 발생하니 해결해달라가 아니고, 잘못된 문법과 사소한 오류가능성을 코어에서 어떻게 처리할 것인지에 대한 질문이었습니다. 에카님께서는 패치까지는 필요 없을거라는 의견이신것 같습니다.

     

    일단  <td class>로 나오는것은 잘못된 문법임에 틀림없지만, 문제발생할 확률이 0에 수렴하고 사용에 아무런 지장이 없다면 코어 관리자의 판단에 따라 수정하지 않을 수도 있겠지요. 제가 확실한 오류를 겪은것도 아니고, 또한 이것이 정도의 차이에 따라 무시될 수준의 오류인지 판단할 실력이 안되어서 이부분에서 코어의 수정까지 필요한지 확인차 질문으로 올렸고 답변을 얻어 이슈등록을 하였습니다. 이슈를 올리기도 전에 패치를 너무 빨리 해주셔서^^;;

     

    개발자가 아니고 취미로 주말에 가끔 만지작거리는 수준이다보니 github에 리포트하는데 매우 조심스럽습니다. 확실한 오류라면 리포트하겠지만, 이렇게 애매하면 issue에 open된 숫자만 봐도 부담스러운데 부담+1을 추가하는 것이 아닐지 망설여지네요. 문제가 있는가? 와 패치가 필요한가?는 또 다른 부분이라서요.

     

    답변감사드립니다. 좋은 주말 보내세요!

  • @에카

    렌더링 후 값이 비어 있는 attribute를 일괄 삭제하는 것이 아니고,

    Blade의 @class와 @style 문법은 템플릿 엔진이 attribute를 직접 생성하는 방식이기 때문에

    필요하지 않을 때는 그냥 생성하지 않도록 했습니다.

     

    AI가 상당히 비현실적인 시나리오를 들고 나왔다는 데는 동의합니다.

    물론 "이게 문제가 될 수도 있을까?"라고 물어 봤기 때문에 그렇게 대답한 것인지도...

  • 실제로 문제를 일으키는지와는 관계없이, 소스상에 빈 속성이 남는 것은 의도된 동작이 아닙니다.

  • @기진곰

    기진곰님 안녕하세요. 답변 감사드립니다.

    그렇군요. 의도된 동작은 아닐거라고 짐작은 했지만, 실제 오류가 날 상황이 극히 제한적인 것 같아서(?) 이런 것도 리포트하는 것이 맞는지 망설이다가 질문 하였습니다.

  • @ehii

    중복만 아니라면 자유롭게 리포트하셔도 됩니다.

    님처럼 리포트해 주시는 분들 덕분에

    무려 10년만에 XE의 이슈 갯수를 따라잡는 데 성공했거든요. ㅋㅋㅋ

  • @기진곰

    앗 그렇군요. 감사합니다