1

주제: 썸네일의 지원

현재 태터툴즈는 썸네일을 지원하지 않기 때문에 블로그에 작은 사이즈로 보이는 이미지라도 원 사이즈의 용량이 전부 전송되고 있습니다.

[문제1]
1280*1024 이미지를 업로드 하여 100*50 으로 보여준다고 해도 1280*1024의 용량을 전부 전송하기 때문에 비효율적입니다. 특히, 적은 용량의 트래픽 제한을 가진 호스팅을 사용하는 유저로서는 치명적입니다. 이미지 몇 개만 올리면 바로 트래픽 제한에 걸려 버리니까요.

[문제2]
현재 썸네일을 지원하는 플러그인은 갤러리 종류 뿐입니다만, 이것들을 중복해서 사용할 경우, 충돌이 발생합니다. ViewAttachedImage 이벤트를 통해 썸네일을 생성하고 그 썸네일 주소를 대치해 넣게 되는데, 이 변경된 주소를 가지고 플러그인들이 각자 또 썸네일을 만드는 장난(?)을 치기 때문입니다.

이런 문제점으로 태터툴즈에서 썸네일 기능을 지원해 주는 것이 어떨까 합니다. 최초 업로드시 한 번만 프로세스를 돌려주면 되는 것이니 서버에 부담도 그다지 없을 것이라 생각합니다.

2

답글: 썸네일의 지원

graphittie 작성:

최초 업로드시 한 번만 프로세스를 돌려주면 되는 것이니 서버에 부담도 그다지 없을 것이라 생각합니다.

그렇다면 차후 썸네일의 크기 변경이 필요할 때에는 어떻게 해야 할까요?
스킨 변경에 따른 contentWidth 의 변화에 따라 여러 분기가 생길 듯 합니다.
지원하는 것에 대해서는 찬성입니다^^

마모루 (2006-06-11 19:42:33)에 의해 마지막으로 수정

현재 사용중인 서버 세팅 - Apache 2.2.3 / mysql 5.0.24 / php 5.1.6
메인블로그 - http://sumomo.tistory.com/
스킨블로그 - http://mamoru.homeip.net/skin/

3

답글: 썸네일의 지원

썸네일의 크기가 변경되어야 하는 경우에는, 좀 더 생각해 봐야겠는데요. 좋은 의견 없을까요?

graphittie (2006-06-11 19:54:26)에 의해 마지막으로 수정

4

답글: 썸네일의 지원

graphittie 작성:

이미 그 쪽으로는 루틴을 짜두었습니다. 썸네일은 img 태그에 지정된 width와 height에 맞춰 진행됩니다. 썸네일 생성은 이 지정된 크기에 맞게 썸네일을 만들어줄 뿐이죠. 만약 이, 지정된 크기의 width가 contentWidth보다 커지면 width 값을 contentWidth 값으로 대치하여 썸네일을 생성합니다. height 값은 이 값에 비례가 적용되어 조정되겠지요.

글을 편집해서 이미지 가로 크기를 200px에서 400px으로 늘린 경우에는 다시 프로세싱을 하도록 해야겠지요?

현재 사용중인 서버 세팅 - Apache 2.2.3 / mysql 5.0.24 / php 5.1.6
메인블로그 - http://sumomo.tistory.com/
스킨블로그 - http://mamoru.homeip.net/skin/

5

답글: 썸네일의 지원

마모루 작성:

글을 편집해서 이미지 가로 크기를 200px에서 400px으로 늘린 경우에는 다시 프로세싱을 하도록 해야겠지요?

수정하는 사이에 글이...;;

좀 구차한 방식이기는 하지만, 확장자 앞에 사이즈를 저장해 두도록 해두었습니다만, 이건 좀 깔끔하지 못한 방법이라 사용하기가 꺼려지네요. xxx.200-400.jpg 형식으로요.

graphittie (2006-06-11 20:12:01)에 의해 마지막으로 수정

6

답글: 썸네일의 지원

그런데, 썸네일 기능을 추가하려면 서버상에 GD 같은 라이브러리가 있고, PHP 컴파일시에 연결되어 있어야 하지 않나요??
모든 서버에 GD 같은 라이브러리가 있는 것은 아닌데, 이 것은 어찌하실것인지??

잠수...

7

답글: 썸네일의 지원

건더기 작성:

그런데, 썸네일 기능을 추가하려면 서버상에 GD 같은 라이브러리가 있고, PHP 컴파일시에 연결되어 있어야 하지 않나요??
모든 서버에 GD 같은 라이브러리가 있는 것은 아닌데, 이 것은 어찌하실것인지??

체크해서 패스할 수 있으면 패스해야죠, 뭐. GD가 있으면 썸네일 생성, 아니면 기존방식으로 그냥 처리. 그런데 GD 정도는 호스팅 업체에 추가해 달라면 쉽게 추가해 주지 않나요?

8

답글: 썸네일의 지원

graphittie 작성:
건더기 작성:

그런데, 썸네일 기능을 추가하려면 서버상에 GD 같은 라이브러리가 있고, PHP 컴파일시에 연결되어 있어야 하지 않나요??
모든 서버에 GD 같은 라이브러리가 있는 것은 아닌데, 이 것은 어찌하실것인지??

체크해서 패스할 수 있으면 패스해야죠, 뭐. GD가 있으면 썸네일 생성, 아니면 기존방식으로 그냥 처리. 그런데 GD 정도는 호스팅 업체에 추가해 달라면 쉽게 추가해 주지 않나요?

일반적으로야 해줍니다만....
CPU 먹는다고, 쇠고집부리는 곳도 일부 있어요... sad

잠수...

9

답글: 썸네일의 지원

왠만한 서버는 GD, freetype 정도는 갖춰주는 센스!가 있어야 하죠;
환경에 따라 GD 가 없어도 imageMagik 이나 netpbm 같은 라이브러리가 지원되는 경우도 있으니 썸네일 지원하기로 맘먹으면야 방법은 무궁무진합니다.

에, 문득 스쳐지나간 아이디어..랄까요. openAPI 형식으로 이런거 괜찮을까요 ㅇ_ㅇ)a base64_encode() 를 이용해 원본의 이미지 파일 내용을 query 로 보냅니다. API 서버에서는 이것을 받아서 지정한 크기로 resize 하고, 해당 이미지의 결과를 XML 구조로, <response>1</response><data>base64된이미지</data> 같이 되돌려 보내주면 이것을 재조합해서 로컬 서버에 섬네일 이미지 파일로 저장[...] 효율은 무지하게 떨어지겠지만, GD를 비롯한 이미지 라이브러리가 단 하나도 없지만 죽어도 섬네일을 써야겠다고 우기는 경우(-_-)라면 괜찮을지도...라는 망상이었습니다; ㅅ ;

...라고 해놓고 생각하니, 다시 그걸 조합하려면 결국 gd 가 필요하군뇨[...]

다른 얘기지만, egloos2tt 에서, 외부 이미지의 실제 크기를 얻어내는 방법중에 유사한 꽁수를 씁니다.
getimagesize() 가 fopen() 이 열려있는데도 URL 로 지정하면 읽어오지를 못하고 오류를 내더라구요
그래서 curl* 계 함수를 이용해서 이미지 데이터를 불러온 뒤 base64_encode 합니다.
이것을 imagecreatefromstring() 에 넣어 임의의 image resource 를 생성하고나서 그 크기를 얻습니다.
...꼼수가 집적된 getimagesize 인 셈지요;

생각보다 imagecreatefromstring() 이라는 녀석이 흥미롭습니다. 속도도 과히 나쁘진 않아요.

laziel (2006-06-11 20:12:18)에 의해 마지막으로 수정

10

답글: 썸네일의 지원

laziel 작성:

왠만한 서버는 GD, freetype 정도는 갖춰주는 센스!가 있어야 하죠;
환경에 따라 GD 가 없어도 imageMagik 이나 netpbm 같은 라이브러리가 지원되는 경우도 있으니 썸네일 지원하기로 맘먹으면야 방법은 무궁무진합니다.

에, 문득 스쳐지나간 아이디어..랄까요. openAPI 형식으로 이런거 괜찮을까요 ㅇ_ㅇ)a base64_encode() 를 이용해 원본의 이미지 파일 내용을 query 로 보냅니다. API 서버에서는 이것을 받아서 지정한 크기로 resize 하고, 해당 이미지의 결과를 XML 구조로, <response>1</response><data>base64된이미지</data> 같이 되돌려 보내주면 이것을 재조합해서 로컬 서버에 섬네일 이미지 파일로 저장[...] 효율은 무지하게 떨어지겠지만, GD를 비롯한 이미지 라이브러리가 단 하나도 없지만 죽어도 섬네일을 써야겠다고 우기는 경우(-_-)라면 괜찮을지도...라는 망상이었습니다; ㅅ ;

대신 해당 API 서버는 아주 비싼 서버로 해야겠는데요... cool
(노 사장님 등골 휘시겠습니다... lol )

잠수...

11

답글: 썸네일의 지원

대신 해당 API 서버는 아주 비싼 서버로 해야겠는데요...
(노 사장님 등골 휘시겠습니다...  )

그런건 다음이나 네이버나[...] 어디 돈많은 회사 openAPI 할 때 지원하라고 협박해야죠<

12

답글: 썸네일의 지원

...

소스를 보시면 현재도 썸네일을 만들어서 지원하는 부분이 있습니다. 태터가 그렇게 만만하게 짜여진 프로그램이 아니죠 smile

모바일페이지 (블로그 주소 뒤에 /m을 붙이면 나옵니다) 의 지원을 위하여 해당 그림이 모두 gd를 사용하여 리사이징되어 전송되고 있습니다. 이를 응용해보면 어떨까요?

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

13

답글: 썸네일의 지원

inureyes 작성:

...

소스를 보시면 현재도 썸네일을 만들어서 지원하는 부분이 있습니다. 태터가 그렇게 만만하게 짜여진 프로그램이 아니죠 smile

모바일페이지 (블로그 주소 뒤에 /m을 붙이면 나옵니다) 의 지원을 위하여 해당 그림이 모두 gd를 사용하여 리사이징되어 전송되고 있습니다. 이를 응용해보면 어떨까요?

오~ 즉시 확인 결과, 정말 그렇네요. 덕분에 없는 줄 알았던 GD 확인도 하고^^
이미지 사이즈 옵션을 적용하면 바로 응용이 가능하겠군요.
예상대로 만만하지 않군요, 태터.

현재 사용중인 서버 세팅 - Apache 2.2.3 / mysql 5.0.24 / php 5.1.6
메인블로그 - http://sumomo.tistory.com/
스킨블로그 - http://mamoru.homeip.net/skin/

14

답글: 썸네일의 지원

inureyes 작성:

...

소스를 보시면 현재도 썸네일을 만들어서 지원하는 부분이 있습니다. 태터가 그렇게 만만하게 짜여진 프로그램이 아니죠 smile

모바일페이지 (블로그 주소 뒤에 /m을 붙이면 나옵니다) 의 지원을 위하여 해당 그림이 모두 gd를 사용하여 리사이징되어 전송되고 있습니다. 이를 응용해보면 어떨까요?

헐... 이미 루틴이 있다면 당연히 이용해야겠죠. 티켓 등록하러 가도 되겠죠?

15

답글: 썸네일의 지원

그런데 만약에 스킨 수정시 셈네일도 수정된다면 서버에 걸리는 부하가 장난이 아니지 싶은데요;;;

16

답글: 썸네일의 지원

썸네일을 제가 관리하는 홈페이지에 적용시킨적이 있거든요.
처음 보여질때 썸네일을 작성하도록 했는데
부하는 있지만 순간적으로 올라갈뿐 몇초까지도 안 가더군요.
썸네일은 보통 한번 생성하니까 서버 부하를 그렇게 생각하지 않아도 될듯 합니다. ^^

17

답글: 썸네일의 지원

스킨 바꿀 때마다 전부 다시 갱신해주어야 한다면 조금 문제가 있을 것 같습니다.
이 스킨이 마음에 드나 저 스킨이 마음에 드나, 혹은 스킨 테스트용으로 금방금방 바꾸시는 분들도 있을 것 같고.. (일단 하나를 정하면 그걸 가지고 오래 쓰겠지만, 고르는 단계에서는 몇 분에 하나씩 바꿀 수도 있으니까요.)

별도로 썸네일 재생성하는 링크 같은 걸 관리자 화면(혹은 플러그인 설정 화면?)에 넣는 방식이 좋을 것 같습니다. 원할 때 재생성할 수 있고 진행 상황이 표시되도록 말이죠.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

18

답글: 썸네일의 지원

서툰걸음 작성:

썸네일을 제가 관리하는 홈페이지에 적용시킨적이 있거든요.
처음 보여질때 썸네일을 작성하도록 했는데
부하는 있지만 순간적으로 올라갈뿐 몇초까지도 안 가더군요.
썸네일은 보통 한번 생성하니까 서버 부하를 그렇게 생각하지 않아도 될듯 합니다. ^^

첨부 그림이 기가단위이신 분들도 많은데 썸네일 생성때 서버 부하가...

역시나 이런 작업은 OnDemand가 낫지 않을가 하네요.

19

답글: 썸네일의 지원

daybreaker 작성:

스킨 바꿀 때마다 전부 다시 갱신해주어야 한다면 조금 문제가 있을 것 같습니다.
이 스킨이 마음에 드나 저 스킨이 마음에 드나, 혹은 스킨 테스트용으로 금방금방 바꾸시는 분들도 있을 것 같고.. (일단 하나를 정하면 그걸 가지고 오래 쓰겠지만, 고르는 단계에서는 몇 분에 하나씩 바꿀 수도 있으니까요.)

스킨 변경 후 이미지가 최초로 로딩될 때 썸네일이 생성되는 것이기 때문에 그다지 부하는 없을 것 같은데요. 스킨 바꿨다고 자기가 업로드한 이미지가 포함된 포스트를 전부 둘러보는 것은 아니잖아요. 최초의 한 사람이 볼 때 생성하고 나머지가 그걸 계속 이용하는 방식인데... 한 번에 소스 코드에 넣어버리는 것은 좀 위험한 듯 하니 일단 플러그인으로 제작해 보도록 하겠습니다.

20

답글: 썸네일의 지원

graphittie 님이 말씀하신대로.
업데이트시에 전부 새로 갱신한다면 몇명이 동시에 진행되면 바로 뻗어버리겠죠.. ^^

근데 썸네일이라는게 보통 화면에 나오는 부분만 갱신하거든요
한 화면에 많이 포스팅되어봤자 몇메가이고 한번만 이루어지기 때문에
그렇게까지 무리는 없을것으로 봤습니다.
플러그인.. 그대합니다~

21

답글: 썸네일의 지원

첨부된 그림 파일들이 많은 경우에는 리사이징 한다고 접속이 지연되어서 접속자가 기다리다가 '에잇~'하면서 나가는 건 아닐련지 ^^;

22

답글: 썸네일의 지원

cirrus 작성:

첨부된 그림 파일들이 많은 경우에는 리사이징 한다고 접속이 지연되어서 접속자가 기다리다가 '에잇~'하면서 나가는 건 아닐련지 ^^;

그 정도 상황이면 아마 썸네일 안 하고 그냥 로딩해도 느릴 걸요? 이미지 용량 때문에요.

23

답글: 썸네일의 지원

graphittie 작성:
cirrus 작성:

첨부된 그림 파일들이 많은 경우에는 리사이징 한다고 접속이 지연되어서 접속자가 기다리다가 '에잇~'하면서 나가는 건 아닐련지 ^^;

그 정도 상황이면 아마 썸네일 안 하고 그냥 로딩해도 느릴 걸요? 이미지 용량 때문에요.

그렇게 이미지가 많다면야 썸네일을 사용하지 않는 쪽이 더 오래 걸릴겁니다^^

현재 사용중인 서버 세팅 - Apache 2.2.3 / mysql 5.0.24 / php 5.1.6
메인블로그 - http://sumomo.tistory.com/
스킨블로그 - http://mamoru.homeip.net/skin/

24

답글: 썸네일의 지원

썸네일 생성을 글쓰기시 이미지 첨부할 때 같이 생성하는 쪽이 더 좋지 않나요?

pixelpost에서는 글 올릴 때 썸네일을 같이 생성하는데
썸네일 비율과 이미지 비율이 다를 경우, (예를 들어 썸네일은 1:1, 이미지는 4:3일 경우)
썸네일로 crop할 부분을 자바스크립트를 사용해
바로 이미지에서 드래그해서 선택할 수 있게 해주던데요.  그거 꽤 편하던데요 wink

썸네일이 스킨에 따라 맞춰진다면 꽤나 혼란스러울 거 같습니다.

oliverne (2006-06-20 02:12:12)에 의해 마지막으로 수정

25

답글: 썸네일의 지원

의미상에 혼란이 생기고 있습니다 smile

정리하자면, 위에서 graphittie님이 말씀하시는 썸네일은 그림 출력시 2000픽셀 정도의 큰 그림들은 로딩시간이 길기 때문에 적절한 크기로 줄여 보여주는 의미에서의 썸네일이고, 올리버네님의 썸네일은 그림의 개요를 알 수 있도록 작게 보여주는 미리보기 의미의 썸네일입니다^^ 서로 다르죠.

QA게시판에 graphittie님이 생각하시는 썸네일을 구현하는 플러그인에 대한 내용을 올려 놓았습니다. 참고해서 계속 논의해 보았으면 합니다.

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'