Search Results for '전체 분류'


2064 posts related to '전체 분류'

  1. 2011/10/16 우분투에서 웹서버 환경 구축하기 (LAMP or APM)
  2. 2011/10/16 ORACLE 오라클 유용한 쿼리 1
  3. 2011/10/16 유용한 리눅스(LINUX) 명령어
  4. 2011/10/16 php designer 를 소개 합니다.
  5. 2011/10/16 키워드 광고란 - 홈페이지무료 광고 홍보 방법
  6. 2011/10/16 도메인 등록 업체 어디가 더 좋을까? - 추천
  7. 2011/10/11 원격제어 프로그램 RealVNC 1
  8. 2011/10/11 간단한 차트 에플릿
  9. 2011/10/11 MS에서 제공하는 헤더정보 보기
  10. 2011/10/11 html 소스 암호화 시키기
  11. 2011/10/11 맑은 고딕 폰트 공개
  12. 2011/10/11 Scrollable HTML table
  13. 2011/10/11 rss xml 파싱하는 모듈 입니다.
  14. 2011/10/11 svmon 명령어
  15. 2011/10/11 MySQL root 비번을 잊어버려서 접속을 못할 경우 패스워드 초기화 방법
  16. 2011/10/10 DextUpLoad 를 이용한 WaterMark와 Thumbnail
  17. 2011/10/10 배열을 이용한 InStr로 특정 문자 검색
  18. 2011/10/10 XML 데이터 파싱하기
  19. 2011/10/10 asp utf-8 한글
  20. 2011/10/10 도메인 등록방법
  21. 2011/10/09 전남 고흥 점암 화계 + 고향
  22. 2011/10/05 dirsize - 디렉토리(서브포함) 내부 전체 파일 사이즈 구하기
  23. 2011/10/02 Remote Desktop Manager 6.1.7.0 Enterprise Edition
  24. 2011/10/02 토탈 커맨더 - 커맨드 라인 키 (Total Commander - Command Line Keys)
  25. 2011/09/25 4대 브라우저 파이어폭스 사파리 오페라 크롬 최신 포터블 모음 2
  26. 2011/09/25 chart 를 이용한 간단한 qrcode
  27. 2011/09/25 PHP 를 100% 자바 및 닷넷으로 실행 할수 있습니다.
  28. 2011/09/25 MySQL 쓰면서 하지 말아야 할 것 17가지
  29. 2011/09/21 금액을 한글로 표기 해주는 스크립트
  30. 2011/09/20 웹표준 홈페이지제작 1
우분투에서 웹서버 환경 LAMP or APM (Apache, PHP, MySQL) 를 구축하는 법입니다.

우선 apache를 설치합니다.

$ sudo apt-get install apache2

설치후 잘 작동하나 확인해 봅시다.
브라우저 주소창에 http://localhost/ 입력해 다음 메세지가 나오면 정상적으로 작동하는겁니다.

이제 PHP를 설치합니다.

$ sudo apt-get install php5 libapache2-mod-php5

설치가 끝나면 재시작 합니다.

$ sudo /etc/init.d/apache2 restart

재시작후 PHP가 잘 작동하는지 확인합니다. (다음 코드를 입력후 저장)

$ sudo gedit /var/www/testphp.php

<?php phpinfo(); ?>

브라우저 주소창에 http://localhost/testphp.php 입력해 다음 메세지가 나오면 정상적으로 작동하는겁니다.
Attachment:
사용자 삽입 이미지


마지막으로 MySQL 을 설치합시다.

$ sudo apt-get install mysql-server


설치 중간에 암호를 설정하는 화면이 나옵니다.
New password for the MySQL "root" user: 비밀번호 입력
Repeat password for the MySQL "root" user: 비밀번호 확인
Attachment:
사용자 삽입 이미지
* 참고로 비밀번호를 바꾸려면 다음처럼 입력합니다.

$ mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');


* 참고로 서버 주소를 바꾸려면 다음처럼 입력후 bind-address 라인의 IP주소를 바꿔주시면 됩니다.

$ sudo gedit /etc/mysql/my.cnf

bind-address = 127.0.0.1 # 기본설정은 localhost



설치가 끝나면 MySQL 관리자 (phpMyAdmin) 를 설치합니다.

$ sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin


설치 중간에 다음 메세지가 나오면 apache2를 선택합니다. (space bar로 선택)
Web server to reconfigure automatically: apache2
Attachment:
사용자 삽입 이미지

그후 phpMyAdmin의 데이터베이스를 dbconfig-common으로 설정합니다.

"예"를 눌러 넘어가면 phpMyAdmin에서 사용할 암호를 묻습니다.

이제 끝으로 phpMyAdmin에서 디비 서버와 연결할 비밀번호를 설정하면 설치가 끝납니다.
(임의의 암호 생성이 있는거보니 직접 제어 할일이 적은 설정 같은데 혹시 모르니 적어둡시다.)

역시 phpMyAdmin가 잘 설치되었나 확인해 봅시다.
브라우저 주소창에 http://localhost/phpmyadmin/ 입력해 다음 메세지가 나오면 정상적으로 작동하는겁니다.
Attachment:
사용자 삽입 이미지
2011/10/16 22:15 2011/10/16 22:15
  • 오라클 맥스 세션수 알아보기
    • SELECT name, value
      FROM v$parameter
      WHERE name = 'sessions'
  • 오라클 버전 알아보기
    • select * from v$version where banner like 'Oracle%';
    • #결과
      Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
  • 세션 메모리 사용량
    • http://kr.forums.oracle.com/forums/thread.jspa?threadID=464020
    • ttitle '1. Current pga, uga session memory'
      
      select a.sid, a.username, substr(a.program, 1, 25) as pgm, a.terminal,
      max(decode(c.name, 'session pga memory', trunc(value/1000)||'K', 0)) pga,
      max(decode(c.name, 'session uga memory', trunc(value/1000)||'K', 0)) uga
      from v$session a, v$sesstat b, v$statname c
      where a.sid = b.sid
      and b.statistic# = c.statistic#
      and c.name like 'session%'
      group by a.sid, a.username, substr(a.program, 1, 25), a.terminal;
      ttitle '2. Sum of current pga, uga session memory'
      
      select 'Current PGA, UGA session memory SUM:' as sum,
      sum(decode(c.name, 'session pga memory', trunc(value/1000),0))||'K' pga_sum,
      sum(decode(c.name, 'session uga memory', trunc(value/1000),0))||'K' uga_sum
      from v$session a, v$sesstat b, v$statname c
      where a.sid = b.sid
      and b.statistic# = c.statistic#
      and c.name like 'session%';
      ttitle '3. Max(peak) pga, pga session memory'
      
      select a.sid, a.username, substr(a.program, 1, 25) as pgm, a.terminal,
      max(decode(c.name, 'session pga memory max', trunc(value/1000)||'K', 0)) pga_max,
      max(decode(c.name, 'session uga memory max', trunc(value/1000)||'K', 0)) uga_max
      from v$session a, v$sesstat b, v$statname c
      where a.sid = b.sid
      and b.statistic# = c.statistic#
      and c.name like 'session%'
      group by a.sid, a.username, substr(a.program, 1, 25), a.terminal;
      ttitle '4. Sum of max(peak) pga, uga session memory'
      
      select 'Max(peak) PGA, UGA session memory SUM:' as sum,
      sum(decode(c.name, 'session pga memory max', trunc(value/1000), 0))||'K' pga_m_sum,
      sum(decode(c.name, 'session uga memory max', trunc(value/1000), 0))||'K' uga_m_sum
      from v$session a, v$sesstat b, v$statname c
      where a.sid = b.sid
      and b.statistic# = c.statistic#
      and c.name like 'session%';
    2011/10/16 14:20 2011/10/16 14:20

    시스템 모니터링

    • top -d 1
      • 시스템 프로세스 모니터링(표시 딜레이 1초)
    • crontab
      • crontab -l : 크론탬 목록
      • crontab -e : 크론탭 수정
      • crontab -l -u {사용자} : 특정사용자 크론탭 목록(root권한 필요)
    • ps -ef
      • 현제 모든 프로세스 목록
    • vmstat 1 100 : 1초 딜레이로 100번 시스템의 상태를 보여준다.
    • sar : 단위 시간별 CPU 상태를 보여준다.
    • 메모리
      • free -lm : 메모리 정보(물리, 사용량, 스왑 등)
      • 스왑메모리 : cat /proc/swaps (크기 및 사용량)

    시스템 관리

    • crontab
      • crontab -l : 크론탬 목록
      • crontab -e : 크론탭 수정
      • crontab -l -u {사용자} : 특정사용자 크론탭 목록(root권한 필요)
    • su - : root 로 로그인
    • netstat -ant : 현재 모든 네트워크 상태중 TCP상태를 hostname변환없이 보여준다.

    시스템 정보

    • uname -a : OS정보를 보여준다.
      • ex > Linux dev 2.6.18-92.el5PAE #1 SMP Tue Apr 29 13:31:02 EDT 2008 i686 i686 i386 GNU/Linux
    • uptime : OS의 간단한정보(동작시간, 사용자수, load average)를 보여준다.
      • ex > 14:59:44 up 343 days, 2:04, 5 users, load average: 0.07, 0.02, 0.00
    • ifconfig : 현재 네트워크 카드의 상태를 보여준다. (root 권한 필요)
    • ulimit -Sa : OS의 제한 설정을 보여준다.
    검색
    • grep
      • grep -r {찾을글자} . : 현 폴더의 하위 폴더까지 포함해서 파일 속에 찾을 글자가 있는 파일을 찾아준다.
      • {명령어} | grep {찾을글자} : {명령어}의 축력 내용에서 찾을 글자가 있는 line 만 보여준다.
    • find -name "{찾을글자}*" : 현 폴더를 기준으로 찾을글자로 시작되는 파일명을 가진 파일 목록을 보여준다.

    기타

    • ctrl+d : 터미널 로그아웃
    • 압축
      • 하기
        • tar cvfzp {압축파일명} {압축대상}
        • tar cvfzp file.tar.gz * : 현재 폴더의 모든 파일을 압축
      • 풀기
        • tar xvfzp file.tar.gz : 현재 폴더에 풀기
      • 목록보기
        • tar ztvf file.tar.gz
    • vi : 텍스트 에디터
      • vi -R {파일명} = view {파일명} : 파일을 읽기 전용으로 열기
    2011/10/16 14:20 2011/10/16 14:20
    사용자 삽입 이미지
    php designer 를 소개 합니다.

    홈페이지 :: http://www.mpsoftware.dk/phpdesigner.php

    그동안 에디터플러스만 10년간 사용하다가 젠드스트디오, 이클립스PDT 등 전향할까 시도했었는데 무겁고 손이 안익어 다시 에디터 플러스로 돌아가더군요.

    그러던중에 어느분께서 phpdesigner 를 소개해 주었는데 다운로드 받아서 설치해 보니 정말 좋더군요.

    매뉴얼속에 pear, javascript, smarty , css, html, php, phpdesigner 이 함께 들어있어서 오프라인에서도 매뉴얼을 쉽게 검색해 볼수 있습니다.

    한번 써 보세요.                                       
    2011/10/16 14:17 2011/10/16 14:17

    키워드 광고란?

    검색엔진에서 특정 키워드를 검색했을 때 사이트 상단 특정위치에 등록되어 노출되게 하는 광고 가 키워드광고입니다.
    광고비는 3개월~12개월 단위의 정액제로 많이 노출되거나 클릭되어도 광고비변동의 부담이없습니다.

    키워드광고 가능한 검색엔진

    키워드란?
    사람들이 검색하는 단어
    즉,검색어라고 생각하시면 됩니다

    키워드광고 가능한 검색엔진
    광고, 어떻게 해야할까?

    오버추어,키워드광고,혹은 CPC광고,CPM광고,CPH광고 등 웹상에서 광고를 할 수 있는 방법은 무궁무진하게 많습니다.
    광고방법에도 각각 차이가있고 일반인들이 이해하기 어려운 전문용어도 많아 웹컨설턴트없이 개인이 광고를 진행하기엔 어려움이 많습니다. 광고는 너무 안해도 너무 과해도 안됩니다. 업계동향이나 사이트 분석을 통해 적절한 광고를 하는것이 좋습니다.

    키워드 광고의 특징

    1. 특정 키워드(검색어)를 구매하여 검색결과에 페이지에 사이트가 보여지도록 하는 광고로서 해당 정보를 원하는 이용자들에게만 100% 타겟팅 되어 노출되는 매우 효율적인 광고 형태입니다.
    2. 키워드 광고는 CPC(노출에 따른 광고비를 비줄하는 방식),CPM(클릭에 따른 광고비를 지불하는 방식)등 여러가지 방법이있습니다.
    3. 한번 광고로 여러 검색엔진에 동시 노출되는 것이 아니라 지정한 검색엔진에서만 노출 됩니다. (쓸데없는 광고비 지출을 줄일 수 있습니다.)

     

    ------------------------------------------------------------------------------------------------------------
    이런 형식에 광고 방법은 포털 사이트에 돈만 빼주는 방식입니다. 물건을 사고 팔고 할때. 블로그 웹페이지 광고 방법이 있습니다.

    이런 형식에 광고 방법은 사람들로 하여금 광고라는 생각보다 정보라는 생각으로 인지 하므로 . 홍보 효과가 배가 되는거죠

    먼저 2가지 방법을 알려 드리도록 하겠습니다.

    네이버 . 구글 . 기타 블로그를 개설 합니다. 그리고 . 필요로 하는 내용을 삽입후. 글을 작성후 . 원하는 페이지에 링크를 걸어

    놓으면. 블로그 웹페이지 검색에 걸리게 됩니다.

    하지만. 글을 여러번 써야 하는 번거루움이 있고 블로그를 통해 다시 홈페이지로 들어 와야 하는 번거루움이 있습니다.

    블로그만 클릭후 홈페이지로 유도 해도 잘 접속을 안하곤 하죠.

    홈페이지 솔루션을 웹표준으로 개발 하는 방법이 있습니다 이렇게 할경우 구글이나 기타. 검색 엔진에서 자동으로

    글을 가져 가므로. 아주 좋은 방법이라 생각합니다.

    http://webarty.com 에 접속해서 아티보드 3,0을 다운받아. 설치 하세요 그리고. 게시판을 생성후 . 그곳에 글을 쓰세요.

    그 글쓰는 것만으로 . 광고가 시작 되는것입니다.
    2011/10/16 14:12 2011/10/16 14:12

    도메인을 등록하려고 보면 수많은 구매 사이트가 존재하고 있다는 것을 알수 있다.

    하지만 그래서 고민이 더 되는 것은 사실이다.  그럼 어떤 구매 사이트를 이용하는것이 좋을까? 도메인

    구매사이트는 어느세 우후죽순 생겨나서 너무나도 많이 있다. 그 많은 수많큼이나 가격,서비스도 천차만별이다.

    도메인 판매라는 것이 사실 어떤 특정 기업이 가지고 있는 것이 아니기에 어디를 이용해도

    구입은 할수 있다. 도메인 판매 사이트들은 사실 구매 대행 사이트에 불과 한것이다.

    구매를 대리로 해주고 관리까지 해준다. 도메인 가격으로 책정된 그가격 속에 이런 비용까지

    녹아 들어가 있는것이다. 이러하니 보다 골똘히 골라야 하는 것이다.

    나의 경우 몇개의 도메인을 가지고 있으며 아는 지인들의 도메인을 다수 구매해준 경험이있어

    본의 아니게 여러개 사이트에서 구매한 경험이 있다.  그래서 조금이나마 도움이 될까 싶어 정리해 본다.


    추천 도메인 구매 사이트

    1,웹아티 (주)오픈코리아  - 웹솔루션 및 보안솔루션 개발 회사로 믿을수 있는 기업이다. 도메인 가격도 저렴하다.

    웹호스팅 가격도 저렴해서 대다수의 사람들이 웹아티 에서 도메인을 구입하고 웹아티에서 웹호스팅을 한다.

    웹포워딩 기능을 무료로 지원해주며 웹호스팅 신청시 웹표준 솔루션 아티보드 ,웹메일,그룹웨어 솔루션을

    무료로 쓸수 있도록 해준다. 아티보드 3.0 을 설치하면 초보자도 쉽게 홈페이지를 구축 할수 있다.

    2, 아이네임즈  - 많은 대기업 클라인언트를 보유하고 있어 비교적 안정적인

    서버를 구축하고 있다. 웹호스팅역시 저렴한편이며

    믿을수 있는 기업이기에 한곳에서 도메인 호스팅을 해결할수 있다.

    3, 파란 도메인 - 파란닷컴이 도메인과 웹호스팅 분야로 과감하게 진출하였다.

    포탈을 운영한 노하우를 사업적으로 녹아내어 안정적인 서버 구축과

    부가 서비스를 제공해준다.

    4, 넷피아 - 한글 도메인을 취급하는 곳이다. 한글 도메인은 WWW를 생략하고 주소창에

    한글만 넣어도 된다는 장점이 있어. 메인 도메인보다는 광고 수준에서

    구입후 포워딩을 많이 해둔다. 참고 하시길...


    2011/10/16 11:54 2011/10/16 11:54

    원격제어 프로그램중 하나입니다.

    가볍고 프리웨어라 쓸만 합니다 ^^

    PC A가 PC B를 접속하는 기준으로 설명합니다.

    ①. PC A, B 모두 이 프로그램을 설치 합니다. (next로 디폴트로 모두 설치하면 됩니다.)

    ②. PC A는 클라이언트가 되는 것이고 B는 서버가 되는겁니다.

    고로 B컴퓨터에서 시작 > 프로그램 > RealVNC > Run VNC Server 를 실행합니다.

    그럼 다음과 같은 창이 나타납니다.

    사용자 삽입 이미지

    좌측 상단의 password 부분만 입력하고 다른 설정은 건들지 않습니다.

    여기선 1111 이라고 하겠습니다.

    그럼 PC B의 서버측은 준비가 다 되었습니다.

    . 이제 PC A에서 B로 접속해 봅시다.

    PC A에서 시작 > 프로그램 > RealVNC > Run VNC Viewer 를 실행합니다.

    사용자 삽입 이미지

    PC B의 아이피가 210.110.29.29 라고 칩시다.

    VNC server 란에는 서버의 아이피 + : + 비밀번호를 입력합니다

    즉 210.110.29.29:1111 됩니다.

    OK 버튼을 클릭하면 원격제어가 시작됩니다.

    2011/10/11 12:23 2011/10/11 12:23

    제가 자주 이용하는 차트 애플릿 입니다.

    테드차트라고 다들 들어보셨을겁니다.

    그냥 간단한 차트라면 구현하기엔 정말 좋습니다.

    2011/10/11 12:20 2011/10/11 12:20

    ieHTTPHeaders 프로그램보다 훨씬 자세한 정보를 알려줍니다

    해더정보뿐만 아니라 패킷정보도 보여줍니다

    닷넷 프레임웍이 설치되어 있어야 합니다


    사용자 삽입 이미지

    2011/10/11 12:18 2011/10/11 12:18

    html 소스를 암호화 시켜줍니다

    소스 양에따라 시간이 오래 걸릴수도 있네요

    2011/10/11 12:17 2011/10/11 12:17
    클리어타입 적용은;
    1. 바탕화면 빈 공간 오른쪽 클릭 - 속성(또는 제어판 - 디스플레이)
    2. 화면배색 탭 - 효과
    3. 두번째 항목인 '화면 글꼴의 가장자리를 다듬는 데 다음 방법 사용' 을 Clear Type으로 변경

    XP에서 기본 제공되는 글꼴 중 어떠한 글꼴도 Clear Type이 적용되지 못하는 글꼴이었습니다. Vista에서 기본 시스템 글꼴인 '맑은 고딕'은 적용이 가능하고요.
    MS에서 XP를 위해서 Vista 기본 글꼴인 맑은 고딕을 공개한게 이 게시물입니다.
    * ClearType Tuner를 이용하시면 더욱 간편하게 설정하실 수 있습니다. http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx

    2011/10/11 12:12 2011/10/11 12:12

    Scrollable HTML table

    Overview

    Scrollable HTML table JavaScript code can be used to convert tables in ordinary HTML into scrollable ones. No additional coding is necessary. All you need to do is put header rows (if you need them) in THEAD section, table body rows in TBODY section, footer rows (if you need them) in TFOOT section and give your table an ID field, include the webtoolkit.scrollabletable.js file and create ScrollableTable() object after each table.

    Scrollable HTML table code tested in IE5.0+, FF1.5+.

    Source code for index.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>Scrollable HTML table</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    <script type="text/javascript" src="webtoolkit.scrollabletable.js"></script>

    <style>
    table {
    text-align: left;
    font-size: 12px;
    font-family: verdana;
    background: #c0c0c0;
    }

    table thead {
    cursor: pointer;
    }

    table thead tr,
    table tfoot tr {
    background: #c0c0c0;
    }

    table tbody tr {
    background: #f0f0f0;
    }

    td, th {
    border: 1px solid white;
    }
    </style>
    </head>

    <body>

    <table cellspacing="1" cellpadding="2" class="" id="myScrollTable" width="400">
    <thead>
    <tr>
    <th class="c1">Name</th>
    <th class="c2">Surename</th>
    <th class="c3">Age</th>
    </tr>
    </thead>

    <tbody>
    <tr class="r1">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">30</th>
    </tr>
    <tr class="r2">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">31</th>
    </tr>
    <tr class="r1">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">32</th>
    </tr>
    <tr class="r2">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">33</th>
    </tr>
    <tr class="r1">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">34</th>
    </tr>
    <tr class="r2">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">35</th>
    </tr>
    <tr class="r1">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">36</th>
    </tr>
    <tr class="r2">
    <td class="c1">John</th>
    <td class="c2">Smith</th>
    <td class="c3">37</th>
    </tr>
    </tbody>

    <tfoot>
    <tr>
    <th class="c1">Name</th>
    <th class="c2">Surename</th>
    <th class="c3">Age</th>
    </tr>
    </tfoot>
    </table>

    <script type="text/javascript">
    var t = new ScrollableTable(document.getElementById('myScrollTable'), 100);
    </script>

    </body>
    </html>

    Source code for webtoolkit.scrollabletable.js

    /**
    *
    * Scrollable HTML table
    * http://www.webtoolkit.info/
    *
    **/

    function ScrollableTable (tableEl, tableHeight, tableWidth) {

    this.initIEengine = function () {

    this.containerEl.style.overflowY = 'auto';
    if (this.tableEl.parentElement.clientHeight - this.tableEl.offsetHeight < 0) {
    this.tableEl.style.width = this.newWidth - this.scrollWidth +'px';
    } else {
    this.containerEl.style.overflowY = 'hidden';
    this.tableEl.style.width = this.newWidth +'px';
    }

    if (this.thead) {
    var trs = this.thead.getElementsByTagName('tr');
    for (x=0; x<trs.length; x++) {
    trs[x].style.position ='relative';
    trs[x].style.setExpression("top", "this.parentElement.parentElement.parentElement.scrollTop + 'px'");
    }
    }

    if (this.tfoot) {
    var trs = this.tfoot.getElementsByTagName('tr');
    for (x=0; x<trs.length; x++) {
    trs[x].style.position ='relative';
    trs[x].style.setExpression("bottom", "(this.parentElement.parentElement.offsetHeight - this.parentElement.parentElement.parentElement.clientHeight - this.parentElement.parentElement.parentElement.scrollTop) + 'px'");
    }
    }

    ;


    }
    2011/10/11 12:10 2011/10/11 12:10

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script>

    /*
    사용방법.
    var xmlDoc = new rssXmlParser(req.responseXML);
    xmlDoc["title"] ;
    xml.item[0]["title"]
    */

    function rssXmlParser(xml){
    //node
    var getNode =function (obj, tag){
    return obj.getElementsByTagName(tag)[0];
    }

    //node value
    var getValue = function (obj){
    try{
    return obj.firstChild.nodeValue;
    } catch(e){
    return null;
    }
    }
    //node item
    var getItem = function (obj){
    var item = new Object();
    var objLength = obj.childNodes.length;

    for(var j =0;j <objLength ; j++){
    var eleItem = obj.childNodes[j];
    item[eleItem.nodeName] =getValue(eleItem);
    }
    return item;
    }

    var xmlParseData = new Object();
    var item_list = new Array();
    var channel = getNode(xml, "channel");
    var channelLength = channel.childNodes.length;

    for(var i =0;i <channelLength ; i++){

    var sNode = channel.childNodes[i];

    if(sNode.childNodes.length >1){
    var pData = getItem(sNode);

    if(sNode.nodeName== "image"){
    xmlParseData.image = pData;
    }else{
    item_list.push(pData);
    }
    }else{
    xmlParseData[sNode.nodeName] =getValue(sNode);
    }

    }
    xmlParseData.item = item_list;

    return xmlParseData;

    }

    function testF(){
    var requestReq;
    var cnt = 0;
    var xml = new Array();
    //xml[cnt++] = "MSXML2.XMLHTTP.5.0";
    xml[cnt++] = "MSXML2.XMLHTTP.4.0";
    xml[cnt++] = "MSXML2.XMLHTTP.3.0";
    xml[cnt++] = "MSXML2.XMLHTTP";
    xml[cnt++] = "Microsoft.XMLHTTP";
    xml[cnt++] = "WinHttp.WinHttpRequest.5";
    xml[cnt++] = "WinHttp.WinHttpRequest.5.1";

    if (window.ActiveXObject) {
    for (var i=0; i<xml.length; i++) {
    try {
    requestReq = new ActiveXObject(xml[i]);
    break;
    } catch(e) {
    requestReq = null;
    }
    }
    } else if(window.XMLHttpRequest) {
    try {
    requestReq = new XMLHttpRequest();
    } catch(e) {
    requestReq = null;
    }
    }

    requestReq.open("POST", "http://blog.rss.naver.com/qmffjem09.xml", true);

    requestReq.onreadystatechange = function(){
    try{
    if(requestReq.readyState==4){
    if(requestReq.status==200){
    rssXmlView(requestReq);
    }
    }
    }catch(e){
    alert(e.name+"\n"+e.description);

    }

    };// function_name;
    requestReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    requestReq.send("");
    }

    function rssXmlView(requestReq){

    var obj = rssXmlParser(requestReq.responseXML);

    // 사용법.

    alert(obj["title"] +"\n"+obj.item[0]["title"])
    }
    </script>
    </HEAD>

    <BODY>
    <input type ="button" value = "rssXml파싱" onclick ="testF()">
    </BODY>
    </HTML>

    2011/10/11 12:09 2011/10/11 12:09

    svmon 명령어 (참고문서 : AIX 5.1 Command(pdf) 내용에서 발췌)
    -------------------------------------------------------------

    svmon 명령은 메모리의 현재 상태에 관한 정보를 보여줍니다.

    표시된 정보는 메모리의 실제 스냅샵을 구성하지 않는데,

    그 이유는 svmon 명령이 인터럽트가 가능한 사용자 레벨에서 수행되기 때문입니다.

    세그먼트는 페이지 세트로, 메모리 소비를 보고하기 위해 사용되는 기본 오브젝트입니다.

    그러므로, svmon에 의해 보고되는 통계는 페이지 수 측면에서 표시됩니다.

    1 페이지는 가상 메모리의 4K 블록이고, 1 프레임은 실제 메모리의 4K 블록입니다.

    달리 명시하지 않으면, 모든 통계는 4096 바이트 메모리 페이지 단위입니다.

    메모리 소비는 inuse, free, pin, virtual 및 paging space 계수기를 사용하여 보고됩니다.

    - inuse 계수기 : 사용된 프레임 수

    - free : 모든 메모리 풀에서 사용 가능한 프레임 수

    - pin : 고정된 프레임 수, 즉 스왑될 수 없는 프레임 수

    - virtual : 시스템 가상공간에 할당된 페이지 수

    - paging space : 페이징 공간에서 예약되거나 사용된 페이지 수

    한 세그먼트를 여러 개의 프로세스에서 사용할 수 있습니다.

    그러한 세그먼트에 속한 각 페이지는 해당 세그먼트를 사용하는 각 프로세스에 대해서

    inuse, pin, virtual 또는 pgspace 필드에서 설명됩니다.

    그러므로, 활성화된 모든 프로세스에 걸친 inuse, pin, virtual 및 pgspace 필드의 합계가

    메모리나 페이징 공간의 총 페이지 수를 초과할 수도 있습니다.

    VMM은 통계 목적으로만 virtual 페이지 계수기를 관리합니다.

    즉, 항상 최신 데이터가 아니며 값도 해당되는 inuse 계수기보다 작을 수 있습니다.

    세그먼트는 다음의 5가지 유형 중 하나에 속합니다.

    persistent - 파일 및 디렉토리 조작에 사용되는 세그먼트

    working - 프로세스 및 공유 메모리 세그먼트의 데이터 영역을 구현하기 위해 사용되는 세그먼트

    client - NFS와 CD-ROM 파일시스템과 같은 일부 가상 파일 시스템을 구현하기 위해 사용

    mapping - 메모리에서 파일 맵핑을 구현하기 위해 사용되는 세그먼트

    real memory mapping - 가상 주소 공간으로부터 10 공간에 액세스하기 위해 사용되는 세그먼트

    ----------------------------------

    시스템 전체 메모리 사용량 통계 확인

    ----------------------------------

    # svmon -G

    size inuse free pin virtual
    memory 32760 22182 10578 6035 25932
    pg space 65536 8061

    work pers clnt lpage
    pin 6035 0 0 0
    in use 17057 5125 0 0

    간단히 설명하면, 전체 메모리 사이즈는 32760*4096byte/1024/1024 = 127MB.

    Free Memory는 10578*4096/1024/1024 = 41MB

    4096byte를 곱한 이유는 svmon에서 나오는 결과는 전부 페이지단위(1page=4K)이므로....

    (설명)

    memory - 다음을 포함해 실제 메모리의 사용을 설명하는 통계를 지정.

    - size 실제 메모리 프레임의 수(실제 메모리 크기)
    - inuse 페이지를 포함되는 프레임의 수
    - free 모든 메모리 풀 중 사용 가능 프레임의 수
    - pin 고정된 페이지를 포함하는 프레임의 수
    - virtual 시스템 가상 영역내에 할당된 페이지 수

    in use - 다음을 포함해 사용중 인 실제 메모리의 서브세트에 대한 통계

    - work 작업 세그먼트 페이지를 포함하는 프레임 수
    - pers 영구 세그먼트 페이지를 포함하는 프레임 수
    - clnt 클라이언트 세그먼트 페이지를 포함하는 프레임 수

    pin - 다음을 포함해 고정된 페이지가 있는 실제 메모리의 서브세트에 대한 통계 열거.

    - work 작업 세그먼트 페이지를 포함하는 프레임 수
    - pers 영구 세그먼트 페이지를 포함하는 프레임 수
    - clnt 클라이언트 세그먼트 페이지를 포함하는 프레임 수

    pg space - 페이지공간의 사용을 설명하는 통계를 나타냅니다

    - size 페이징 공간의 크기
    - inuse 사용 중인 페이징 공간 페이지 수

    -----------------------------
    유저별 메모리 사용량 통계 확인
    -----------------------------

    # svmon -U root -d ; root 사용자가 사용하는 메모리 내역
    ===============================================================================
    User Inuse Pin Pgsp Virtual LPageCap
    root 10556 2000 5555 16182 Y

    -------------------------------------------------------------------------------
    Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd LPage
    3922 dtgreet 5045 1823 1705 7781 N N N
    7020 rpc.mountd 5032 1826 1595 7629 N Y N
    8514 hostmibd 5010 1823 1586 7281 N N N
    4518 X 4981 1825 1938 7838 N N N
    1 init 4979 1823 1579 7576 N N N
    13420 getty 4963 1823 1586 7245 N N N
    7482 portmap 4877 1823 1614 7513 N N N
    13158 getty 4858 1823 1674 7239 N N N
    2524 telnetd 4741 1823 1574 7292 N N N
    3600 telnetd 4741 1823 1574 7292 N N N
    15494 i4lmd 4729 1823 1586 7238 N N N
    15752 i4lmd 4722 1823 1586 7221 N N N
    7998 snmpd 4717 1823 1616 7339 N N N
    12412 i4lmd 4712 1823 1583 7213 N N N
    16512 i4lmd 4710 1823 1597 7234 N N N
    14972 i4llmd 4705 1823 1627 7217 N N N
    14466 i4llmd 4680 1826 1686 7284 N Y N
    17386 -ksh 4671 1823 1574 7214 N N N
    18012 -ksh 670 1823 1574 7214 N N N
    8256 dpid2 4647 1823 1576 7254 N N N
    4756 svmon 4631 1823 1574 7211 N N N
    7740 inetd 4628 1823 1574 7225 N N N
    9834 cron 4626 1823 1594 7227 N N N
    5166 errdemon 4624 1823 1661 7250 N N N
    16256 IBM.AuditRMd 4599 1830 2010 7675 N Y N
    5704 prngd 4598 1823 1574 7193 N N N
    15998 IBM.ERrmd 4592 1830 2114 7785 N Y N
    14212 rmcd 4586 1826 2112 7733 N Y N
    7226 syslogd 4573 1823 1608 7205 N N N
    5422 srcmstr 4572 1823 1656 7229 N N N
    2704 dtlogin <:0> 4567 1823 1602 7202 N N N
    15232 IBM.CSMAgentR 4563 1832 2125 7775 N Y N
    14712 ctcasd 4562 1830 1968 7566 N Y N
    9550 biod 4555 1823 1574 7160 N N N
    13938 diagd 4546 1823 1627 7188 N N N
    6268 nfsd 4542 1823 1597 7175 N N N
    11356 qdaemon 4537 1823 1608 7173 N N N
    10586 rpc.lockd 4527 1823 1635 7199 N N N
    3412 syncd 4525 1823 1603 7159 N N N
    4246 dtlogin 4520 1823 1601 7152 N N N
    10846 uprintfd 4517 1823 1580 7131 N N N
    11618 writesrv 4516 1823 1638 7191 N N N
    11094 rpc.lockd 2907 1832 1561 4326 N Y N
    10066 nfsd 2906 1832 1561 4326 N Y N
    1548 gil 2898 1827 1563 4320 N Y N
    9030 kbiod 2888 1824 1559 4306 N Y N
    6726 j2pg 2887 1828 1572 4318 N Y N
    1032 xmgc 2884 1823 1559 4302 N N N
    1290 netm 2884 1823 1559 4302 N N N
    8774 rtcmd 2884 1823 1559 4302 N N N
    774 reaper 2884 1823 1561 4302 N N N
    3102 lvmbb 2882 1823 1561 4302 N N N
    516 wait 2882 1823 1559 4300 N N N
    1806 wlmsched 2882 1823 1561 4302 N N N
    0 swapper 4 2 0 4 N N N

    ...............................................................................
    SYSTEM segments Inuse Pin Pgsp Virtual
    3008 1888 1631 4487

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    0 0 work kernel seg - 2880 1821 1559 4298
    8c5 - work - 23 9 1 23
    16aa - work - 22 9 1 23
    2792 - work - 11 9 18 29
    1a0f - work - 11 7 12 23
    2191 - work - 11 7 12 23
    3f3e - work - 11 7 15 22
    1eae - work - 10 3 0 10
    3619 - work - 9 3 3 10
    2752 - work - 7 3 8 11
    e26 - work - 5 5 1 6
    1a2d - work - 4 4 1 5
    3c9f - work - 4 1 0 4

    ...............................................................................
    EXCLUSIVE segments Inuse Pin Pgsp Virtual
    5915 112 3909 8875

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    aa4 2 work process private - 396 2 15 410
    182c 2 work process private - 374 2 4 377
    19cc 2 work process private - 327 2 119 446
    365b - pers /dev/hd2:12338 - 312 0 - -
    3b9d 2 work process private - 296 2 345 640
    2473 2 work process private - 275 2 38 313
    ..........
    ..........(중략)

    3f9e - pers /dev/hd9var:308 - 0 0 - -
    1e8e 1 pers code,/dev/hd2:10638 - 0 0 - -
    d67 - pers /dev/hd9var:2127 - 0 0 - -
    27b3 - work shmat/mmap - 0 0 2 2
    2151 - pers /dev/hd9var:2115 - 0 0 - -
    2012 3 mmap mapped to sid 1408 - 0 0 - -
    1d4f - pers /dev/hd9var:120 - 0 0 - -

    ...............................................................................
    SHARED segments Inuse Pin Pgsp Virtual
    1633 0 15 2820

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    2a15 d work shared library text - 1633 0 15 2820

    -----------------------------------
    특정 명령어의 메모리 사용량 통계 확인
    -----------------------------------

    # svmon -C inetd ; inetd 데몬에 의해 사용되어지는 메모리 통계

    ===============================================================================
    Command Inuse Pin Pgsp Virtual
    inetd 4628 1823 1574 7225

    ...............................................................................
    SYSTEM segments Inuse Pin Pgsp Virtual
    2880 1821 1559 4298

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    0 0 work kernel seg - 2880 1821 1559 4298

    ...............................................................................
    EXCLUSIVE segments Inuse Pin Pgsp Virtual
    115 2 0 107

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    2a74 2 work process private - 62 2 0 62
    367a f work shared library data - 45 0 0 45
    3a7c 1 pers code,/dev/hd2:10656 - 7 0 - -
    162e - pers /dev/hd2:68574 - 1 0 - -

    ...............................................................................
    SHARED segments Inuse Pin Pgsp Virtual
    1633 0 15 2820

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    2a15 d work shared library text - 1633 0 15 2820

    -------------------------------
    프로세스 메모리 사용량 통계 확인
    -------------------------------

    # svmon -P ; 시스템 프로세스별 메모리 통계 확인

    -------------------------------------------------------------------------------
    Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd LPage
    3922 dtgreet 5045 1823 1705 7781 N N N

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    0 0 work kernel seg - 2880 1821 1559 4298
    2a15 d work shared library text - 1633 0 15 2820
    19cc 2 work process private - 327 2 119 446
    3e5d f work shared library data - 173 0 11 188
    27d3 - work shmat/mmap - 29 0 1 29
    2b14 1 pers code,/dev/hd2:116793 - 3 0 - -
    3198 - pers /dev/hd9var:2182 - 0 0 - -
    106a - pers /dev/hd2:145819 - 0 0 - -
    186e - pers /dev/hd2:68956 - 0 0 - -
    1f8f - pers /dev/hd9var:2125 - 0 0 - -
    ......
    ......
    ......
    -------------------------------------------------------------------------------
    Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd LPage
    0 swapper 4 2 0 4 N N N

    Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
    2412 2 work process private - 4 2 0 4

    프로세스 개별확인은 # svmon -P (pid)

    ---------------
    세그먼트 테이블
    ---------------
    세그먼트 유형 세그먼트 사용법 설 명
    ----------------------------------------------------------------------------------------
    persistent 로그파일 로그
    persistent 파일 및 디렉토리 장치 이름: i-노드 번호
    persistent 대형 파일 대형 파일 장치 이름: i-노드 번호
    mapping 파일 맵핑 sid 소스 sid에 맵핑됨
    working 프로세스 및 공유 메모리 세그먼트의 VSID및 ESID를 기초로 세그먼트의
    데이타영역 역할에 따라 다름
    client NFS 및 CD-ROM 파일 상 동
    rmapping IO 영역 맵핑 상 동

    이상입니다. 그냥 대충 svmon -G 정도만 아시면 될 듯 합니다.

    많이 헷갈리네요~ 더 연구를 해야할 듯...

    2011/10/11 12:08 2011/10/11 12:08

    MySQL 설치하면서 비번을 잘못 입력(오타)하거나 기존 root 개정을 잊어 버린경우 다시 설치 하지 않고 비번만 변경할수 있습니다.
    기존 MySQL 프로세스 종료하고 안전모드로 접속한후에 개정 테이블(user)에서 root 패스워드를 변경하는 방법입니다.

    # MySQL 프로세스 죽이기
    /etc/init.d/mysqld stop
    killall mysqld

    # MySQL 안전모드 접속후 root 비번 변경
    cd /usr/local/mysql/bin
    ./mysqld_safe --skip-grant &
    use mysql;
    update user set password=password('비밀번호') where user='root';
    FLUSH PRIVILEGES;
    exit;

    # 접속확인
    mysql -uroot -p mysql

    비번 입력후 mysql> 접속이 잘되면 성공입니다.

    2011/10/11 11:39 2011/10/11 11:39
    <%@ Language=VBScript %>
    <%
    Dim UpPath, fPath(1), fSize(1), tmp
    Dim fWaterMark, fThumbnail, SourceFileName

    Set QueryForm = Server.CreateObject("DEXT.FileUpload")
    QueryForm.DefaultPath = "C:\Temp"

    ' 원본 업로드
    UpPath = QueryForm("file").Save
    response.write "Save as Source Image:"& UpPath


    Set objImage = Server.CreateObject("DEXT.ImageProc")

    if objImage.SetSourceFile(UpPath) = True then
    ' FileNameWithoutExt 속성은 업로드한 파일의 이름을 리턴한다.(확장자 제외)
    tmp = "/DEXTUploadProSamples/Image/WaterMark/watermark.bmp"
    SourceFileName = QueryForm("file").FileNameWithoutExt

    fPath(0) = "C:\Temp\"& SourceFileName &"(WaterMark).jpg"
    fPath(1) = "C:\Temp\"& SourceFileName &"(Thumbnail).jpg"

    ' 워터마크 처리
    fWaterMark = objImage.SaveAsWatermarkImage(tmp,fPath(0),-10,-10,false)
    response.write "Save as Watermark Image: "& fWaterMark
    end if

    if objImage.SetSourceFile(fWaterMark) = True then
    ' 워터마킹 처리 된 이미지로 썸네일 처리 한다.
    fSize(0) = objImage.ImageWidth / 2
    fSize(1) = objImage.ImageHeight / 2
    fThumbnail = objImage.SaveasThumbnail(fPath(1),fSize(0),fSize(1),false)
    response.write "Save as Thumbnail: "& fThumbnail
    end if

    Set objImage = Nothing
    Set QueryForm = Nothing
    %>
    2011/10/10 14:52 2011/10/10 14:52
    아주 오래된 사이트가 있습니다.
    광고가 하도 많이 올라와서 필터링이 필요한대 마땅히 방화벽이나 프로그램 개선을 할 수 있는 방법이 없었습니다.
    그래서 대략 이런 루틴으로 만들어서 응급처치를 해드렸습니다.
    '*******************************************************************
    '## Duraboys Plugins DataSniffer in injection
    '*******************************************************************
    InjFilter = "슬롯머신『』영천경마정보 『』릴게임『』경마『』섹파『』섹스『』카지노"
    InjFilter = InjFilter &"『』대출『』파친코『』고스톱『』경륜『』용궁『』바카라"
    Function f_injection(query_string)
    f_injection =false
    InjFilter_arr = split(InjFilter, "『』")
    InjFilter_cnt = Ubound(InjFilter_arr)
    for j=0 to InjFilter_cnt
    if InStr(1,query_string,InjFilter_arr(j), 1) > 0 then
    f_injection = true
    'response.end
    exit for
    end if
    next
    End Function
    '*******************************************************************
    2011/10/10 14:51 2011/10/10 14:51

    <%
    Response.Expires = -1
    Response.Expiresabsolute = Now() - 1
    Response.AddHeader "pragma","no-cache"
    Response.AddHeader "chche-control", "private"
    Response.CacheControl = "no-cache"
    %>

    <%
    targetURL = "http://xml경로"

    Set xmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
    xmlHttp.Open "GET", targetURL, False
    xmlHttp.Send

    Set xmlDOM = server.CreateObject("MSXML2.DOMDOCUMENT.4.0")
    xmlDOM.async = False
    xmlDOM.LoadXML xmlHttp.responseText

    Set xmlHttp = Nothing

    Set rootNode = xmlDOM.selectNodes("---최상위엘리먼트명---")
    Set itemNode = rootNode(0).childNodes

    DIM arr_MovieData()

    For i = 0 To itemNode.length-1

    Set ChildNode = itemNode(i).childNodes
    ChildNodeCNT = ChildNode.length-1

    REDIM arr_MovieData(itemNode.length, ChildNode.length)

    For j = 0 To ChildNode.length-1

    arr_MovieData(i, j) = ChildNode(j).childNodes(0).Text
    Response.Write(arr_MovieData(i, j) & " ")
    'insert job <================================== 루프돌면서 이부분에서 처리해준다.
    Next
    Set ChildNode = Nothing
    Response.Write("<br/>")
    Next

    Set itemNode = Nothing
    Set rootNode = Nothing

    Set xmlDOM = Nothing
    %>

    2011/10/10 14:50 2011/10/10 14:50
    <% @CODEPAGE="65001" language="vbscript" %>
    <% Option Explicit %>
    <% session.CodePage = "65001" %>
    <% Response.CharSet = "utf-8" %>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    2011/10/10 14:48 2011/10/10 14:48
    도메인 등록방법
    블로그를 운영하거나 홈페이지를 운영하면서 자신만의 도메인을 이용하는 분들이 많습니다. 물론 티스토리 사용자들은 "가비아"에서 도메인을 구입하고 2차주소로 쉽게 연결할 수 있습니다.국내에 웹아티를 포함해서 닷네임코리아 외에도 많은 도메인 업체가 있습니다. .com이나 co.kr, .net 등 주소마다 가격차이가 있지만 동일한 주소더라도 웹호스팅 업체마다 도메인 가격 차이가 있더군요.

    도메인(Domain)이란,
    쉽게 말하면 웹주소라 할 수 있으며, 유저들이 쉽게 원하는 사이트로 찾아갈 수 있도록 해 주는 것이 바로 도메인입니다. 실제 주소는 미국 정부기관 Internic에서 각 서버에 대해 숫자로 된 주소인 IP (ex. 123.45.56.178) 를 배정하는 것인데, 이런 숫자 형식의 주소는 일반 인터넷 유저들이 암기해 두었다가 필요시 일일히 찾아가기가 힘이 들기 때문에 문자로 된 일정 형식의 주소(도메인, www.0000.com 등)를 말합니다.

    도메인 구매나 등록은 후이즈, 웹아티, 닷네임코리아와 같은 도메인 등록 대행업체에서 할 수 있으며 1년, 몇년 단위로 등록이 가능합니다. 우리나라의 경우 등록할때 서류가 필요하지는 않고 원하는 주소가 선점되지 않았다면 등록비용을 결제하면 도메인 구매절차가 끝납니다. 사실 원하는 주소(기억하기 쉽고 자신의 블로그나 홈페이지와 연관된 주소)들 중에서 com이나 co.kr 또는 .net은 대부분 선점되었다고 보면 됩니다. 물론 필요하다면 미리 선점한 사람에게 돈을 주고 도메인을 구매하면 됩니다.(도메인을 선점해서 거액을 받고 파는 것을 직업으로 삼은 분들도 있습니다)

    이 글에서는 웹아티에서 도메인을 구매하고 등록하는 과정을 설명하고자 합니다. 웹아티 외에도 후이즈나 닷네임코리아 등 많은 웹호스팅 업체가 있으니 선택해서 도메인을 구매하시면 될 겁니다. 웹아티 바로가기를 클릭해서 웹아티 홈페이지에 회원가입을 하세요.

    사용자 삽입 이미지

    예를 들어 "youngsam"라는 주소를 검색해보니 com, co.kr, kr 은 이미 등록된 주소네요. com, co.kr, kr  주소는 포기하고 youngsam.tv 구매해도 될 거 같네요. 일단 맘에 드는 주소를 검색해서 등록이 가능하다면 바로 등록 버튼을 클릭하면 됩니다.
    사용자 삽입 이미지
    사실 왠만한 주소의 닷컴(com)이나 닷넷(net), co.kr과 같은 주소는 대부분 선점되었다고 보셔야 할 겁니다. 원하는 주소를 검색해서 등록이 가능하다면 "바로 등록"버튼을 클릭하면 아래 이미지처럼 도메인 등록신청서가 나옵니다.상단에 있는 소유자정보란은 도메인 등록후 도메인 발급증부터 도메인 정보 조회시 나오는 정보이므로 틀린 부분이 있는지 충분히 확인해주세요.
    사용자 삽입 이미지
    도메인 취득전에 호스팅 서비스를 받았다면 타사의 네임서버 사용을 체크하고 네임서버 정보를 넣어줍니다. 다른 회사의 호스팅 서비스를 받지 않는다면 기본적으로 체크되어 있는 가비아 네임서버를 선택하시면 됩니다. 그리고 도메인이 만료되기 몇 달(보통 90일 전후로)전에 메일로 도메인 기한이 가까워지는 것을 알려줍니다. 도메인을 연장하실려면 다시 일정 금액을 기간이 완료되기 전에 납부하면 되는데 기간이 완료된 후에 다시 구매하면 몇 배의 금액이 더 추가됩니다.

    사용자 삽입 이미지

    도메인 등록신청서를 다 작성했다면 다음 단계인 "등록비용 결제"과정을 진행하면 됩니다. 아래 이미지처럼 별다른 어려움 없이 결재방법을 선택하고 결재를 완료하면 도메인 등록이 완료되었음을 알리는 글을 보게 될 겁니다.
    2011/10/10 12:53 2011/10/10 12:53
    사용자 삽입 이미지

    인터넷 서핑중. 아버님이 신문에 나온걸 확인할수 있었다. => [ 김광준 이장님도 칭찬하셨지만 ]

    축하 드립니다.

    http://jnnews.co.kr/news/service/article/mess_01.asp?P_Index=59350&flag=
    2011/10/09 12:03 2011/10/09 12:03

    php.net 에

    파일크기를 구하는 함수(filesize)는 있는데
    디렉토리(서브포함) 내부의 전체 파일 사이즈를 구하는 함수는 따로 만들어야 합니다.


    function dirsize($path = '') {
        $rtn = 0;
       
        if (!is_dir($path)) { return 0; }
        $dirs = dir($path);
        while (false !== ($filename = $dirs->read())) {
            if (!strcmp('.', $filename) || !strcmp('..', $filename)) { continue; }
            if (is_dir($path . '/' . $filename)) {
                $rtn += dirsize($path . '/' . $filename);
            } else {
                $rtn += filesize($path . '/' . $filename);
            }
        }
        $dirs->close();
       
        return $rtn;
    }


    이 방법 말고도 구글링 해보면 많이 나옵니다. (구글검색 : php dirsize)
    http://www.google.co.kr/#sclient=psy-ab&hl=ko&newwindow=1&source=hp&q=php+dirsize&pbx=1&oq=php+dirsize&aq=f&aqi=g1&aql=1&gs_sm=e&gs_upl=24817l25137l1l25447l4l3l0l0l0l1l160l440l0.3l3l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=e5e6741daa1d2ba3&biw=1149&bih=729
    2011/10/05 15:28 2011/10/05 15:28
    저는 회사에서 원격 데스크톱 클라이언트를 매우 자주 이용합니다. 그리고 보통은 동시에 여러개의 창을 띄워놓고 작업하는 경우가 많습니다. 
    그런데 매번 창을 닫을 때마다 이놈의 종료 확인창이 떠서 매우 성가시게 합니다.
    그리고 여러 administrator 정보를 저장 함에 있어서도 불편하고 해서.. 검색하던중 알게된 툴입니다.

    사용자 삽입 이미지
    2011/10/02 15:46 2011/10/02 15:46

    토탈 커맨더 - 커맨드 라인 키 (Total Commander - Command Line Keys)

    토탈 커맨더가 실행 중일때, 거의 모든 키보드 입력은 커맨드 라인으로 향한다. 아래는 커맨드 라인에서의 단축키들이다.

    엔터(ENTER) 커맨드 라인 명령어 실행, 최소 1자 이상 입력해야 한다. (창에서는 커서에 위치한 프로그램을 실행) 명령어가 'cd', 'md', 'rd' 이면, 토탈 커맨더 내부(창)에서 실행된다.

    SHIFT+ENTER 엔터와 비슷하지만, 'command /c'로 실행된다. 호출된 도스 프로그램이 종료된 후에도 창은 닫히지 않는다. 'noclose.pif' 파일이 윈도우(Windows) 폴더에 있어야 가능하다.

    CTRL+ENTER 현재 디렉토리의 커서에 위치한 파일 이름이 커맨드 라인의 끝에 추가된다.

    CTRL+SHIFT+ENTER 현재 위치한 파일의 경로를 포함한 이름이 커맨드 라인의 끝에 추가된다.

    CTRL+아래 화살표 또는 ALT+F8 최근의 커맨드 라인 실행 목록을 보여준다. CTRL 키를 누른채 화살표 위/아래 키로 목록을 이동한다. 좌/우 화살표 키를 누르면, 커맨드 라인을 편집할 수 있으며 자동으로 목록이 닫힌다.

    화살표 키 좌/우 화살표 키는 커맨드 라인의 좌/우로 커서를 이동한다. (창에 위치해 있다면 커맨드 라인으로 커서가 이동한다.) 창의 목록이 '간단히' 보기라면, 목록의 처음과 끝으로 이동한다. (커맨드 라인으로 이동하려면, SHIFT 키를 누른채 좌/우 화살표 키를 누른다.)

    위/아래 화살표 창의 위/아래로 커서를 이동한다. (커맨드 라인에 위치해 있다면, 창으로 이동한다.)

    TAB 왼쪽 창으로 이동한다.

    ESC 커맨드 라인을 지운다. 창으로 커서가 이동한다.

    CTRL+Y 커맨드 라인을 지운다. 커서는 커맨드 라인에 위치한다.

    CTRL+C 선택한 문자(열)을 클립보드에 복사한다. (32비트)

    CTRL+X 선택한 문자(열)을 클립보드로 이동한다. (32비트)

    CTRL+V 클립보드에서 커맨드 라인으로 문자(열)을 붙여 넣는다. (32비트)

    CTRL+E 이전에 실행한 명령어를 복사해 보여준다. (실행 목록에 있는 순으로)

    CTRL+K 커서 위치에서 끝까지 지운다.

    CTRL+W 커서 왼쪽에 있는 단어를 지운다.

    CTRL+T 커서 오른쪽에 있는 단어를 지운다.

    ※ 토커 도움말 파일(.hlp)의 커맨드 라인 키를 번역한 것으로, TC 프로그램의 번역된 내용을 참조했다.


    2011/10/02 15:23 2011/10/02 15:23

    1. 파이어폭스 

    2. 사파리

    3. 오페라

    4. 구글 크롬

    MS 익스플로러 는 기본 설치 되어 있으므로 제거 되었습니다.


    웹 프로젝트를 하면서 5대 브라우저를 신경쓰면서 개발 하기는 무지 어렵습니다.


    포터블과 무설치는 조금 의미가 다릅니다.

    포터블로 제작되어 USB에 넣고 다니면 간편하게 실행할수 있습니다.

    2011/09/25 20:38 2011/09/25 20:38
    drag this to bookmark bar

    javascript:(function(){f='http://chart.apis.google.com/chart?cht=qr&chld=H|2&chs=144&chl='+encodeURIComponent(window.location.href);a=function(){if(!window.open(f,'google_qrcode','location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550'))location.href=f;};if(/Firefox/.test(navigator.userAgent)) {setTimeout(a,0)} else {a()}})()

    북마크바에 놓고 클릭하면 현재 페이지에 대한 url 이 qrcode 로 만들어지는.

    delicious 의 북마크 기능을 살짝 수정하여                                  
    2011/09/25 20:21 2011/09/25 20:21
    http://www.caucho.com/resin-3.0/quercus/index.xtp   

    PHP 를 100%  자바로 실행 가능


    http://phalanger.codeplex.com/


    PHP 를 100% 닷넷으로 실행가능한 PHPLanger
    2011/09/25 19:21 2011/09/25 19:21
    *MySQL 쓰면서 하지 말아야 할 것 17가지*

    작게 생각하기
    - 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다.
    - 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다.
    - develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것
    - 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다.
    - 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라.
    - 파일 기반 세션 좀 쓰지마 -_-
    - 그렇다고 너무 쓸데없이 크게 생각하지도 말 것
    - 특히 성능하고 확장성 구분 못 하면 난감함

    EXPLAIN 안 써보기
    - SELECT 앞에 EXPLAIN 이라고 붙이기만 하면 되는 것을 (..)
    - 실행 계획 확인
    - 타입 컬럼에 index 써있는거랑 Extra 컬럼에 index 써있는거랑 "매우 큰" 차이 있음
    * 타입에 있으면 Full 인덱스 스캔 (안 좋다.)
    * Extra 컬럼에 있으면 Covering 인덱스 찾았다는 의미임 (좋다!)
    - 5.0 이후부터는 index_merge 최적화도 한다.

    잘못된 데이터 타입 선택
    - 한 메모리 블럭 단위에 인덱스 레코드가 많이 들어갈수록 쿼리가 빨리 실행될 것이다. (중요)
    - 아.. 정규화 좀 해 -_-... (이거 정말 충격과 공포인 듯)
    - 가장 작은 데이터 타입을 써.. (진짜 BIGINT가 필요하냐고..)
    - 인덱스 걸리는 필드는 정말 최소한으로 데이터 크기를 써야된다고.
    - IP는 INT UNSIGNED로 저장해!! (아주 공감)
    * 이럴 때 쓰라고 INET_ATON 함수가 아예 내장되어 있음.

    PHP에서 pconnect 쓰는 짓
    - 아파치에서 좀비 프로세스라도 생기면 그 커넥션은 그냥 증발하는거야..
    - 어차피 MySQL 접속 속도는 Oracle이나 PostgreSQL 보다 10~100배 빠르다고.

    너무 과도한 DB 추상화 계층을 두는 것
    - 어디 포팅 열심히 할 거 아니면 추상화 계층 쓰지마 (ADODB, MDB2, PearDB 등)
    - scale out 가능한걸 쓰라고.

    스토리지 엔진 이해 못 하는 것
    - 단일 엔진만으로 전체 아키텍처를 결정했다면 대부분 최적이 아님
    - 엔진 별 장단점을 공부할 것
    - ARCHIVE : zlib으로 압축해주고 UPDATE 안 되고 로그 Bulk Insert에 유용함.
    - MEMORY : 서버 재시작하면 증발. 인덱스가 HASH나 BTREE로 가능함. 임시, 요약 데이터에 사용.
    * 주간 top X 테이블 같은 것.
    * 하여튼 메모리에 박아넣고 싶은 데이터 있으면..

    인덱스 레이아웃 이해 못 하는 것
    - 제대로 인덱스랑 스토리지 엔진 선택하려면 공부 좀 해
    - 엔진은 데이터와 인덱스 레코드를 메모리나 디스크에 레이아웃하는 걸 구현한 것
    - clustered 구성은 데이터를 PK 순서에 따라 저장함.
    - non-clustered 구성은 인덱스만 순서대로 저장하고 데이터는 순서 가정하지 않음.
    - clustered에서는 인덱스만 타면 추가적인 조회 없이 바로 데이터 가져오는 것임.
    - 그래서 clustered PK는 작은 놈으로 할 필요가 있다는거
    * 다른 인덱스는 각 레코드마다 PK를 앞에 더 붙이게 되니까.
    * PK 지정 안 하면 아무렇게나 해버림

    쿼리 캐시 이해 못 하는 것
    - 어플리케이션 read/write 비율은 알고 있어야지
    - 쿼리 캐시 설계는 CPU 사용과 읽기 성능 간의 타협
    - 쿼리 캐시 크기를 늘린다고 읽기 성능이 좋아지는게 아님. heavy read라도 마찬가지.
    - 과도한 CPU 사용을 막기 위해 무효화 할 때는 캐시 항목들을 뭉텅이로 날려버림
    - 한마디로 SELECT가 참조하는 테이블 데이터 하나라도 변경되면 그 테이블 캐시는 다 날라간다는 얘기임
    - 수직 테이블 파티셔닝으로 처방
    * Product와 ProductCount를 쪼갠다든지..
    * 자주 변하는 것과 변하지 않는 것을 쪼개는게 중요하다 이 말임.

    Stored Procedure를 쓰는 것
    - 무조건 쓰면 안 된다는게 아니고..
    - 컴파일 할 때 무슨 일이 일어나는지 이해 못 하고 쓰면 재앙이 된다 이 말.
    - 다른 RDBMS랑 다르게 connection thread에서 실행 계획이 세워짐.
    - 이게 뭔 얘기냐 하면 데이터 한 번 가져오고 연결 끊으면 그냥 CPU 낭비 (7~8% 정도)하는 꼴이라는 것.
    - 웬만하면 Prepared 구문과 Dynamic SQL을 써라.. 아래 경우를 제외하고
    * ETL 타입 프로시저
    * 아주아주 복잡하지만 자주 실행되지는 않는 것
    * 한 번 요청할 때마다 여러번 실행되는 간단한 것 (연결한 상태로 여러번 써야 된다니까)

    인덱스 컬럼에 함수 쓰는 것
    - 함수에 인덱스 컬럼 넣어 호출하면 당연히 인덱스 못 탄다
    - 함수를 먼저 계산해서 상수로 만든 다음에 = 로 연결해야 인덱스 탈 수 있다.
    * 여기 실행 계획 보면 LIKE도 range type 인덱스 타는 것 보임

    인덱스 빼먹거나 쓸모없는 인덱스 만들어 놓는 것
    - 인덱스 분포도(selectivity)가 허접하면 안 쓴다.
    - S = d/n
    * d = 서로 다른 값의 수 (# of distinct values)
    * n = 테이블의 전체 레코드 수
    - 쓸모없는 인덱스는 INSERT/UPDATE/DELETE를 느리게 할 뿐..
    - FK는 무조건 인덱스 걸어라. (물론 FK 제약 걸면 인덱스 자동으로 생긴다.)
    - WHERE나 GROUP BY 표현식에서 쓰이는 컬럼은 인덱스 추가를 고려할 것
    - covering index 사용을 고려할 것
    - 인덱스 컬럼 순서에 유의할 것!

    join 안 쓰는 짓
    - 서브쿼리는 join으로 재작성해라
    - 커서 제거해라
    - 좋은 Mysql 성능을 내려면 기본
    - 집합 기반으로 생각해야지 루프 돌리는거 생각하면 안 된다.

    Deep Scan 고려하지 않는 것
    - 검색엔진 크러울러가 쓸고 지나갈 수 있다.
    - 이 경우 계속해서 전체 집합을 정렬한 다음 LIMIT로 가져와야 하니 무진장 느려진다.
    - 어떻게든 집합을 작게 줄인 다음 거기서 LIMIT 걸어 가져올 것

    InnoDB 테이블에서 WHERE 조건절 없이 SELECT COUNT(*) 하는 짓
    - InnoDB 테이블에서는 조건절 없이 COUNT(*) 하는게 느리다.
    - 각 레코드의 transaction isolation을 유지하는 MVCC 구현이 복잡해서 그렇다는..
    - 트리거 걸어서 메모리 스토리지 엔진 쓰는 테이블에 통계를 별도로 유지하면 된다.

    프로파일링이나 벤치마킹 안 하는 것
    - 프로파일링 : 병목 찾아내기
    - 벤치마킹 : 시간에 따른 성능 변화 추이 평가, 부하 견딜 수 있는지 테스트
    - 프로파일링 할 때는 실제 데이터를 옮겨와서 할 것
    - 어디가 병목이냐~ Memory? Disk I/O? CPU? Network I/O? OS?
    - 느린 쿼리 로그로 남기기
    * log_slow_queries=/path/to/log
    * log_queries_not_using_indexes
    - 벤치마킹 시에는 다 고정시키고 변수 하나만 바꿔가면서 해야 함. (쿼리 캐시는 끌 것.)
    - 도구를 써라~~
    * EXPLAIN
    * SHOW PROFILE
    * MyTop/innotop
    * mysqlslap
    * MyBench
    * ApacheBench (ab)
    * super-smack
    * SysBench
    * JMeter/Ant
    * Slow Query Log

    AUTO_INCREMENT 안 쓰는 것
    - PK를 AUTO_INCREMENT로 쓰는건 무진장 최적화 되어 있음
    * 고속 병행 INSERT 가능
    * 잠금 안 걸리고 읽으면서 계속 할 수 있다는!
    - 새 레코드를 근처에 놓음으로써 디스크와 페이지 단편화를 줄임
    - 메모리와 디스크에 핫 스팟을 생성하고 스와핑을 줄임

    ON DUPLICATE KEY UPDATE를 안 쓰는 것
    - 레코드가 있으면 업데이트하고 없으면 인서트하고 이런 코드 필요없다!! 다 날려버려라!!
    - 서버에 불필요하게 왔다갔다 할 필요가 없어짐
    - 5-6% 정도 빠름
    - 데이터 입력이 많다면 더 커질 수 있음

    하지 말아야 할 것 총정리
    Thinking too small
    Not using EXPLAIN
    Choosing the wrong data types
    Using persistent connections in PHP
    Using a heavy DB abstraction layer
    Not understanding storage engines
    Not understanding index layouts
    Not understanding how the query cache works
    Using stored procedures improperly
    Operating on an indexed column with a function
    Having missing or useless indexes
    Not being a join-fu master
    Not accounting for deep scans
    Doing SELECT COUNT(*) without WHERE on an InnoDB table
    Not profiling or benchmarking
    Not using AUTO_INCREMENT
    Not using ON DUPLICATE KEY UPDATEK                                       
    2011/09/25 19:19 2011/09/25 19:19
    <script>
    function trans_han(sour, targ){
    s = document.getElementsByName(sour)[0].value;
    t = document.getElementById(targ);
    if(s.length > 16){
    t.innerHTML = '숫자가 너무 큽니다';
    return;
    } else if(isNaN(s)){
    t.innerHTML = '숫자가 아닙니다';
    return;
    }
    b1 = ' 일이삼사오육칠팔구';
    b2 = '천백십조천백십억천백십만천백십원';
    tmp = '';
    cnt = 0;
    while(s != ''){
    cnt++;
    tmp1 = b1.substring(s.substring(s.length-1,s.length), Number(s.substring(s.length-1,s.length))+1); // 숫자
    tmp2 = b2.substring(b2.length-1,b2.length); // 단위
    if(tmp1==' '){ // 숫자가 0일때
    if(cnt%4 == 1){ // 4자리로 끊어 조,억,만,원 단위일때만 붙여줌
    tmp = tmp2 + tmp;
    }
    } else{
    if(tmp1 == '일' && cnt%4 != 1){ // 단위가 조,억,만,원일때만 숫자가 일을 붙여주고 나머지는 생략 ex) 삼백일십만=> 삼백십만
    tmp = tmp2 + tmp;
    } else{
    tmp = tmp1 + tmp2 + tmp; // 그외에는 단위와 숫자 모두 붙여줌
    }
    }
    b2 = b2.substring(0, b2.length-1);
    s = s.substring(0, s.length-1);
    }
    tmp = tmp.replace('억만','억').replace('조억','조'); // 조,억,만,원 단위는 모두 붙였기 때문에 필요없는 단위 제거
    t.innerHTML = tmp;
    }
    </script>

    <input type='text' name='price' size='15' maxlength='16' onkeyup="trans_han(this.name,'trans_price');" /> <span id='trans_price'></span>                                       
    2011/09/21 22:48 2011/09/21 22:48
    "웹은 모든 사람들이 손쉽게 정보를 공유할 수 있는 공간이며 어떤 장애도 없이 이를 이용할 수 있어야 한다."

    '국제표준규약으로써 단체들이 수집, 정리를 통해 책정된 사용 언어이다.'

    대표솔루션 아티보드 3.0 - 대표적인 단체로 W3C(World Wide Wed Consor-tium)를 들 수 있으며,
    이를 중심으로 ISO, IETF, IANA, ECMA, OASIS등이
    웹 표준 기술에 관여하고 있다.

    1. 국제 표준화 기구(ISO)가 출판한 표준들
    2. Ecma 인터내셔널 (이전 이름은 ECMA)이 출판한 표준들
    3. 유니코드 컨소시엄이 출판한 유니코드 표준과 다양한 유니코드 기술 보고서 (UTR)
    4. 인터넷 할당 번호 기관 (IANA)이 운영하는 이름과 번호 레지스트리

    웹 표준을 준수한다는 것은 일반적으로 올바른 HTML, CSS, DOM(자바스크립트)를 사이트나 페이지가 가지고 있다는
    것을 뜻한다.
    HTML은 접근성과 시멘틱 HTML의 가이드라인을 충족해야 한다.

    1. 크로스 브라우징
    2. 크로스 플랫폼
    3. 접근성의 향상


    * 웹표준 홈페이지제작 솔루션 아티보드 3.0

    1.다양한 브라우저 및 PC 환경에서 서비스 제공

    주요기능

    • 환경설정

      환경설정

      사이트 운영에 반드시 필요한 설정항목을 현재 웹사이트 운영에 필요한 정보에 맞게 설정할 수 있습니다.
      또한 사이트 운영시 관리자를 추가해서 사이트를 관리할 수 있는 관리자 권한설정 메뉴를 이용하실 수 있습니다.

    • 레이아웃 및 페이지

      레이아웃 및 페이지

      웹사이트에 게시판, 회원 모듈 및 기타 솔루션에서 제공되는 프로그램을 웹사이트에 적용할 때 필요한 기본디자인을 관리할 수 있는 메뉴를 제공합니다.
      레이아웃 기능을 이용하면 웹사이트에 솔루션 적용을 보다 편리하게 이용할 수 있습니다.
      페이지 기능을 이용해서 웹 사이트 내 페이지를 관리할 수 있는 메뉴도 제공이 됩니다.

    • 회원관리

      회원관리

      웹사이트에 가입된 회원을 세부적으로 관리할 수 있는 관리 모듈이 제공되며, 필요에 따라 단체 메일 또는 쪽지를 발송 할 수 있습니다.
      회원관리 서비스를 편리하게 이용할 수 있도록 환경설정 항목이 있으며, 회원 가입 시 필요한 항목만 입력 받을 수 있도록 회원가입 항목 설정 기능이 제공됩니다.
      필요에 따라 회원을 레벨 또는 그룹별로 구분지어 관리가 가능하며, 포인트 시스템을 이용해서 회원별로 특별한 서비스를 제공할 수 있는 기능이 제공됩니다.

    • 게시판 관리

      게시판 관리

      웹사이트에서 사용할 게시판을 추가하거나 등록된 게시판을 세부적으로 설정해서 사용할 수 있습니다.
      등록된 게시글, 댓글, 첨부파일을 별도로 확인 할 수 있는 관리 모듈이 제공되며, 휴지통이란 기능이 추가되어 사용자가 게시글을 삭제시 복구가 가능하도록 설계가 되어 있습니다.
      등록된 게시글을 통합적으로 검색할 수 있는 전체검색 기능이 제공되며, 홈페이지 메인에 최신글을 손쉽게 출력할 수 있는 기능이 있습니다.
      게시판에 특정한 서식을 설정해서 사용자는 서식에 맞게 글을 등록하게끔 유도할 수 있습니다.
      게시판 분류 (카테고리)를 등록해서 게시글을 나눠 볼수 있는 게시판 분류 기능이 있으며, 게시판별 회원에 대한 접근 권한 및 포인트 시스템 기능이 있습니다.
      대용량 업로드 및 이미지 업로드 기능이 기본적으로 제공되며, 보안상 첨부 파일은 암호화되어 서버에 저장됩니다.

    • 부가기능

      부가기능

      관리자가 일정을 등록해서 공유 하거나 업무에 활용이 가능하며, 웹사이트에서 팝업 서비스를 손쉽게 이용할 수 있는 팝업창 관리 모듈이 제공됩니다.

    • 통계기능

      통계기능

      회원가입, 사이트 접속, 게시글, 태그, 검색키워드 등 다양한 통계 서비스를 제공하며, 각 통계별로 다양하게 검색해서 확인 및 마케팅에 활요 할 수 있도록 세부적인 통계 서비스를 제공합니다.

      무료 아티보드 솔루션 http://webarty.com  아티보드 3.0 데모체험



      *웹표준 기술

    • 구조화된 마크업
    • 선형화된 *CSS제거시* 문서에서도 그 내용을 파악
    • 데이터(HTML)와 표현(디자인==CSS)의 분리

    HTML은 데이터를 담당 문서의 구조(틀)을 잡는 목적으로 설계한다.
    여기서 CSS는 디자인을 담당 그룹화된 문서를 작성함으로써 유지보수신속성편리성도모할 수 있게 되었다.
    이를 통해 기존의 테이블 코딩에서는 볼 수 없었던 페이지의 일괄 수정 텍스트의 색상 및 크기 변경등 시간과 비용적 절약할 수 있게 되었다.

    * 웹표준 최적화 (검색엔진)


    아티보드 3.0 웹표준 준수 시멘틱한 마크업(로봇이 이해 할 수 있는 언어 구조)을 함으로써 선형화된 문서 제작이 가능하게 되었으며, 또한 컴퓨터가 이해 할 수 있는 범위 내에 언어코드를 작성함으로써 로봇(검색엔진)이 이를 효율적으로 끌어갈 수 있게 되었습니다.
    포털(네이버, 다음, 구글, 야후, 파란등의 포털) 사이트에 노출 빈도가 높아지며 이를 통한 직,간접적 방문자수 증가라는 효과를 기대할 수 있습니다.
    또한, 웹표준 기술을 사용함으로써 신속성, 재활용성, 편리성, 다양성, 접근성등이 효율이 증대하는 효과를 기대할 수 있다.




    * 웹표준 기술 그 이점

  • 크로스 브라우저 구현 ( IE 6.0~8.0, FF, Safari, Opera, chrome등 ) 함으로써 호환성을 증대 시킨다.
    크로스 브라우저란 브라우저별로 각 특성 및 지원하는 환경이 달라 페이지가 깨지는 현상이 일어날 수 있다.
    하지만, 이를 통합 시켜 나온 기술이 웹표준이다.
    이 웹표준 문법을 지켰을시 거의 모든 브라우저에서 거의 동일한 디자인과 정보를 제공할 수 있다.

  • 사용자 삽입 이미지


    위 그림은 브라우저별 점유율을 나타내는데 우리나라에서는 인터넷 익스플로러 외에 브라우저에 대해 관심도 적을 뿐더러 점유율이 낮기 때문에 신경 쓰지 않는 경향이 있습니다. 그러나 인터넷 익스플로러는 타 브라우저에 비해 표준에 위배되는 부분을 많이 안고 있습니다.
    점유율이 높다고 다른부분을 신경쓰지 않게 되면 접근성을 무시 하는게 되어버리기 때문에 이 부분을 감안해서 작업시에 작업물을 여러 브라우저에서 확인하는 절차가 필요합니다.
    위 와 같은 여러 브라우저에서 접근이 가능하도록 하는 작업이 Cross Browsing 기술입니다.
    Cross Browsing 기술이란 표준 웹기술을 이용하여 플랫폼에 따라 달리 구현되는 기술을 비슷하게 만듦과 동시에 어느 한쪽에 최적화되어 치우지지 않도록 공통 요소를 사용하여 웹 페이지를 제작하는 기법을 말합니다.


    * css 레이아웃의 효과

    CSS( Cascading Style Sheets )란
    웹 문서의 전반적인 스타일을 미리 저장해 둔 스타일시트를 말합니다.
    문서 전체의 일관성을 유지할 수 있고, 세세한 스타일 지정의 필요를 줄어들게 합니다.
    CSS를 효율적으로 활용할 시 웹 개발자, 디자이너들은 보다 풍부한 디자인으로 웹을 설계할 수 있고, 글자의 크기, 글자체, 줄간격, 배경 색상, 배열위치 등을 자유롭게 선택하거나 변경할 수 있으며 유지·보수간편하게 할 수 있습니다.

    CSS를 통한 데이터와 디자인의 분리, 그로 인한 HTML 문서의 데이터로써의 가치, 유지보수의 편리성, 다양한 OS와 브라우저에서 이용가능, 웹검색엔진에 대한 효율성 증가, 특수한 환경에서도 높아진 접근성 등을 들 수 있습니다.

    * CSS 레이아웃을 이용한 효과를 간략히 설명하면 아래와 같습니다.

    • 웹사이트 제작속도가 빨라졌다.
    • 코딩의 양(속도) 줄어들었다.
    • 코드의 재활용성이 높아졌다.
    • 유지보수가 더욱 편리해졌다.
    • 테이블로는 불가능한 레이아웃이 가능해졌다.
    • 프로그램과 디자인의 분리가 과거보다 극대화 되었다.
    • 익스 외의 브라우저에서도 같은 모습을 보여준다.
    • 웹접근성이 높아졌다.
    • 웹 접근성을 높이니 웹 검색엔진에 노출될 가능성이 높아졌다.
    • 상당히 구조적으로 개발된다.
    • 주먹구구식 웹사이트 개발에서 벗어나 체계적으로 변했다.
    • 웹사이트를 개발 할수록 기술이 축적된다.


    2011/09/20 02:17 2011/09/20 02:17