TABLE, 정말 레이아웃에 쓰면 그렇게 나쁜 것인가?
WEB 2.0 이 대두되면서부터 TABLE 태그로 레이아웃을 짜면 아주 아주 나쁜 행위라고 많은 사람들이 얘기하고 있다. 그런데, 정말로 TABLE 대신 모두 DIV 로 레이아웃을 구성해야만 하는 것인가? 이 것은 절대로 그런 것만은 아니라고 말하고 싶다.
기존의 TABLE 을 이용한 레이아웃은 확실하게 문제가 있었다. 가장 큰 문제점은 디자인을 위해서 심하게 중첩된 TABLE을 사용하여 너무나도 복잡스런 코드를 양산하여 유지보수를 어렵게 만든다는 것이었다. 이 문제를 해결하는 가장 간단한 방법은, TABLE을 중첩시키지 말고 최대한 CSS 를 이용하여 디자인하는 것이다. 굳이 DIV 태그로 대체하지 않아도 된다는 것이다.
물론, TABLE을 이용한 레이아웃에는 이 외에 몇가지 사소한 문제점이 더 있다. http://ilmol.com/wp/2005/06/09/25/ 에서 일몰님이 얘기한 것 만 봐도 DIV로 하는 것이 더 나은 것처럼 보인다. 대부분의 이런 주장들은 웹페이지를 문서의 관점에서 보면 아주 타당하다. TABLE 보다 더욱 다루기 편하고, 빠르고, 유연하다는 것을 인정한다. 문서라고 본다면 CSS를 제거하여도 내용을 파악하는데 문제가 없어야 좋은 웹페이지라고 볼 수 있다.
그러나, 웹은 문서로써의 개념도 가지고 있지만, 어플리케이션으로써 이용되는 경우도 많이 있다. PC에서 동작되는 프로그램, FLEX, Silverlight 를 보면, TABLE 형태의 레이아웃 태그가 지원이 되며, 레이아웃을 위해서 가장 많이 쓰이는 것을 확인할 수 있다. 그렇지만, 여기에서 그런 레이아웃 태그를 사용한 것에 대해서 문제시 하는 경우는 거의 없다.
DIV 태그도 레이아웃을 구현하는데 절대적인 것은 아니다. 아직 브라우저 마다 구현이 다르며, 버그를 가지고 있어서 여러가지 브라우저에서 같게 보이게 하려면 많은 공수가 들어간다.
내가 주장하는 바는,
보통, TABLE을 레이아웃으로 사용하기에 괜찮은 경우는 아래와 같은 상황이 될 것이다.
아무래도, DIV와 TABLE을 적절히 섞어 쓰는 것이 좋을 듯 하다. 모두 다 DIV로 하거나, TABLE로만 하는 것은 옳지 않다. 그동안 잘 써온 TABLE을 너무 미워하지 말자. *^^*
또 다른 TABLE 레이아웃 옹호 글로 http://www.flownet.com/ron/css-rant.html 이 있다.
기존의 TABLE 을 이용한 레이아웃은 확실하게 문제가 있었다. 가장 큰 문제점은 디자인을 위해서 심하게 중첩된 TABLE을 사용하여 너무나도 복잡스런 코드를 양산하여 유지보수를 어렵게 만든다는 것이었다. 이 문제를 해결하는 가장 간단한 방법은, TABLE을 중첩시키지 말고 최대한 CSS 를 이용하여 디자인하는 것이다. 굳이 DIV 태그로 대체하지 않아도 된다는 것이다.
물론, TABLE을 이용한 레이아웃에는 이 외에 몇가지 사소한 문제점이 더 있다. http://ilmol.com/wp/2005/06/09/25/ 에서 일몰님이 얘기한 것 만 봐도 DIV로 하는 것이 더 나은 것처럼 보인다. 대부분의 이런 주장들은 웹페이지를 문서의 관점에서 보면 아주 타당하다. TABLE 보다 더욱 다루기 편하고, 빠르고, 유연하다는 것을 인정한다. 문서라고 본다면 CSS를 제거하여도 내용을 파악하는데 문제가 없어야 좋은 웹페이지라고 볼 수 있다.
그러나, 웹은 문서로써의 개념도 가지고 있지만, 어플리케이션으로써 이용되는 경우도 많이 있다. PC에서 동작되는 프로그램, FLEX, Silverlight 를 보면, TABLE 형태의 레이아웃 태그가 지원이 되며, 레이아웃을 위해서 가장 많이 쓰이는 것을 확인할 수 있다. 그렇지만, 여기에서 그런 레이아웃 태그를 사용한 것에 대해서 문제시 하는 경우는 거의 없다.
DIV 태그도 레이아웃을 구현하는데 절대적인 것은 아니다. 아직 브라우저 마다 구현이 다르며, 버그를 가지고 있어서 여러가지 브라우저에서 같게 보이게 하려면 많은 공수가 들어간다.
내가 주장하는 바는,
- 디자인에 대한 것은 CSS를 통해서 구현하며,
- TABLE 과 DIV의 장단점을 알고, 상황에 맞추어 적절하게 사용하는 것이 좋다.
보통, TABLE을 레이아웃으로 사용하기에 괜찮은 경우는 아래와 같은 상황이 될 것이다.
- 어플리케이션 성격이 아주 강하며,
- 형태가 자주 변하지 않는 정적인 화면 구조를 갖는 경우
아무래도, DIV와 TABLE을 적절히 섞어 쓰는 것이 좋을 듯 하다. 모두 다 DIV로 하거나, TABLE로만 하는 것은 옳지 않다. 그동안 잘 써온 TABLE을 너무 미워하지 말자. *^^*
또 다른 TABLE 레이아웃 옹호 글로 http://www.flownet.com/ron/css-rant.html 이 있다.
댓글
댓글 쓰기