CSS랑 XHTML이 이슈가 되고 있는데요, 이번에 CP 모듈 만들면서 여러 사이트에서 작동되는 코드를 작성해야 하는데, 커스텀태그를 이용해서 하려고 하다가 말 나온김에 CSS로 하기로 했습니다.
예상으로는 템플릿 언더바와의 궁합이 상당히 궁금한데요, 효율도 그렇고...
지금까지 템플릿을 쓰면서, 디자인을 분리한다는 것에 대해서는 거의 포기했거든요. 말 그대로 프리젠테이션 로직은 전부 tpl파일 안에 넣었기 때문에 디자이너가 tpl파일을 고치는 것은 일부분은 가능하지만, 템플릿을 안 쓸 때랑 비슷한것 같습니다.
해서, php에서는 원 객체를 tpl에 넘기고, tpl에서는 표시될 객체로 바꾸어서 표현하면, CSS에서는 tpl 객체를 보여주는 식이 될 듯 합니다. 날짜로 예를 들면, 타임스탬프를 php에서 tpl로 넘기면 tpl에서는 날짜만 표시할지 그런걸 결정해서 div태그로 표시하고, CSS에서는 디자인을 입히고...
말은 쉽지만, CSS를 디자인할 수 있는 툴이 마땅한게 없어서 시행착오를 각오하고 있습니다.
어디까지 가능할지 효율은 어떨지 개인적으로 상당히 궁금하네요. ^^
하여튼 이번 일도 재미있게 끝냈으면 좋겠네요.
템플릿 덕택에 쫌 재밌어졌거든요. ^_^
관리자
CSS 활용수준이 높아져서.. View 의 구성(컨텐츠 - 프레젠테이션)을 명확하게 하는 것이.. M - V - C 관계가 필요없어지는 것을 의미하지는 않는 거 같네요^^
컨텐츠 영역들을 정의해 놓은 부분이 CSS 의 입장에서는 다시 한 번 템플릿이 되는 것이겠죠.
어제 실은 뭐라고 좀 적었었는데 치사?하지만 회사프로젝트 보안상 지웠었습니다. 별 내용은 아니고요.
만들면서 좀 재미있지 않을까 했던걸 느껴주시는 분들이 있어서 기쁘고.. 화팅하겠습니다. ^_^
04-08-29 16:11
이삼구
템플릿언더바를 쓰면서 사실 고민을 무척이나 많이 했습니다. 해본 것도 꽤 많다고 생각되구요.
지금은 개인적으로 거의 결론이 났는데, php에서 tpl로 보내는 데이터 구조는 완전히 fix시켜버리고, 그 데이터의 가공까지도 tpl에서 해 버립니다. 물론, 플러그인 함수를 통해서.. ^^ 이렇게 하지 않으면, 정말이지 디자인이 바뀔 때 php도 같이 바꿀 수 밖에 없더라구요... 제가 쓰는 플러그인 중 1/4 정도가 데이터의 뷰를 바꾸는 함수로 채워져 있습니다.
가장 간단한 게시판 처리 부분도 원 데이터만 php에서 만지고, 가공은 전부 플러그인에서 처리합니다. php는 말할것도 없이 간단해 지고(평균 라인수는 제 생각엔 120라인 정도 되는것 같네요), 대부분의 기획변경은 tpl의 변경만으로 해결이 되고 있습니다.(예전과 비교하면 코드의 반 정도가 tpl의 플러그인으로 들어가 있을 정도입니다. ^^)
CSS를 쓰려는 이유는 플러그인과 디자인을 분리시켜서, 말 그대로 스킨형 홈페이지를 만들 수 있을까 하는 의구심에서 시작하는 것이구요, M-V-C의 관계를 깨려는 것이 아니라, 그 것을 실제 디자이너와 프로그래머의 관계 설정에서 더욱 명확히 하려는 것으로 봐 주시면 좋겠네요.
다음주부터 시작될 것 같은데, 아마도 DIV 제네레이터 코드가 템플릿언더바에 코드레이어상으로 익스텐드 될 지도 모른다는 재미있는 생각이 듭니다. 헤~
그리고...
관리자님보다 템플릿언더바로 인한 기쁨이 제가 더 할꺼 같은데요.. ^____^ (감사감사.. )
04-08-30 00:10
관리자
CP 에서 div 생성이면.. 이런 거 막 알려주시면 아깝지 않은가요^^ 암튼.. 이 번 프로젝트도 즐겁게 진행되길 바랍니다.^^
04-08-30 09:12
이삼구
CSS+XHTML 만으로 사이트를 스킨형으로 제작하려는 시도는 처참하게 실패로 돌아갔습니다. -_-ㅋ
쉬는 날 이것 저것 자료 찾아보고, 구현된 사이트도 돌아다녀 보고, 드뎌 오늘 하루 종일 레이아웃만 잡았습니다. 그제 CP사이트 전체를 바꾸는데 성공해서 가벼운 마음으로 작업을 했더랬는데...
치명적인 문제점이 발생해버렸어요.
일단, CP로 들어가면 위와 아래 부분을 스크립트로 받아서 인클루드가 되는데, 이 넘들이 XHTML 스팩이 맞지를 않는 것입니다. 다 깨지진 않지만, 조금씩 특정부분에서 깨져버리더군요. 그 쪽에 고쳐달라고 요구하려고 생각도 해 봤지만, CP로 들어가는 쪽이라 일일히 수정을 요구하는것이 오히려 이상하다는 생각도 들고 해서 일단은 XHTML을 포기하고, 디자인만 CSS로 가기로 했습니다.
그런데 또 문제점 발생.
CSS로만 작업을 하다가 게시판을 작업해야되는 상황까지 발전했습니다. 디자이너의 디자인을 받아서 리스트 페이지를 만드는데, 이게 보기보단 간단하지가 않고, 특정 부분이 구현되지 않더군요. 그래서 무려 네시간동안 삽질 끝에, 테이블을 쓰지 않는 것이 왜 않좋은가 라는 철학적(?) 문제로 20분 정도 생각해 본 후에 결론을 내려버렸습니다.
CSS로만 디자인을 할 경우 어쩔 수 없이 상속개념이 들어가야 하는데, 그럴 경우 디자이너의 작업 자체가 불가능해 버립니다.(게시판 작업하다가 알게 되었네요. 단순하게 생각했었는데.. -_-ㅋ)
또한, 디자인 파트에서의 반발이 예상보다 거세더군요.
그래서 결국은 레이아웃(이건 정말 문제가 심각한 정도였습니다.)은 테이블로 하고, 속 내용은 CSS로 작업하기로 결정내려버렸습니다. CSS로 레이아웃을 제외한 디자인은 무리가 없더군요. 또한, 게시판같이 리스팅이나 통계를 보여주는 부분은 과감히 TABLE태그를 사용하기로 했고, TABLE태그를 사용해야 되는 상황(게시판같은...)은 템플릿언더바의 플러그인으로 해결하기로 했습니다.
이거참... 성공적인 적용을 보여드리고 싶었지만, 아쉽게도 이렇게 되버렸네요. -_-ㅋ
04-09-02 22:48
관리자
지금 하고 있는 프로젝트의 버전업 때.. gui 로 CSS 편집하는 기능을 구현할 계획이 있었는데.. 난관이 많네요. 당면한 문제가 아니라서 그다지 고민하지 않았는데..여러가지로 좋은 말씀 감사합니다.