주제: skin.html 대신 skin.php 를 사용할 수 있게...
skin.html 대신 skin.php 를 사용할 수 있게 했으면 합니다.
아무래도 스킨에 동적인 요소를 가하려고 하니...
html과 javascript로는 한계가 있군요..
아직 로그인하지 않았습니다. 로그인 또는 회원 등록을 해 주시기 바랍니다.
skin.html 대신 skin.php 를 사용할 수 있게 했으면 합니다.
아무래도 스킨에 동적인 요소를 가하려고 하니...
html과 javascript로는 한계가 있군요..
그래서 플러그인 시스템이 있는거죠.
플러그인을 활용할 방법을 찾아보시는게 나을것 같은데요?
그럼 매 스킨마다 필요한 플러그인을 만들어야 한다는 말이 되는군요...
플러그인으로 빼기에는 빈약한 기능임에도 불구하고,
플러그인으로 처리해야 한다는...
물론 플러그인의 확장가능성이 좋은것은 사실입니다.
하지만, 단지
1) guest 일때 login 으로 찍고, admin 일때 logout 으로 찍으며,
2) guest 일때 통계를 숨기고, admin 일때 통계를 나타내고,
3) guest 일때는 없지만, admin 일때 지정된 텍스트와 링크 메뉴가 나오도록
만드려면, 1,2,3 에 해당하는 플러그인을 하나하나 만들어야 하고,
더구나, 각 스킨마다의 디자인이 다를것이기에, 각 플러그인을 특성화 할 수 있도록 하거나, 하니면 스킨마다 맞는 플러그인을 만들어야 한다는 결론이 나오는군요.
플러그인 물론 좋습니다.
큰 기능의 경우에 특히요.
하지만, 스킨과 맞물려 돌아가는게 좋은 부분들에서 역시 플러그인을 강요한다면.
매 스킨마다 그에맞는 플러그인을 만들어야 하거나, 한 플러그인을 모든 다변성을 가지는 정말 덩치가 큰 플러그인으로 만들어야 할 것입니다.
이런경우..
배보다 배꼽이 큰 경우가 되죠...
매우 간단한 기능지원, 혹은 스킨을 php로 지정할 수 있게해서, 스킨의 능동성을 부여하는방법이,
플러그인으로 처리하기 불편한 부분을 쉽게 해결하도록 지원할 수 있는 방법이 아닌가 생각합니다.
htna (2006-12-09 13:38:33)에 의해 마지막으로 수정
그 정도라면 태터툴즈의 기능 자체의 추가를 고려해야 하지 않을까요.
스킨에서 php 를 허용해버리면 고려해야하는 보안이슈가 늘어나는거 아시죠?=_=;
분명히, 말씀하신 것 처럼 스킨을 php 로 하는 경우에 얻을수 있는 이익이 있을겁니다.
하지만 그로인해 잃게 되거나, 감수해야만 할 많은 문제점도 동시에 고려해야합니다.
laziel (2006-12-09 13:48:36)에 의해 마지막으로 수정
치환자 같은 경우도 치환자가 아닌 함수로 써야할 수도 있겠네요.
(스킨 개발하는 입장에서는 좀 복잡해질 수도..)
호환성 레거시 문제도 걸리고..
그럼 매 스킨마다 필요한 플러그인을 만들어야 한다는 말이 되는군요...
플러그인으로 빼기에는 빈약한 기능임에도 불구하고,
플러그인으로 처리해야 한다는...물론 플러그인의 확장가능성이 좋은것은 사실입니다.
하지만, 단지
1) guest 일때 login 으로 찍고, admin 일때 logout 으로 찍으며,
2) guest 일때 통계를 숨기고, admin 일때 통계를 나타내고,
3) guest 일때는 없지만, admin 일때 지정된 텍스트와 링크 메뉴가 나오도록
만드려면, 1,2,3 에 해당하는 플러그인을 하나하나 만들어야 하고,
더구나, 각 스킨마다의 디자인이 다를것이기에, 각 플러그인을 특성화 할 수 있도록 하거나, 하니면 스킨마다 맞는 플러그인을 만들어야 한다는 결론이 나오는군요.플러그인 물론 좋습니다.
큰 기능의 경우에 특히요.
하지만, 스킨과 맞물려 돌아가는게 좋은 부분들에서 역시 플러그인을 강요한다면.
매 스킨마다 그에맞는 플러그인을 만들어야 하거나, 한 플러그인을 모든 다변성을 가지는 정말 덩치가 큰 플러그인으로 만들어야 할 것입니다.이런경우..
배보다 배꼽이 큰 경우가 되죠...매우 간단한 기능지원, 혹은 스킨을 php로 지정할 수 있게해서, 스킨의 능동성을 부여하는방법이,
플러그인으로 처리하기 불편한 부분을 쉽게 해결하도록 지원할 수 있는 방법이 아닌가 생각합니다.
skin.php를 허용한다고 해도 매 스킨마다 새로 짜야 하는 것은 마찬가지 아닐까요? 오히려 어느 정도 스킨 호환성이 보장되는 플러그인 시스템이 더 좋다고 생각되는데요.
그리고 laziel님 말씀처럼 보안 문제가 반드시 함께 이야기되어야 하는 이슈라고 생각됩니다.
그 정도라면 태터툴즈의 기능 자체의 추가를 고려해야 하지 않을까요.
스킨에서 php 를 허용해버리면 고려해야하는 보안이슈가 늘어나는거 아시죠?=_=;분명히, 말씀하신 것 처럼 스킨을 php 로 하는 경우에 얻을수 있는 이익이 있을겁니다.
하지만 그로인해 잃게 되거나, 감수해야만 할 많은 문제점도 동시에 고려해야합니다.
물론 스킨에 php를 허용할 경우 발생할 수 있는 보안이슈가 있다는 것은 자명할 것입니다.
하지만 그와 더불어, 플러그인에 php를 허용할때의 보안이슈도 마찬가지라고 생각합니다.
스킨과 플러그인을 사용자들이 사용할 경우에 생기는 문제점 모두를 테더에서 책임질 수 없다고 봅니다.
그렇기에, 플러그인을 사용자가 선택해서 사용할 경우에 대한 보안문제를 테더가 책임지지 않듯이.
스킨을 사용자가 사용해서 생기는 보안문제 역시 테더가 책임져야 한다는 것은 맞지 않다고 봅니다.
그렇기에, 확장성을 위해서 스킨에 php를 추가해주는 것 역시 나쁘지 않다고 봅니다.
도리어, 블로그의 동적성격을 부여할 수 있기에 확장성 등에서 더욱 좋을것이라 봅니다.
더욱이, 이러한 결과로 더욱 쓸모있는 스킨이 많이 개발되지 않을까 합니다.
추가로...
저런 관리자모드일때 통계가 보이고, 게스트모드일때 통계가 안보이고 하는 것들을
기능으로 테더 자체에 추가한다면...
테더가 추구하고있는 가벼움의 원칙에서 벗어나지 않나요 ???
단시 스킨에서 조절하면 될 것을, 테더에서 조절한다는게...
어떤면에서는 한 기능의 가능한 모든 특성을 다 가지고있으려고 하는것처럼 보이는군요...
htna (2006-12-09 14:59:27)에 의해 마지막으로 수정
skin.php를 허용한다고 해도 매 스킨마다 새로 짜야 하는 것은 마찬가지 아닐까요? 오히려 어느 정도 스킨 호환성이 보장되는 플러그인 시스템이 더 좋다고 생각되는데요.
그리고 laziel님 말씀처럼 보안 문제가 반드시 함께 이야기되어야 하는 이슈라고 생각됩니다.
특성화된 스킨을 만든다와,
그 특성화를 위해서, 스킨을 수정하고 플러그인도 만들어야 한다.
두가지가 아닌가 봅니다.
플러그인의 확장성은 당연하다고 봅니다.
하지만, 앞서 언급하였던것 처럼...
스킨에따라.. 지정된 출력이
(스킨 1)에는 텍스트로 사이즈가 10이고 글꼴은 굴림이며 글자색은 흰색이고 마우스가 올라갔을때 파란색으로 반전이 되는게 더 보기 좋고,
(스킨 2)에는 텍스트로 사이즈가 10이고 글꼴은 굴림이며 글자색은 검은색이고 마우스가 올라갔을때 노란색으로 반전이 되는게 더 보기 좋고,
(스킨 3)에는 텍스트로 사이즈가 11이고 글꼴은 굴림이며 글자색은 검은색이고 마우스가 올라갔을때 노란색으로 반전이 되는게 더 보기 좋고,
(스킨 4)에는 이미지로 흰색글씨에 검은색 바탕의 버튼으로,
(스킨 5)에는 이미지로 흰색글씨에 파란색 바탕의 버튼으로,
(스킨 6)에는 이미지로 검은색글씨에 흰색 바탕의 버튼으로, 마우스 반전이 있고
등과같이 스킨에 맞는 특성을, 플러그인으로 모두 소화한다는 것은 무리라고 보여지지 않은지요..
아니면, 저런 자신의 블로그를 특성화 하기 위해서, 플러그인의 소스를 분석해서 고쳐야만 한다면, 플러그인의 configuration이 무색하겠죠...
물론 덩치가 커다란 기능은 플러그인이 제공하는 범위내에서 사용하는게 나을것이라 보입니다.
하지만, 사소한 기능 역시 플러그인으로 해결하려 한다는게...
제가보기에는 '배보다 배꼽이 더 큰 형상'으로 보여지는 것이죠.
보안에 관련된 문제에 대해서는,
(먼저 올린 포스팅에서 볼 수 있듯이)
플러그인 사용시의 보안문제가 사용자에게 달려있듯이.
스킨의 사용시 보안문제 역시 사용자에게 달려있다고 봅니다.
치환자 같은 경우도 치환자가 아닌 함수로 써야할 수도 있겠네요.
(스킨 개발하는 입장에서는 좀 복잡해질 수도..)호환성 레거시 문제도 걸리고..
한번에 너무많이 올리게 되는군요..
헉헉...
테더가 (skin.html)을 입력으로 브라우져에 뿌리는 것과,
테더가 (skin.php -> skin.html)을 입력으로 브라우져에 뿌리는 것은,
호환성의 레거시 문제와는 걸리지 않는다고 생각됩니다.
더 좋은방법이 있다면,
skin.html 안에서 php를 사용할 수 있도록 하는 방법일 듯 한데, 이런 방법은 없나요 ??
아니면, skin.html 안에서 script(java)에서 php의 특정 몇몇기능들을 함수호출로 사용할 수 있도록 하는 방법은.. ???
한 가지 여쭙고 싶은 게 있는데요... 논외의 이야기입니다만... 왜 테더라고 쓰시는지요? 보통 태터라고 쓰는데요...
티즈님이 이미 말씀하셨지만 서버스크립트인 php의 함수를 js에서 읽어올 방법은 없습니다;;
(읽어올 수 있다고 한다면 그게 오히려 이상한겁니다; 그렇게 될 일도 없지만)
스킨에 맞는 특성을, 플러그인으로 모두 소화한다는 것은 무리라고 보여지지 않은지요..
물론 플러그인의 css에서 해결 할 수도 있지만 플러그인에서 쓰인 class나 identity 같이 선택자(selector)에 대해서
스킨 자체에서 해결할 수도 있습니다. (덮어씌우거나 해당 선택자에 대해서 !important; 처리해버리면 되니까요.)
제가 바로 위 게시물에서 말씀드린 부분이랑 같은 말이 아닌가요?
뭐.. 나니님께서 좀 더 쉽게 설명해 주신것 같긴 합니다만(제 말이 애매했네요. 정작 스킨의 CSS에 명시를 해준다는 말이 없으니-_-)
맞습니다. 중복되는 내용이긴 합니다.
글씨 색이나 바탕색은 디자인에 관련된 부분이기 때문에 (X)HTML 코드에 명시하는 것이 아니라 CSS로 분리하는 것이 의미론적인 코딩에 부합하지 않을까 생각됩니다.
만약 저런 경우에는 클래스를 지정해 두고 스킨마다 CSS 파일에 스타일을 명시하는 쪽이 더 범용성 있다고 볼 수 있죠.
CSS로 분리하자고도 하셨고 스킨마다 CSS 파일에 스타일 명식하는 쪽이 더 범용성 있다고 말씀은 하셨지만
뭔가 부족한 느낌이 들어서 조금 덧붙였습니다. ![]()
'태터' 죄송합니다. 그냥 발음하는대로 적다보니 '테더'가 되었군요...
일단은 확장가능성이 없다는 것으로 인지했습니다.
제가 접속한 admin 일때만 접근 가능한 링크를 tatter에 출력하기 위해서 플러그인으로 만들어야만 한다는사실과,
login logout 을 위해 맘에드는 형태로 만들기 위해서 역시 새로운 플러그인을 만들어야 한다는 사실두요.
플러그인을 따로 공부해서...
개인적으로, 플러그인 개발과 같은 큰 노력을 들이지 않고 나의 기호에 맞는것을 가져다 쓰려는 것 자체가 무리였나 생각이 듭니다.
아마 이런 플러그인은 만들어도 배포할 일은 없게되지 않을까 합니다.
내가 사용하는 스킨과 내용에만 맞는 형태의 플러그인일 테니 말이죠..
htna (2006-12-09 20:13:14)에 의해 마지막으로 수정
플러그인을 따로 공부해서...
내가 사용하는 스킨과 내용에만 맞는 형태의 플러그인일 테니 말이죠..
그게 태터 사용하는 재미 아닐까요?
자기 입맛에 맞는 플러그인 제작. 이거야 말로 정말 태터를 재미있게 사용할 수 있는 방법 중 하나라고 생각합니다. ![]()
htna 작성:플러그인을 따로 공부해서...
내가 사용하는 스킨과 내용에만 맞는 형태의 플러그인일 테니 말이죠..그게 태터 사용하는 재미 아닐까요?
자기 입맛에 맞는 플러그인 제작. 이거야 말로 정말 태터를 재미있게 사용할 수 있는 방법 중 하나라고 생각합니다.
죄송합니다.
저는 tatter소스를 고쳐가며 사용하기 보다는.
가능한한 있는 부분을 이용해서, 쉽게 원하는 기능을 구현할 수 있는 방법이 더 좋다고 생각하고 있습니다...
각자간의 가치관이죠...
결론적으로, tatter login plugin 을 수정해서 처리했습니다.
그냥 플러그인 한번 손봐서 만들고 신경을 끄면 되는것을...
저는 tatter소스를 고쳐가며 사용하기 보다는.
가능한한 있는 부분을 이용해서, 쉽게 원하는 기능을 구현할 수 있는 방법이 더 좋다고 생각하고 있습니다...
그것을 위해 플러그인 시스템이 있는겁니다. 말씀하신 것 처럼, 꼭 있으면 좋겠다 싶은 기능인데 플러그인으로 구현하기에는 너무 거창하다 싶으면 이것을 태터 자체에 포함하면(기본에서 지원하면) 어떤가 하는 이슈로 만드실 수도 있었습니다. 치환자 기반의 시스템 구조를 php 기반으로 들어 엎자는 이야기가 아니라 말이지요. 플러그인 제작을 태터툴즈 소스를 수정해서 사용하는 방법이라고 인식하시고 계신 한, 이런 종류의 논란은 끝이 없을 것 같네요.
원 목적은 티즈님의 말과 같은 <s_login>...</s_login>, <s_logout>...</s_logout> 이었습니다..
http://forum.tattertools.com/ko/viewtopic.php?id=2263
에서 얘기를 꺼냈었습니다.
"플러그인으로 처리하라"는 쪽으로 대세가 기우는 듯 해서...
skin.html 에서 해결할 수 있는 방법을 찾으려고, html에서 doesHaveMembership(), doesHaveOwnership() 호출할 수 있는 방법을 찾으려고 하던 중...
하지만 나중에 (login/out정도 뿐만 아니라..), php에서의 다른 기능들을 skin에서 사용하려고 하는 경우까지 간다고 봤을때,
skin.php 를 고려해보는 것도 나쁘지 않겠다 싶어서.
(어짜피 보안문제야, 플러그인역시 가지고 있고, 플러그인 사용에 관한 책임은 사용자에게 지워지기에...)
skin.php 까지 가게 되었습니다.
사실 앞서 얘를 든 1-6 까지의 경우나,
로그인 했을때만 보여지는 링크, 통계 등은 모두 <s_login>, <s_logout>가 지원된다면,
skin에서 이로 해결이 가능합니다.
<s_login>, <s_logout>의 필요성은 0.6x 버전때부터 느끼고 있었습니다만..
아직은 건의가 없었나보군요...
1.1.0.3 에서 반영이 되면, 제일먼저 사용할 기능이지 않을까 합니다.
htna (2006-12-09 23:31:23)에 의해 마지막으로 수정
laziel 작성:플러그인으로 구현하기에는 너무 거창하다 싶으면 이것을 태터 자체에 포함하면(기본에서 지원하면) 어떤가 하는 이슈로 만드실 수도 있었습니다.
그러고보니 로그인 했을 때와 로그인 하지 않았을 때를 나누어서 보여주는 치환자 정도는 하나 있어도 괜찮지 않을까 싶습니다. 사실 그런 부분은 htna님 뿐만 아니라 꽤 많은 분들이 요구하시지 않을까요? 현재 태터 툴즈의 치환자에 else 기능을 가진 방식이 없어서 <s_login>관리자, 로그아웃</s_login>, <s_logout>로그인</s_logout>처럼 만들어야 하겠군요.
해당 기능을 비슷하게 수행하는 구분자가 있습니다. <s_ad_div>
로그인한 상태에서만 보이는 부분을 정의합니다. 음... 이 경우 상태에 따른 반영은 되지 않겠군요.
skin.html 대신 skin.php 를 사용할 수 있게 했으면 합니다.
아무래도 스킨에 동적인 요소를 가하려고 하니...
html과 javascript로는 한계가 있군요..
해당 의견에 대한 답은 이 링크 글타래의 제 글로 대신할 수 있을 것 같습니다.
http://forum.tattertools.com/ko/viewtop … 171#p13171
요약하자면, 태터툴즈는 다중사용자 기반으로 설계되었기 때문에 관리자를 통하지 않고 php 스크립트를 직접 삽입하거나 수정할 수 있는 방법이 생기면 보안상 문제가 발생할 수 있습니다. 그럼 단일 사용자일때만 지원하면 되지 않느냐? 고 하시면, 아예 그 부분 설계를 이중으로 해야 하는 부담이 생기며 단일 사용자와 다중 사용자 모드 간의 호환성이 확 떨어지는 문제가 있습니다 - 정도로 답변 드릴 수 있겠습니다.
1.0 코어 초기에 해당 부분에 대해서 수많은 의견이 있었습니다. 결과는 지금처럼 되었죠. ![]()
사실 단일 사용자 모드에서 php를 집어넣어 해결할 수 있는 부분은 전부 초 간단한 플러그인으로 해결이 가능합니다. 코드를 넣고 싶은 자리에 임의의 치환자를 대신 넣으시고 플러그인은 초 간단하게 그 부분에서 실행되었으면 하는 php코드를 파싱하게 만들면 되죠. 넣고 싶은 곳이 여러곳이라도 한 플러그인에서 해당 치환자들을 전부 파싱하도록 모아 만들면 됩니다. 예를 들어 스킨 하나와 함께 동적으로 작동하는 플러그인 하나가 있을 수 있겠죠. 세트가 되는 스킨과 플러그인 두 개를 합쳐서 theme라고 불러도 될 듯. (이 부분도 논의가 있었고 현재 포럼에서 이야기가 진행중이기도 한 내용입니다)
요약하자면, 태터툴즈는 다중사용자 기반으로 설계되었기 때문에 관리자를 통하지 않고 php 스크립트를 직접 삽입하거나 수정할 수 있는 방법이 생기면 보안상 문제가 발생할 수 있습니다. 그럼 단일 사용자일때만 지원하면 되지 않느냐? 고 하시면, 아예 그 부분 설계를 이중으로 해야 하는 부담이 생기며 단일 사용자와 다중 사용자 모드 간의 호환성이 확 떨어지는 문제가 있습니다 - 정도로 답변 드릴 수 있겠습니다.
이해가 갈듯 말듯 합니다.
"다중 사용자 모드이기 때문에, php로 skin을 처리할 경우, 보안상의 문제가 간다"는 것은 어느정도 수긍할 수 있습니다.
그렇다면, 같은 문제로, "다중 사용자 모드이기 때문에, php로 된 plugin 역시, 보안상의 문제가 생길 수 있는것" 아닌가요?
<s_login>, <s_logout> 은 넣어주실거죠 ??
*^^*
inureyes 작성:요약하자면, 태터툴즈는 다중사용자 기반으로 설계되었기 때문에 관리자를 통하지 않고 php 스크립트를 직접 삽입하거나 수정할 수 있는 방법이 생기면 보안상 문제가 발생할 수 있습니다. 그럼 단일 사용자일때만 지원하면 되지 않느냐? 고 하시면, 아예 그 부분 설계를 이중으로 해야 하는 부담이 생기며 단일 사용자와 다중 사용자 모드 간의 호환성이 확 떨어지는 문제가 있습니다 - 정도로 답변 드릴 수 있겠습니다.
이해가 갈듯 말듯 합니다.
"다중 사용자 모드이기 때문에, php로 skin을 처리할 경우, 보안상의 문제가 간다"는 것은 어느정도 수긍할 수 있습니다.
그렇다면, 같은 문제로, "다중 사용자 모드이기 때문에, php로 된 plugin 역시, 보안상의 문제가 생길 수 있는것" 아닌가요?<s_login>, <s_logout> 은 넣어주실거죠 ??
*^^*
스킨은 누구나 수정할 수 있지만 plugin은 관리자만 추가할 수 있습니다 ![]()
<s_login>과 <s_logout>은 대안이 있는 상태에서 추가할 필요성을 못 느끼고 있습니다... 그걸 추가한 스킨은 1.0에서 쓰질 못하게 되니까요. 굉장히 어려운 일인데, 지금 규격은 태터툴즈 1.1 스킨을 태터툴즈 1.0에서 돌려도 되도록 '상하위 호환성' 을 보장하도록 만들어져 있습니다. (그래서 1.1 알파시절 추가된 부분이 많이 잘려 나갔습니다.) 말씀하신 치환자는 그 제약조건에 위반되죠.
사용자가 많은 프로그램입니다. 해당 기능이 추가된 스킨은 하위 버전의 사용자들이 쓸 수 없게 됩니다. 모든 사람에게 업그레이드를 강제할 수 없는만큼 쉽게 추가하거나 할 부분이 아닙니다. 갑갑하지만 어쩔 수 없는 부분이죠.
<s_login>과 <s_logout>은 대안이 있는 상태에서 추가할 필요성을 못 느끼고 있습니다... 그걸 추가한 스킨은 1.0에서 쓰질 못하게 되니까요. 굉장히 어려운 일인데, 지금 규격은 태터툴즈 1.1 스킨을 태터툴즈 1.0에서 돌려도 되도록 '상하위 호환성' 을 보장하도록 만들어져 있습니다. (그래서 1.1 알파시절 추가된 부분이 많이 잘려 나갔습니다.) 말씀하신 치환자는 그 제약조건에 위반되죠.
<s_ad_div>의 경우에,
<s_ad_div>는 <s_login>의 대안이 될지는 몰라도,
<s_logout>의 대안이 되지는 않습니다.
더구나
<s_guest>, <s_article_rep> 등과 같은 것의 범위 내에서만 활성화가 됩니다.
즉 저 범위를 벗어나는 위치에는 전혀 효과가 나오지 않습니다.
즉, 대안이라고 보기에는 부족하고, tatter의 임의의 위치에서의 표현은 불가능한,
location / keylog / guestbook 등의 위치에는 넣을 수 없는 상황 입니다.
하위호환성 이란게, 상위버전의 스킨이 하위버전에서 완전히 똑같이 나온다는 말인가요?
그렇다면, 1.0과 1.1의 차이는 성능개선 외에, 기능추가는 없다는... ?????
htna (2006-12-10 13:06:51)에 의해 마지막으로 수정
하위호환성 이란게, 상위버전의 스킨이 하위버전에서 완전히 똑같이 나온다는 말인가요?
네. 상위버전의 스킨이라고해도 하위버전의 태터툴즈에서 사용이 가능하다는 말입니다.
다만, 정석(?)으로 만들어지지 않은 스킨의 경우는 상하위호환성을 보장할 수 없습니다.
(어떻게 만드는 것이 정석인가는 논외로 하고요.;; )
그렇다면, 1.0과 1.1의 차이는 성능개선 외에, 기능추가는 없다는... ?????
그렇지 않습니다.
일례로, 1.1로 넘어오면서 사이드바라는 개념이 새로 생겼습니다. 명백한 '기능추가'죠.
하지만 이 기능을 고려하여 제작된 스킨이라고 하여도 태터툴즈 1.0.x에서 사용이 가능하도록 이 기능이 만들어졌다는 의미입니다.
덕분에(?) 추가되었다가 사라진 것들도 꽤 많죠. T_T