'분류 전체보기'에 해당되는 글 256건

  1. 2011.01.25 when case 를 이용한 문자열 대치 4
  2. 2011.01.21 awstats 설치 하기 / apache log analysis
  3. 2011.01.07 명령어실행은 되고 crontab 은 안되고..
  4. 2010.12.29 [cvs] cvs에서 프로젝트 제거하기
  5. 2010.12.17 [sample] FileUtil / File to Byte 2
  6. 2010.12.14 [CleanCode] 숨겨왔던 버릇을 고쳐줄 책 3
  7. 2010.12.09 Ruby trim / 특정 문자열 제거
  8. 2010.12.07 jar 실행파일로 만들기 1
  9. 2010.11.01 PDF 만들기 / dopdf 1
  10. 2010.08.20 티스토리 초대장을 드립니다. (댓글에 메일주소 남겨주세요 ^^) 334

select case when bookcategoryid='ENG01' then '소설'
when bookcategoryid='ENG03' then '시/에세이'
when bookcategoryid='ENG05' then '인문'
when bookcategoryid='ENG21' then '종교'
when bookcategoryid='ENG19' then '역사/문화'
when bookcategoryid='ENG23' then '예술/대중문화'
when bookcategoryid='ENG13' then '경제/경영'
when bookcategoryid='ENG15' then '자기계발'
when bookcategoryid='ENG17' then '정치/사회'
when bookcategoryid='ENG41' then '유아'
when bookcategoryid='ENG42' then '아동'
when bookcategoryid='ENG39' then '초등학습'
when bookcategoryid='ENG25' then '중/고학습'
when bookcategoryid='ENG38' then '청소년'
when bookcategoryid='ENG31' then '취업/수험서'
when bookcategoryid='ENG27' then '외국어'
when bookcategoryid='ENG09' then '건강'
when bookcategoryid='ENG29' then '과학'
when bookcategoryid='ENG26' then '기술/공학'
when bookcategoryid='ENG33' then '컴퓨터/IT'
when bookcategoryid='ENG07' then '가정/생활'
when bookcategoryid='ENG08' then '요리'
when bookcategoryid='ENG11' then '취미/스포츠'
when bookcategoryid='ENG32' then '여행/기행'
when bookcategoryid='ENG47' then '만화'
else '기타' end as bookcategoryname
 , count(*) from bookbank group by bookcategoryid order by bookcategoryid asc;



몇개이든 상관 없습니다.
그냥 나열하듯 이렇게 조건을 걸어두면 된답니다.

아파치 로그를 관리하는데 뭔가 특별한 도구가 필요한 시점이 다가왔습니다.
물론 기존에 사용하던 cat과  sort 등을 몇개의 파이프 명령어만으로 결과를 볼 수 있었지만
사람들이 어떠한 형태로 서비스를 이용하는지를 보고 싶어서 말이죠.

awstats은 프로그램을 설치하고 로그파일을 로드해서 자체DB형태로 분석해서 적재를 합니다.
적재가 완료되면 Apache를 통해 리포트를 볼 수 있도록 하고 있는 구조로써 각각의 단계를 따라서 확인해 보겠습니다.


1. 프로그램 다운로드 
   http://awstats.sourceforge.net/ 이곳에서 다운로드 받을 수 있습니다. 
   저는 awstats-7.0.tar.gz 버전을 다운로드 받았답니다.  (이후의 설명도 해당 버전 중심 설명)


2. 다운로드 받은 파일의 압축을 풉니다.
[neouserTest(neouser):/factory/work/neouser/work_awstats> tar xvfz awstats-7.0.tar.gz
awstats-7.0/
awstats-7.0/README.TXT
awstats-7.0/tools/
....... 700 정도 파일의 압축이 풀립니다..........
awstats-7.0/docs/index.html


3. 링크를 등록합니다.
[neouserTest(neouser):/usr/local> ln -s /factory/work/neouser/work_awstats/awstats-7.0 awstats

 이과정은 해도 그만 안해도 그만입니다.
 저의 경우 테스트 서버가 공용이라 /usr/local 을 더럽히고 싶지않아 위와 같이 설정 정보를 개인폴더로 추출해 놨습니다.  / 앞으로의 과정에서 폴더를 새롭게 지정하는 방식에 대해서도 함께 소개 될 예정입니다.


4. awstats 설치

[neouserTest(neouser):/usr/local/awstats/tools> ./awstats_configure.pl

----- AWStats awstats_configure 1.0 (build 1.9) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix
Warning: AWStats standard directory on Linux OS is '/usr/local/awstats'.
If you want to use standard directory, you should first move all content
of AWStats distribution from current directory:
/data2/factory/work/neouser/work_awstats/awstats-7.0
to standard directory:
/usr/local/awstats
And then, run configure.pl from this location.
Do you want to continue setup from this NON standard directory [yN] ? y

-----> Check for web server install
  Found Web server Apache config file '/usr/local/apache/conf/httpd.conf'

-----> Check and complete web server config file '/usr/local/apache/conf/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined' log files [y/N] ? y
  Add 'Alias /awstatsclasses "/data2/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/classes/"'
  Add 'Alias /awstatscss "/data2/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/css/"'
  Add 'Alias /awstatsicons "/data2/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/icon/"'
  Add 'ScriptAlias /awstats/ "/data2/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/cgi-bin/"'
  Add '<Directory>' directive
  AWStats directives added to Apache config file.

-----> Update model config file '/data2/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> neouserweb
  : 여기는 나중에 awstats 를 웹브라우져에서 볼때 parameter 가 됩니다.

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> /factory/work/neouser/work_awstats/awstats-7.0
  : 그냥 Enter 를 입력하면 /etc/awstats에 설치됩니다만 이렇게 경로를 지정하면
    해당 경로에 설치가 된답니다.


-----> Create config file '/factory/work/neouser/work_awstats/awstats-7.0/awstats.daumblog.conf'
 Config file /factory/work/neouser/work_awstats/awstats-7.0/awstats.daumblog.conf created.

-----> Restart Web server with '/sbin/service httpd restart'
httpd: unrecognized service

-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/data2/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/cgi-bin/awstats.pl -update -config=daumblog
Or if you have several config files and prefer having only one command:
/data2/factory/work/neouser/work_awstats/awstats-7.0/tools/awstats_updateall.pl now
Press ENTER to continue...


A SIMPLE config file has been created: /factory/work/neouser/work_awstats/awstats-7.0/awstats.daumblog.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'daumblog' with command:
> perl awstats.pl -update -config=daumblog
You can also read your statistics for 'daumblog' with URL:
> http://localhost/awstats/awstats.pl?config=daumblog

Press ENTER to finish...



설치과정에서 몇번의 질문을 입력받는데 위의과정을 참고 하시면 되겠습니다. 


5. 환경변수 설정하기 
환경변수는 매우 중요한 역할을 합니다. 나중에 DB만들때 어디서 어떤 로그파일을 찾아야 하는지와 언어에 대한 부분도 있습니다.


[neouserTest(neouser):/usr/local/awstats>vi awstats.neouserweb.conf

해당 위치는 링크를 걸어두었기 때문에 바로 찾아갈 수 있다는점? 알고 계시죠? (ln -s ...)

파일의 내용이 생각보다 많아서 변경이 필요한 부분만 언급드리도록 합니다. 


....
#LogFile="/var/log/httpd/mylog.log"  (기본 설정값)
LogFile="/data2/factory/work/neouser/work_awstats/log/110105.access_log"
....
#
LogFormat=1  # 로그포멧이 IIS가 아니라면 그냥 1번 이랍니다.
....
# Enter the log file type you want to analyze.
....
# Example: "ftp.domain.com"
# Example: "domain.com"
#
SiteDomain="neouserweb"   
       ## 이게 왜 이런 값을 가지는지 이해가죠? 설치에서 정한이름

....
#
#DirData="/var/lib/awstats"
DirData="/data2/factory/work/neouser/work_awstats/lib/awstats"
       ## 여기에 로그파일을 분석한 자체 DB가 쌓입니다.

....
# Default: "auto"
#
#Lang="auto"
Lang="ko"  ## 언어타입을 변경합니다.
....


사실 문서를 더욱 자세하게 봐야하는데 결과를 보고 싶은 욕심에 쉽게 눈에 띄는 부분만 옵션을 변경했습니다.   설정이 잘 안되는 경우 (http://awstats.sourceforge.net/) 에서 더 깊은 정보를 얻으시길 바랍니다. 


6. 로그도 잘 설정했으니 이제 DB를 만들어 볼까요!
로그가 잘 로드가 되었다면 이제 아파치 로그파일로 DB를 만들어야 합니다.
저는 앞서 경로를 awstats가 권장하는 루트를 이요하지 않았습니다. 그래서 DB만들때 추가적인 변경사항이 있습니다. 

[neouserTest(neouser):/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/cgi-bin> vi awstats.pl

  my $configdir         = shift;
    my @PossibleConfigDir = (
            "$DIR",
            "/data2/factory/work/neouser/work_awstats/awstats-7.0", ## 추가
            "/etc/awstats",
            "/usr/local/etc/awstats", "/etc",
            "/etc/opt/awstats"
        );


원래는 3개의 경로만 찾습니다. 하지만 새롭게 만든 곳이 있는터라 위의 경로를 추가시켜 줍니다. 
저장을 한다음 DB를 만들어내는 실행을 해보겠습니다.

가장 시간이 많이 걸리는 부분이기 때문에 이작업을 하고 기다리셔야 합니다.
지루하다면 그 시간을 이용해서 저같이 블로그를 작성해서 정보들을 공유하는것은 어떨까요? ^^ 

[neouserTest(neouser):/factory/work/neouser/work_awstats/awstats-7.0/wwwroot/cgi-bin> ./awstats.pl -update -config=neouserweb
Error: AWStats database directory defined in config file by 'DirData' parameter (/data2/hanmail/work/neouser/work_awstats/lib/awstats) does not exist or is not writable.
Setup ('/data2/hanmail/work/neouser/work_awstats/awstats-7.0/awstats.daumblog.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
[blogtest(hanadmin):/hanmail/work/neouser/work_awstats/awstats-7.0/wwwroot/cgi-bin> ./awstats.pl -update -config=daumblog
Create/Update database for config "/data2/hanmail/work/neouser/work_awstats/awstats-7.0/awstats.daumblog.conf" by AWStats version 7.0 (build 1.971)
From data in log file "/data2/hanmail/work/neouser/work_awstats/log/110105.web2n.blog.activity_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Flush history file on disk (unique url reach flush limit of 5000)
......
......
Flush history file on disk (unique url reach flush limit of 5000)
Jumped lines in file: 0
Parsed lines in file: 2044734
 Found 0 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 4933 corrupted records,
 Found 0 old records,
 Found 2039801 new qualified records.



7. 리포트를 보기 위한 Apache 설정하기
이제 얼마 남지 않았습니다. DB까지 생성된 awstats는 이제 리포트를 볼 수 있도록 하는 apache 설정 과정을 눈앞에 두고 있습니다.  열씨미!! 열씨미!!

<VirtualHost 127.0.0.1>
        ServerAdmIn neouser@neouser.net
        DocumentRoot "/usr/local/awstats/wwwroot/"
        ServerName awstats

        Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
        Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
        Alias /awstatsicons/ "/usr/local/awstats/wwwroot/icon/"
        ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

        <Directory "/usr/local/awstats/wwwroot">
            Options None
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
</VirtualHost>


이렇게 설정하는 것은 이미  apache도 공용으로 사용하고 있을테고 그래서 IP라도 급하게 사용하려는 의도랍니다. 애써 이런것이 필요없다면 좋겠지만 다양한 사례가 존재하니까요.
root 계정으로 apache를  restart 하시면 이제 awstat를 볼 수 있을 준비가 된것입니다.


8. 리포트를 봅시다!!
주소표시줄에  URL 을 입력합니다. 

http://127.0.0.1/awstats/awstats.pl?config=neouserweb

















 


shell스크립를 만들어 놓고 잘 구동되는것을 확인한다음 crontab에 등록하게 되면
잘 될꺼라는 무한신뢰를 나타낸다.
하지만 간혹 crontab에서 구동을 시켜도 잘 안되는 경우가 있다.
대표적인 사례로 shell스크립 를 이용해서 ruby나 grovy같은 외부 라이브러리를 import 해서
사용하는 사례가 대표적이다.

crontab이 만들어낸 오류

/usr/local/lib/ruby/site_ruby/1.8/dbi.rb:344:in `load_driver': Could not load driver (libclntsh.so.10.1: cannot open shared object file: No such fi
le or directory - /usr/local/lib/ruby/site_ruby/1.8/i686-linux/oci8lib.so) (DBI::InterfaceError)
    from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:227:in `_get_full_driver'
    from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:213:in `connect'
    from /neouser/script/work/common/dbi.rb:45:in `connectHDBOracle'
    from /neouser/script/work/common/dbi.rb:149:in `getResultHDB'
    from /test/work/neouser/work_ebook/report.rb:21:in `userCnt'
    from /test/work/neouser/work_ebook/report.rb:68


이상하다.. 그냥 shell 명령어를 실행했을때는 잘 나오던 결과가 crontab에서는 해당 명령어가
잘 실행되지 않는다.  그래서 내가 사용하는  test계정을 살펴본다.

[test@test ~/work/neouser/work] env
..
..
USER=test
export LD_LIBRARY_PATH=/usr/lib/oracle/10.0.0.0/client/lib
export ORACLE_SID=TESTDB
export MYSQL_INCLUDE=/test/mysql/include
export ORACLE_HOME=/usr/lib/oracle/10.0.0.0/client
export G_BROKEN_FILENAMES=1
..


계정이 실행된 배경에는 이와같은 환경 변수가 내포 되어있던 것이다.
그렇다면 스크립트안에 뭔가 더 넣어줘야겠네.. ㅎㅎ

#!/bin/bsh
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.4/client/lib
export ORACLE_SID=BLOGDB
export MYSQL_INCLUDE=/test/mysql/include
export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client
export G_BROKEN_FILENAMES=1

cd /test/work/neouser/work
./test.rb >> log.log




내가 이것으로 2시간을 허비한 것을 생각하면.. 애효..
월급주는 회사가 고맙다.


[commend:/testhhost> cvs -d :pserver:neouser@localhost:/test/cvs release -d testProject


다른 형태 (cvs 로그인 하고 난 뒤 지우기)  

[commend:/testhhost> cvs -d :pserver:neouser@localhost:/test/cvs login
Logging in to :pserver:neouser@localhost:8080/test/cvs
CVS password:
[commend:/testhhost>cvs release -d testProject
 


파일을 바이트로 변환하는 코드 입니다.
사용처는 Reomote 서버에 파일을 전송할때 유용하죠.
잊어먹으면 또 찾아야 되니 여기에 잘 보관 보관 ㅎㅎ

public static byte[] getBytesFromFile(File file) throws IOException {
     InputStream is = new FileInputStream(file);

     long length = file.length();

     // You cannot create an array using a long type.
     // It needs to be an int type.
     // Before converting to an int type, check
     // to ensure that file is not larger than Integer.MAX_VALUE.
     if (length > Integer.MAX_VALUE) {
         // File is too large
     }

     // Create the byte array to hold the data
     byte[] bytes = new byte[(int)length];

     // Read in the bytes
     int offset = 0;
     int numRead = 0;
     while (offset < bytes.length
            && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
         offset += numRead;
     }

     // Ensure all the bytes have been read in
     if (offset < bytes.length) {
         throw new IOException("Could not completely read file "+file.getName());
     }

     // Close the input stream and return bytes
     is.close();
     return bytes;
 }





책을 읽기에 너무 멀리온것은 아닐까?
개발자라고 이름을 달고 다니는 사람이 이책을 읽기에 그 많은 시간을 방치했다는게
가장 미안한 생각이였다.
좀더 일찍 알았더라면 짜장면과 스파게티가 어울어져 레거시의 진수를 느낀 코드들에게
앙드래김 선생님의 백색옷을 입혀주었을 텐데 많이 미안하다.

책이 나에게 다가온것은 12월 어느날!!
갑자기 프로젝트들이 붕붕 뜬것이다.
왜 일까? 왜 떳나?
서버발주가 늦어지고 예정된 시간이 안맞아 살짝 일정들이 공중부양을 하기 시작한 것이다.
이것은 팀원들이 준 기회라 생각하고 평소 읽고 싶었던 책 목록에서 하나 꺼내어 읽기 시작했다.
바로 CleanCode.. 영어실력이 농약 먹은지라 역서를 보게 되었다.

구구 .. 절절..
감탄과 내가 지난날 요리사였는지 아키텍쳐였는지 구분이 안가는 대목들 뿐이였다.
개인의 설명은 좀 줄여보고 책에서 이야기 하고 있는 내용에 대해서 요약된 요약본을 쓰는게 좋을것 같다.,
===========================================================
1. javaDocs 에서의  @author 의 의미하는 바는 저자이다. 우리는 이야기를 하듯 코드를 짜야 한다.
2. 의미있는 이름을 사용하자. i, j, k는 올바른 이름이 아니다.
3. 발음하기 쉬운 이름을 사용하라 genymdhms -> generationTimestamp
4. 기발한 이름은 피하자.
5. 함수는 최대한 작게 만들어라 하나의 함수에는 하나의 함수가 좋습니다.
6. if/else는 하나의 블록을 넘지 않도록 합니다.
7. 함수의 인수는 없는게 가장 좋고 1개면 충분하며 2개면 어쩔 수 없고 3개면 튜닝해보자
8. if/else가 복잡해 진다 싶으며 예외처리로 퉁쳐보자
9. 나쁜코드에 주석을 달지 마라 새로짜라 주석 자체가 나쁘다 .
 > 글쎄. 나는 주석 좋던데..
10. 가로행은 45자 정도가 좋다
11. 디미터 법칙
 > 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙
  - (객체형 : 디미터 X )final String outputDir = ctxt.getOptions().getScratchDir().getAbsoiutePath();
  - (자료형 : 디미터 ○)final String outputDir = ctxt.Options.ScratchDir.absoiutePath;
12. null을 반환 하지 마라 (168p)
 > 한줄 건너 하나씩 null을 확인하는코드로 가득한 응용프로그램을 수도 없이 봐왔다
 > 확인해야 할것이 너무 많기 때문이다. 이때문에 예외처리로
13. 클린코드의 주 목적은 (가독성 입니다. ) 187p
14. StringBuffer 는 보기  흉하다 실제 코드에서 크게 무리가 아니라면 피한다 (193) 클린코드 저자
 > 특히나 테스트의 경우에는 정말 더 그렇다.
15. 단일책임 원칙 (203)
 > 클래스나 모듈을 변경할 이유가 하나 단 하나뿐이여만 한다.
16.  응집도 (Cohesion)
 > 모든 인스턴스 변수를 메소드마다 하나씩 사용하는 클래스는 응집도가 가장 높다 .
  응집도가 높은 클래스는 가능히자도 바람직하지도 않다 .
17. 모든테스트를 실행한다, 중복을 없앤다. 프로그래머의 의도를 표현한다, 클래스와 매소드 수를 최소로 줄인다 .(240)
18. 동기화 하는 부분은 작게 만든다. 그리고 안전하게 처리한다 (Synchronized) 를 설정해서 락을 건다 (256)
 > 하지만 쓰래드의 경우 남발하면 문제가 커진다.
19. 보이스카웃의 룰을 지킬 필요가 있다 (캠프장은 왔을때 보다 깨끗하게 해놓고 간다) (359)
20. 주석에 대한 추가적인 이야기  (386)
 > 부적절한 정보, 쓸모없는 정보, 중복된 주석, 성의없는주석, 주석처리된 코드,
21. 함수에 대한 추가적인 이야기 (388)
 > 너무많은 인수, 출력인수, 플래그인수(피함), 죽은함수
22. 매직숫자는 명명된 상수로 교체하라
23. 부정 조건을 피한다.
===========================================================

고수의 향수를 느낄 수 있었던 대목도 있었다.
아틀란타행 비행기 안에서 이뤄진 2명의 개발자. 한명은 java를 배우고 싶었고 다른 한명은 스몰토크를 배우고 싶었다.
그둘이 비행기에서 내릴때는 jUnit의 기본이 만들어졌고 그것은 TDD의 중심에 서게 되었다.
캔트백은 TDD의 아버지 , 애릭감마는 이클립스 의 창시자 

 

 
  for chid in `cat /neouser/work/test.txt`
                chid = chid.chomp("\n")
   end

물론 Document 찾아보면 주옥같은 정보가 있지만
이렇게 놔두면 애써 찾으로 가지 않아도 되죠 ^^
혹시 Document를 모른다면

http://ruby-doc.org/docs/ProgrammingRuby/


이곳이 루비문법에 대한 모든 궁금증을 해결하는 곳 입니다. ^^

jar 자체를 실행파일로 만들어 사용하는 방법입니다.

1. MANIFEST.MF 

Manifest-Version: 1.0
Class-Path: .
Main-Class: LocalTest

2. 그밖에 필요한 class 를 준비합니다.

3.  jar 로 엮어 냅니다. 

C:\lang\jdk1.5.0_09\bin\jar -cfm LocalTest.jar manifest.mf *

 4. jar 실행

export LD_LIBRARY_PATH=:.
java -cp ./TestAPIClient.jar:. -jar LocalTest.jar &

 
중요한것은  MANIFEST.MF  을 만들어서 최초 mainClass 를 지정하는것 입니다.
알아서 META-INF 를 만들어내니 신경 쓰지 않아도 됩니다.







예전에는 많이 쓰던게 있었지만 ..
이게 버전업을 하면서 자꾸 다른 프로그램도 같이 설치를 합니다.
빠르고 간단하고 무료~!! 로 사용할 수 있는  PDF변환툴이 없을까 찾다가
발견하게 되었네요

http://www.dopdf.com/



안녕하세요 티스토리를 사용하실 예비 사용자 여러분~
여러분들을 위한 티스토리 초대장이 준비되어있습니다.
티스토리 가입을 원하시는 분들께서는 댓글에 메일주소를 입력해 주시면 되겠습니다.

티스토리의 가입은 초대장 기반으로 움직이기 때문에
메일주소로 초대장을 보내야만 티스토리에 가입하실 수 있습니다.


그럼 댓글을 통해 뵙겠습니다. ^^
감사합니다.

PS. 너무 많은 분의 요청으로 초대장이 바닥을 드러내고 있습니다 .덜덜..
조금 번거로우시겠지만 이곳(
http://www.tistory.com/invitation/?_top_tistory=left_invitation) 에서 다른 블로그분들에게 요청하셔도 초대장을 받으실 수 있답니다^^



1 2 3 4 5 ··· 26 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!