스케치북 게시판에 리스트 중간 광고를 넣으려고 알아보는 중...
의문의 loop 문을 확인하게 되었습니다.
도저히 감을 못 잡고 있는데...
이에 관한 주옥같은 글이 있네요. 혹시 같은 고민을 하고 계시다면 참고하시기 바랍니다.
foreach > loop 에 관한 변환 질문
https://xe1.xpressengine.com/qna/21246875
loop 문을 활용한 팁
https://xe1.xpressengine.com/tip/23086749
확장변수 출력에서의 loop 문의 다양한 활용
https://xetown.com/questions/251318
XE 깃허브 레퍼런스 문서
https://github.com/xpressengine/xe-tutorial/tree/master/Skin_Base/04_template_grammar/loop_grammar
loop를 쓰면 코드가 짧아지는 효과가 있지만, 전체적으로 볼 때는 오히려 가독성이 떨어질 수 있으므로 주의해야 합니다. 너무 많이 사용하면 유지보수가 힘들어지는 것은 물론, 템플릿 핸들러가 오류를 일으키기도 합니다.
대부분의 코드 에디터에서 <!--@foreach(...)-->는 주석으로 취급되므로 주변의 코드와 쉽게 구별되는 색깔로 표시됩니다. <!--@foreach(...)--><!--@endforeach--> 조합을 사용하고 들여쓰기까지 적절히 해주면 루프가 어디서 시작해서 어디서 끝나는지 한 눈에 알 수 있습니다. 반면, 태그 안에 들어가는 loop 속성은 HTML 표준이 아니므로 에디터에서 특별히 표시해 주지 않습니다. 다른 속성들 사이에 섞여버리니까 놓치기 십상입니다. 게다가 <audio> <video> 태그의 자동반복을 의미하는 loop 속성과 겹치기 때문에 HTML5를 제대로 활용하려고 하면 무척 걸리적거리는 기능입니다. <!--@foreach(...)-->를 구버전 문법으로 취급하지 마세요. 언젠가 loop가 없어지는 일이 있더라도 <!--@foreach(...)-->는 계속 지원될 거예요.
cond는 얘기가 다릅니다. 이것도 loop와 마찬가지로 XE에서 만들어낸 비표준 속성이지만, 굳이 if문으로 변환하려고 하면 굉장히 지저분해지는 경우가 많습니다. 특히 각각의 속성에 |cond=를 붙여서 쉽게 껐다 켰다 할 수 있다는 것은 정말 대단한 발상이지요. 개인적으로 신규 개발하는 자료에 loop는 웬만하면 사용하지 않습니다만, cond는 꼭 필요한 경우 종종 사용합니다.