Search Results for '프로그래밍/프로그램 팁 관련'
255 posts related to '프로그래밍/프로그램 팁 관련'
- 2011/10/23 [정보] Fake 웹 자동화 프로그램
- 2011/10/21 Classic ASP용 Database Object
- 2011/10/21 jQuery plugin, Pager 입니다 .
- 2011/10/21 썸네일 생성 dll (codeproject에서 다운받은놈)
- 2011/10/21 실시간 스팸차단리스트(RBL) 이용방법
- 2011/10/21 [KISA] 이메일 발송포트(25번) 차단 시행 안내
- 2011/10/20 PHP Syntax for EditPlus v2011.07.19
- 2011/10/17 플래시를 사용한 웹소켓 클라이언트 랩퍼(Wrapper) 입니다.
- 2011/10/17 ODBC-Oracle Client 32&64Bit 외부 PC 에서 같이 사용
- 2011/10/17 핵 없이 브라우저 구분. / CSS Browser Selector / css hack
- 2011/10/16 ORACLE 오라클 유용한 쿼리 1
- 2011/10/11 간단한 차트 에플릿
- 2011/10/11 rss xml 파싱하는 모듈 입니다.
- 2011/10/11 MySQL root 비번을 잊어버려서 접속을 못할 경우 패스워드 초기화 방법
- 2011/10/10 도메인 등록방법
- 2011/10/05 dirsize - 디렉토리(서브포함) 내부 전체 파일 사이즈 구하기
- 2011/09/25 chart 를 이용한 간단한 qrcode
- 2011/09/25 PHP 를 100% 자바 및 닷넷으로 실행 할수 있습니다.
- 2011/09/14 MongoDB란?
- 2011/09/07 실시간 스팸차단리스트(RBL) 이용방법
- 2011/09/07 웹표준 카페솔루션 소개 - 아티보드 3.0 기반으로 제작
- 2011/09/07 모바일 홈페이지 구축 - 웹아티 1
- 2011/09/07 웹아티 홈페이지 제작후 - 유지보수 서비스 안내
- 2011/09/07 홈페이지 제작 과정 - 웹아티 편 - 웹표준 아티보드 3.0
- 2011/09/07 웹표준이란? 2
- 2011/09/07 PHP MSSQL 프로시져 사용
- 2011/09/05 대용량 파일 업로드 프로그래스바 - jquery
- 2011/09/05 특정 디렉토리의 파일들 중 html, inc, php 파일들만 찾아서 파일 인코딩 변경 처리 쉘 스크립트
- 2011/09/05 wget 사용법 - ftp
- 2011/09/02 특정일자 파일 삭제 BAT 프로그램
Fake 라는 반올림해서 30$ 유료 소프트웨어로 편리한 인터페이스와 다양한 기능을 지원합니다.
내부 엔진은 Webkit만 지원하기 떄문에 단점이 될 수 있지만 기능적으로는 충분한 메리트가 있습니다.
조건 분기는 물론이고 에러 처리, 반복, 랜덤 데이터 입력, Assert, 쉘 명령어 실행, 등 다양한 것들을 사용할수 있고 작성된 작업을 저장하여 언제든지 실행하여 테스트할수 있습니다.
다음은 공식 사이트고 앱스토어에도 등록되어 있습니다.
http://fakeapp.com/
다음은 데모 영상입니다.
http://vimeo.com/14697494
윈도우즈용은 없고, 개발할 생각도 없다고 하네요. 아쉽..
말은 거창하지만... 뜯어보면 별것 아닙니다 -.-;
설명이 뭐 필요하겠습니까 예제부터 보시죠
예제)
Dim objRS : Set objRS = New GDO
Dim objHash : Set objHash = New Hashtable
objHash.Define "title", "monoless 킹왕짱 미남!!"
Call objRS.ExecuteQuery("update taeyo_board set title=?", objHash)
Set objHash = Nothing
Set objRS = Nothing
예제 2)
Dim objRS : Set objRS = New GDO
Dim objHash : Set objHash = New Hashtable
objHash.Define "title", "monoless 킹왕짱 미남!!"
Dim objData : objData = objRS.OpenQuery("select * from taeyo_board where title=?", objHash)
If IsEmpty(objData) = False Then
Dim curData
For Each curData In objData
Response.Write "Title : " & curData.Item("title") & "<br />"
Response.Write "Name : " & curData.Item("name") & "<br />"
Next
End If
Set objHash = Nothing
Set objRS = Nothing
생성자)
* [void] GDO() - GDO Class를 생성합니다.
Method)
* [void] ExecuteProc(proc, params) - 프로시져를 실행합니다.
- [String] proc - 실행할 프로시져명
- [Object Hashtable] params - 입력할 파라메터
* [void] ExecuteQuery(query, params) - 쿼리를 실행합니다.
- [String] query - 실행할 쿼리
- [Object Hashtable] params - 입력할 파라메터
* [Array] OpenProc(proc, params) - 프로시져를 실행합니다. 결과값은 Object Hashtable을 가진 배열로 반
환합니다.
- [String] proc - 실행할 프로시져명
- [Object Hashtable] params - 입력할 파라메터
* [Array] OpenQuery(query, params) - 쿼리를 실행합니다. 결과값은 Object Hashtable을 가진 배열로 반환
합니다.
- [String] query - 실행할 쿼리
- [Object Hashtable] params - 입력할 파라메터
Property)
* [String] ConnectString - 접속할 DB 연결구문입니다.
페이저 애드인은 ajax 방식으로 게시판이나 다양한 데이터를 로드하면서
페이징 기능을 덧붙이고자 하는 경우에 도움이 되는 애드인입니다.
(단, 이 플러그인은 단일 페이지에서 여러 번 사용될 수 없습니다)
다만, 이는 실제 데이터를 가져오거나 하는 애드인이 아니며, 오로지 전체 레코드 수(totalItemCount)와 페이지 당 출력할 레코드 수(RecordPerPage)에 따라서 전체 페이지 수와 페이징 구역을 계산 및 출력 하는 애드인입니다.
실제로 해당 페이지의 데이터를 가져오는 함수는 여러분이 직접 작성하셔야 하며,
페이저 사용 규칙에 맞게 함수를 호출하시면 페이징이 자동으로 렌더될 것입니다.
샘플은 http://taeyo.net/jQuery/Sample/pager.htm 을 참고하십시오.
현재, 태오 사이트의 새로운 디지털 다이어리는 이 애드인을 사용하여 만들어지고 있습니다.
다음은 사용방법입니다.
1. 페이저를 출력할 위치를 html 태그로 작성한다.
예 : <span id="pager"></span>
2. jQuery의 ready 함수 안에서 다음과 같이 페이저를 초기화 한다. (지정이 필요없는 속성은 지정하지 않으셔도 됩니다)
$("#pager").pager({
pager: "#pager",
pagerMode: "image", //text, image 중 선택
totalItemCount: _totalItemCount,
recordPerPage: _recordPerPage,
currentPage: _currentPage,
pageIndexChanged: Pager.pageIndexChanged,
prev10Text: "<<",
next10Text: ">>",
prev10ImgSrc: "images/Prev10.gif",
next10ImgSrc: "images/next10.gif",
selectedPageFontColor: "orange"
});
_totalItemCount와 _recordPerPage, _currentPage는 전역변수로 선언되어야 할 것이다.
그리고, 이 값은 여러분이 적절하게 설정하면 된다.
3. 페이저의 클릭 이벤트와 관련된 콜백 메서드들을 여러분에게 맞게 정의하자.
var Pager = {
pageIndexChanged: function(selectedPage) {
_currentPage = selectedPage;
loadBoardData(); //목록 조회 및 출력 메서드 호출
}
}
여기서의 loadBoardData() 메서드는 여러분이 데이터베이스에서 데이터를 조회하는 메서드이다.
메서드 명은 여러분의 상황에 맞게 바꾸면 된다.
강조했듯이, 페이저 애드인이 실제 데이터를 로드해주지는 않는다.
4. loadBoardData() 메서드 안에서 여러분의 작업이 모두 끝난 다음, 제일 마지막에 다음과 같은 코드를 추가하여
페이저를 갱신하도록 한다. 갱신을 하지 않으면, 페이저의 페이징 정보가 실제 갯수와 동기화 되지 않을테니 말이다.
갱신을 위해서는 다음의 메서드를 호출하면 된다. 반드시 refresh의 인자로 _totalItemCount, _recordPerPage를 넘겨줘야만
제대로 갱신된다는 점에 주의하자.
또한, refresh 메서드는 계산된 전체 페이지 갯수를 반환한다.
function loadBoardData()
{
//여러분의 작업
//...
//...
var pageCount = $("#pager").pager.refresh(_totalItemCount, _recordPerPage);
}
끝.
ps :
1차 배포 후, 일부 로직을 개선하여 좀 더 코드를 줄였습니다. 현재 파일은 2차 배포버전입니다.
나누미플러스나, KMS썸넬등은 2003 서버에서 뻗어버리는 경우가 많아서..
코드프로젝트에 올려진 소스에서 쓰잘데기 없는부분 빼버리고,
썸넬만 만드는 부분 함수로 만들어놨습니다. (sub 함수로 전환시켜서 쓰는게 더 편할듯 하네요)
참고로.. 덱스트든 abc든 일단 업로드 끝나고, 저장한 원본 파일명 던져주면 됩니다.
DLL 은 가장 최근꺼구요..
원 개발자가 만든 소스나 메서드 종류 보시려면.. 다운 받아서 살펴보심 되요.. (물론 C++ 소스일껍니다)
KISA-RBL 서버에서 스팸리스트를 다운로드하는 방법과
메일 서버(Sendmail, qmail, Postfix, Exchange Server)에서 참조할 수 있는 방법이 설명되어 있습니다.
첨부파일을 참고해 주세요.
출처 : kisarbl.or.kr (한국인터넷진흥원 스팸대응팀)
안녕하십니까?
한국인터넷진흥원(KISA) 입니다.
나날이 증가하는 이메일 스팸을 감축하기 위하여,
방송통신위원회와 한국인터넷진흥원은 악성코드에 감염된
일반 이용자의 PC에서 발송되는 스팸을 차단하기 위하여
ISP/MSO의 네트워크에서 이메일 발송포트인 25번를 사용제한하고
587번 포트를 대체하여 사용하는 정책(초고속인터넷가입자 대상 이메일 발송포트 사용제한, block25)을
추진하고 있습니다.
동 정책은 '10년 12월부터 주요 ISP/MSO 사업자를 대상으로
초고속인터넷가입자(유동IP대역)를 대상으로 이메일 발송포트인 25번을 차단하게 되며,
스팸 메일 이외의 정상 이용자의 이메일도 발송이 차단되므로 정상 이용자의
이메일 프로그램과 서버 관리자가 운영하는 메일서버를 대상으로 설정 변경이필요합니다.
첨부. 메일서버관리자 설정변경 매뉴얼(4종)
보다 자세한 정책 설명과 설정변경 매뉴얼은 홈페이지(www.block25.or.kr)을 통해 확인할 수 있습니다.
감사합니다.
개발환경 : PHP, EditPlus
사용제한 : 프리웨어
제작자 : BiHon ( http://dreamphp.com/ )
자료설명
EditPlus( http://editplus.com/ )의 PHP 구문 파일입니다.
2011년 7월 19일 영문 문서 기준입니다. ( http://php.net/manual/en/ )
클래스 270여 개, 함수 4500여 개 구성입니다.
WinBinder( http://winbinder.org/ ) 관련 함수 포함시켰습니다.
늘 즐겁고 행복하고 건강한 하루하루 보내시기 바랍니다.
플래시를 사용한 웹소켓 클라이언트 랩퍼(Wrapper) 입니다.
IE 8 이상, 불여우 3 이상 지원되며 플래시는 10버전 이상(가능한 최신버전)이면 됩니다.
오페라 및 IE 구형 브라우저(7 이하)는 지원 안한다고 합니다. 제작자 또한 특정 브라우저 이슈는 지원하지 않는다고 하더군요.
Oracle Client 64Bit 사용중에 32Bit 을
꼬옥 사용해야 할 경우
해결 방법입니다.
Oracle Client 32 & 64it 같이 설정하고, 같이 사용 할 수 있습니다.
아래는 주로 32Bit 설정 내용입니다.
( 64Bit 은 내용의 일부분을 수정해서 사용하시면 됩니다..^--^ )
-----------------------------------------------------------------------
(A) http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
에서 원하시는 Bit 을 선택
(B) 설치위치
B-1) 64 Bit 설치위치 : D:\DB\OracleClient
B-2) 32 Bit 설치위치 : D:\DB\OracleClient32Bit
-----------------------------------------------------------------------
1. 개발용 PC 의 경우 64bit & 32Bit 내려받기
64Bit : instantclient-basic-windows.x64-11.2.0.2.0.zip(53,669,935 bytes)
32Bit : instantclient-basic-nt-11.2.0.2.0.zip(50,325,016 bytes)
을 내려 받아서 B-1) 과 B-2) 에 각각 압축을 풀어줍니다.
ZIP 으로 압축되어 있기 때문에 그냥 풀어주시면 끝입니다.
2. ODBC 용 - Oracle Client 64Bit, 32Bit Client 을 내려 받습니다.
원도우 64Bit : instantclient-odbc-windows.x64-11.2.0.2.0.zip(1,356,558 bytes)
원도우 32Bit : instantclient-odbc-nt-11.2.0.2.0.zip(739,591 bytes)
위의 것도 압축되어 있기에 내려 받아서 B-1) 과 B-2) 에 각각 압축을 풀어줍니다.
위의 1. 과 같은 디렉토리에 같이 풀어 주시면 됩니다.
3. 레지스터리에 아래와 같은 값을 생성합니다.
파일첨부 첫번째을 탐색기에서 병합하시구요
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"Oracle in InstantClient_11g_32bit"="Installed"
4. 아래 내용을 병합하시기전에 (파일첨부)
B-1) 과 B-2) 을 변경 해서 셋팅 하시는 경우
디렉토리을 정확히 다시 수정해주세요
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in InstantClient_11g_32bit]
"APILevel"="1"
"CPTimeout"="60"
"ConnectFunctions"="YYY"
"Driver"="D:\\DB\\OracleClient\\SQORA32.DLL"
"DriverODBCVer"="03.51"
"FileUsage"="0"
"Setup"="D:\\DB\\OracleClient\\SQORAS32.DLL"
"SQLLevel"="1"
위에서 Driver 와 Setup 이 32Bit 를 압축 풀어 놓은 디렉토리입니다.
5. 이제 끝났습니다.
6. 제어판의 ODBC 선택하는곳에서
Oracle in InstantClient_11g_32bit 을 선택하시면 접속이 되는 형태입니다.
(*) 추가
혹시 ODBC 에 않보인다면 아래 내용을 작업해 주세요
시스템 속성 -> 환경변수 -> 시스템변수
ORACLE_HOME --> D:\DB\OracleClient;D:\DB\OracleClient32Bit
( ORACLE_HOME 에 추가 )
js 파일 하나 얹어주면 html 태그에 브라우저에 해당하는 className 속성이 들어갑니다.
ie6 에서만 유독 글자 아래 마진이 넓다던가 하면
.myText { margin-bottom:2px; }
.ie6 .myText { margin-bottom:1px; } /* !important 를 해야 하던가...귀찮아서 확인 안함.*/
이런식으로 표현해 주면 됩니다.
.win.gecko
.linux.gecko
같은 표현도 가능해서 디자인을 병적으로 맞출 수도 있습니다.
마지막 업데이트가 작년 10월이라는 점이 조금 걸리긴 하는데,
ie6~8 정도만 구분되면 나머지 브라우저는 버전구분 안해도 지장 없을거라 생각됩니다.
twitter 활동이 활발한 것 같으니 최근 브라우저 패치해서 보내주면 좋을 것 같아요~
지메일 쓰는 사람을 위한 메일보내기 링크도 있네요. 이런것도 좋은 팁인 듯.
https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&to=받을사람메일계정
LICENSE
http://creativecommons.org/licenses/by/2.5/
- 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%';
<!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>
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> 접속이 잘되면 성공입니다.
쉽게 말하면 웹주소라 할 수 있으며, 유저들이 쉽게 원하는 사이트로 찾아갈 수 있도록 해 주는 것이 바로 도메인입니다. 실제 주소는 미국 정부기관 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일 전후로)전에 메일로 도메인 기한이 가까워지는 것을 알려줍니다. 도메인을 연장하실려면 다시 일정 금액을 기간이 완료되기 전에 납부하면 되는데 기간이 완료된 후에 다시 구매하면 몇 배의 금액이 더 추가됩니다.
도메인 등록신청서를 다 작성했다면 다음 단계인 "등록비용 결제"과정을 진행하면 됩니다. 아래 이미지처럼 별다른 어려움 없이 결재방법을 선택하고 결재를 완료하면 도메인 등록이 완료되었음을 알리는 글을 보게 될 겁니다.
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
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 의 북마크 기능을 살짝 수정하여
PHP 를 100% 자바로 실행 가능
http://phalanger.codeplex.com/
PHP 를 100% 닷넷으로 실행가능한 PHPLanger
최근에는 기존의 관계형 모델과는 다른 데이터베이스 관리 시스템에 대한 관심이 증가하고 있다. 이 중심에는 NoSQL이라는 개념이 있는데, 이는 데이터베이스 상호 작용에 SQL을 사용하지 않는 데이터베이스 소프트웨어를 총괄하는 용어이다. 주목할 만한 NoSQL 프로젝트 중 하나는 JSON 형태의 문서 콜렉션으로 데이터를 저장하는 오프 소스 문서 지향 데이터베이스인 MongoDB이다. MongoDB가 다른 NoSQL 데이터베이스와 다른 점은 쿼리가 매우 쉽게 변환되기 때문에 관계형 데이터베이스를 MongoDB로 쉽게 변환할 수 있는 강력한 문서 지향 쿼리 언어에 있다.
MongoDB는 C++로 작성되어 있다. MongoDB는 JSON의 2진 버전인 BSON을 사용하여, 키/값 쌍으로 데이터를 유지하는 JSON 형태의 문서에 데이터를 저장한다. MongoDB가 다른 문서 데이터베이스와 구별되는 한 가지 기능은 SQL문을 MongoDB 쿼리 함수 호출로 매우 간단하게 변환하는 기능이다. 이 기능을 이용하면 조직에서 현재 사용 중인 관계형 데이터베이스를 쉽게 마이그레이션할 수 있다. 또한, 주요 운영 체제와 프로그래밍 언어에서 사용 가능한 2진 파일과 드라이버를 사용하면 매우 간단하게 설치하여 사용할 수 있다.
MongoDB는 GNU AGPL(Affero General Public License) 버전 3.0에 따라 라이센스가 부여된 데이터베이스를 사용하는 오픈 소스 프로젝트이다. 이 라이센스는 카피레프트 제한이 소프트웨어를 사용하는 데는 적용되지 않고 배포에만 적용되는 허점을 보완한 GNU GPL의 수정 버전이다. 물론, 일반적으로 클라이언트 디바이스에 설치되지 않고 클라우드에 저장되는 소프트웨어는 이점이 중요하다. 사실상 소프트웨어가 배포되지 않기 때문에 일반 GPL을 사용하는 경우에는 라이센스 조항을 회피할 수 있다는 사실을 인식할 수 있다.
AGPL은 데이터베이스 애플리케이션 자체에만 적용되며 MongoDB의 다른 요소에는 적용되지 않는다. 개발자들이 다양한 프로그래밍 언어로 MongoDB에 연결하는 데 필요한 공식 드라이버는 Apache License Version 2.0에 따라 배포된다. MongoDB 문서는 CCL(Creative Commons license)에 따라 사용 가능하다.
문서 지향 데이터베이스는 기존의 관계형 데이터베이스와는 매우 다르다. 문서 지향 데이터베이스는 테이블과 같은 경직된 구조에 데이터를 저장하지 않고 느슨하게 정의된 문서에 데이터를 저장한다. 관계형 데이터베이스 시스템(RDBMS) 테이블에서는 열을 새로 추가하려면 테이블 자체의 정의를 변경해야 한다. 따라서 비록 널 값을 갖게 될지라도 열이 기존의 모든 레코드에 추가된다. 이는 RDBMS의 엄격한 스키마 기반 설계로 인한 것이다. 그러나 문서를 사용하는 경우에는 기타 모든 문서를 변경하지 않고도 개별 문서에 속성을 새로 추가할 수 있다. 이는 문서 지향 데이터베이스가 일반적으로 스키마를 사용하지 않도록 설계되기 때문이다.
또 다른 기본적인 차이점은 문서 지향 데이터베이스는 문서 간의 엄격한 관계를 제공하지 않는다는 점이다. 이러한 점은 문서 지향 데이터베이스가 스키마 없는 설계를 유지하는 데 도움이 된다. 이점은 관계에 의존하여 데이터 스토리지를 표준화하는 관계형 데이터베이스와는 매우 다른 점이다. 문서 데이터베이스에서는 "관련" 데이터를 별도의 스토리지 영역에 저장하는 대신에 문서 자체에 삽입한다. 각 참조는 추가 쿼리를 필요로 하기 때문에 이렇게 하는 것이 관련 데이터가 저장된 또 다른 문서에 참조를 저장하는 것보다 더 빠르다.
이러한 기능은 데이터가 상위 문서 안에서 독립적으로 존재하는 것이 적합한 많은 애플리케이션에서 매우 잘 동작한다. 이에 해당하는
예(MongoDB 문서에도 있음)로는 블로그 포스트와 주석이 있다. 주석은 단일 포스트에만 적용되므로 주석을 블로그 포스트와 분리해서 생각하는
것은 타당하지 않다. MongoDB에서는 블로그 포스트 문서에 해당 포스트의 주석을 저장하는 comments
속성이
있다. 관계형 데이터베이스에서는 ID가 기본 키인 주석 테이블과 포스트 테이블 그리고 주석이 속하는 포스트를 정의하는 중간 맵핑 테이블
post_comments가 존재하게 된다. 이로 인해 매우 간단해야 할 것들이 불필요하게 매우 복잡해진다.
그러나 관련 데이터를 별도로 저장해야 하는 경우에는 MongoDB에서 별도의 콜렉션을 사용하여 쉽게 이러한 작업을 수행할 수 있다. 또
다른 좋은 예는 MongoDB 문서에 고객 주문 정보를 저장하는 것이다. 일반적으로 고객 주문 정보는 고객 정보, 주문 자체, 주문 품목 및
제품 정보로 구성된다. MongoDB를 사용하면 고객, 제품 및 주문 정보를 개별 콜렉션에 저장하게 되지만, 품목 데이터는 관련된 주문 문서
안에 삽입된다. 그러면, 관계형 데이터베이스에서 사용한 것과 같은 외부 키 형태의 ID를 사용하여 제품
과
고객
콜렉션을 참조한다. 이러한 하이브리드 방식은 단순하기 때문에 MongoDB는 SQL로 작업하는 데 익숙한
개발자들에게 좋은 선택이 된다. 그렇긴 하지만, 다른 콜렉션에서 데이터를 참조하는 대신에 문서 내부에 데이터를 삽입하면 성능을 대폭 개선할 수
있으므로 각각의 개별 유스 케이스를 대상으로 취해야 하는 접근 방식을 신중하게 결정해야 한다.
MongoDB는 단지 기본적인 키/값 저장소가 아니다. MongoDB의 다른 기능 중 일부를 간략하게 살펴보도록 하자.
- 공식 2진 파일은 Windows®, Mac OS X, Linux® 및 Solaris에서 사용 가능하며 소스 배포판을 이용하여 직접 빌드할 수도 있다.
- 공식 드라이버는 C, C#, C++, Haskell, Java™, JavaScript, Perl, PHP, Python, Ruby 및 Scala에서 사용 가능하며, 다른 언어에서는 광범위한 커뮤니티 지원 드라이버를 사용할 수 있다.
- 모든 문서 속성에서 기준을 사용하여 데이터를 찾을 수 있게 하는 임시(Ad-hoc) Javascript 쿼리. 이러한 쿼리는 SQL 쿼리의 기능을 반영한 것으로 SQL 개발자는 이 쿼리를 이용하여 MongoDB 쿼리를 매우 간단하게 작성할 수 있다.
- 쿼리에서 정규 표현식 지원
- MongoDB의 쿼리 결과는
limit()
,skip()
,sort()
,count()
,distinct()
및group()
을 포함하여 필터링과 수집 및 정렬에 필요한 다양한 함수를 제공하는 커서에 저장된다. - 고급 수집용
map/reduce
구현 - GridFS를 사용하는 대용량 파일 스토리지
- RDBMS 형태의 속성 인덱싱 지원, 여기에서는 선택된 문서 속성에서 직접 인덱스를 작성할 수 있다.
- 힌트, 설명 계획 및 프로파일링을 사용하는 쿼리 최적화 기능
- MySQL과 비슷한 마스터/슬레이브 복제
- 표준화된 데이터를 필요로 하는 참조 쿼리를 허용하는 콜렉션 기반 오브젝트 스토리지
- 자동 샤딩(Auto-sharding)을 이용한 수평적 확장
- 경쟁이 없는 고성능의 동시성을 구현하는 데 필요한 제자리 쓰기(In-place update) 기능
- 설치하지 않고도 MongoDB를 사용해 볼 수 있는 온라인 쉘
- 발행되었거나 현재 작성 중인 여러 권의 책과 상세한 문서
KISA-RBL 서버에서 스팸리스트를 다운로드하는 방법과
메일 서버(Sendmail, qmail, Postfix, Exchange Server)에서 참조할 수 있는 방법이 설명되어 있습니다.
첨부파일을 참고해 주세요.
출처 : kisarbl.or.kr (한국인터넷진흥원 스팸대응팀)
아티카페 특징
-
윈도우 기반의 ASP 언어 및 MS-SQL 2005 DB 사용으로 보다 안정적인 시스템
- Windows Server 지원
- MS-SQL 2005 또는 그 이상의 DB 서버
- 스토어드 프로시져 기반으로 DB를 액세스 하기 때문에 보안이 강화되었습니다. -
UTF-8 방식으로 개발되어 다국어 지원가능
- 한글 뿐만 아니라 일어, 중국어 등 다양한 언어로 변환해서 사용이 가능합니다. -
쉬운 인터페이스와 관리자 기능 제공
- 직관적인 인터페이스 구현으로 누구나 손쉽게 사용이 가능
- 카페 별 개별 관리자 기능 제공
- 최신, 인기, 주제별 카페 목록 출력 기능
- 각종 통계 기능
- 카페 디자인 변경이 쉽고 스킨을 신규로 제작해서 사용 가능 -
웹 에디터 적용으로 편리한 문서 편집 및 높은 컨텐츠 생산성 확보
- 각종 정보 첨부 기능 제공
- 편리한 편집 기능 제공 -
스킨 형태의 디자인
- 다양한 스킨 제공으로 카페 운영자는 취향에 맞는 디자인 선택
- 스킨을 사용하지 않고 개인 취향에 맞게 디자인을 변경해서 사용가능 -
확장 및 커스트 마이징 용이
- 자체 웹 솔루션을 보유하고 있어 클라이언트의 요구에 맞게 맞춤형 서비스로 확장 제공 가능 -
빠른 처리 속도
- 사용자가 증가 시 속도 향상의 효과 탁월 -
다양한 광고설정
- 사이트 총괄 관리 메뉴에서 배너를 등록으로 개설된 카페 노출
기능 및 특징
-
카페 개설
운영하는 사이트에 회원으로 가입된 회원이 로그인 후 카페개설 메뉴를 통해 빠르게 실시간으로 카페 개설이 가능합니다.
한 명의 회원은 여러 개의 카페를 개설 또는 관리할 수 있습니다. -
카페 기본정보
카페 운영에 관련되어 카페 운영 성격에 맞게 다양한 설정이 가능하며, 필요시 카페에 배경 음악의 삽입도 가능합니다.
-
카페 메뉴 관리
카페에서 사용할 메뉴를 카페 운영자가 추가하거나 삭제가 가능합니다.
통합게시판, 사진게시판, 스탭게시판, 메모게시판, 출석부의 메뉴를 추가할 수 있으며, 메뉴를 그룹 지어 사용이 가능합니다.
또한 메뉴의 출력순서를 자유롭게 변경할 수 있으며, 카페 상단에 출력되는 메뉴도 수정이 가능합니다. -
등록된 글 관리
카페에서 등록된 글을 회원이 삭제시 복구가 가능한 휴지통 기능이 있으며, 등록된 글을 타 회원이 불량글로 신고한 경우 카페 운영자가 확인 후 조취를 취할 수 있는 기능이 포함되어 있습니다.
게시물 등록시 태그를 입력한 경우 등록된 태그에서 카페 대표 태그로 지정할 수 있습니다. -
카페 멤버 관리
운영하는 카페에 신규로 회원 가입 시 가입 조건을 설정하거나, 운영회칙 및 히스토리 등록이 가능합니다.
가입된 회원 중 활동이 두드러진 회원을 스탭으로 선정해서 카페를 함께 운영할 수 있으며, 카페 운영자는 스탭 마다 특정한 권한을 부여 할 수 있습니다.
카페에 회의 가입 및 탈퇴가 쉬우며, 회원별로 등급을 지정해서 특정 메뉴에 접근하도록 할 수 있습니다.
회원에게 메시지를 발송하거나, 간단한 이벤트를 진행할 수 있습니다.
회원가입 통계를 확인할 수 있는 카페 통계 메뉴도 제공됩니다. -
카페 패쇄 및 위임
카페 운영자는 카페를 패쇄 하거나 운영 권한을 다른 회원에게 넘길 수 있습니다.
카페 패쇄시 패쇄 안내 공지를 등록하거나 가입된 카페 회원에게 안내 메일을 발송할 수 있습니다.
15일단 회원들에게 패쇄 안내를 진행 후 패쇄가 가능하며, 매니저 위임은 실시간으로 처리됩니다. -
레이아웃 설정
카페의 기본 레이아웃을 4가지 형태로 선택이 가능하며, 카페 메인에 원하는 메뉴를 넣거나 삭제 또는 게시물의 출력 개수를 설정할 수 있습니다.
웹 위젯을 사용하거나 인기 검색어, 게시물랭킹, 멤버랭킹, 멤버소식의 기타 메뉴를 메인에 출력할 수 있습니다. -
디자인
카페 대문을 사용할 경우 노출되는 영역의 수정이 가능하며, 기본적으로 제공되는 스킨을 이용해서 카페의 디자인 변경을 손쉽게 할 수 있습니다.
또한 사용자가 직접 세부적으로 디자인을 변경할 수 있으며, 타 업체에서 제공되는 웹 위젯을 추가해서 사용이 가능합니다.
사이트 총괄 운영자는 각 카페 운영자에게 필요한 스킨을 제작해서 추가가 가능합니다. -
게시물 등록 에디터
게시물을 등록하거나 카페 관리시 필요한 정보를 입력해야 하는 경우 에디터를 제공하기 때문에 편리한 문서 편집 및 높은 컨텐츠 생산성 확보가 가능합니다.
에디터에서 제공하는 사진 업로드 기능으로 사용자는 편리하게 사진 및 파일 업로드가 가능합니다. -
총괄 운영자 관리 기능
카페 운영자 이외에 카페를 총괄 운영하는 관리자에게 별도의 관리자 프로그램이 제공되어 카페 사이트 운영에 편리합니다.
등록된 카페를 한눈에 확인하거나 수정이 가능하며, 카페가 패쇄된 경우 패쇄 로그를 확인할 수 있습니다.
카페 운영자에게 필요한 디자인 스킨을 직접 만들어서 업데이트가 가능하며, 각 카페에 노출되는 배너 관리 프로그램도 제공됩니다.
구축절차
아티카페 구축절차 구축 상담 및 견적 > 구축 계약체결 > 카페 솔루션 구축 > 비용결제 > 카페 솔루션 사용
카페 솔루션을 적용하시려면 먼저 구축 상담 및 견적을 받고 계약을 체결해야 합니다.
사이트 규모 및 사용자 수에 따라 비용이
달라집니다.
스마트폰 으로 위 웹아티 사이트에 접속 하면 정상 적인 화면을 볼수 있습니다.
구글 에서 [ 웹아티 ] 검색하면 검색 엔진에서 가장 선호 하는 검색이 이루어질수 있습니다.
이건 국내 최고 홈페이지 솔루션 [ 아티보드 3.0 ] 으로 제작 되어 가능한 일입니다.
스마트폰 가입자가 1000만 시대에 더 이상 모바일 홈페이지는 선택이 아닌 필수가 되었습니다.
모바일로 접속하면 모바일
홈페이지가!
사용기기가 모바일인지 일반 PC인지 체크하여 자동으로 사용자 환경에 맞는 버전의 홈페이지로
자동접속됩니다.
코딩방법: 웹접근성 코딩을 기반으로 합니다.
모바일 사이트 & 모바일 오피스란
휴대폰에서 일반 웹에 접속할 수 있는 브라우징 기술로 모바일 웹에 최적화된 웹사이트를 의미한다.
스마트폰이 점점 대중화되고 무료
Wi-Fi존이 확산되면서 휴대폰을 이용한 인터넷 이용자가 급증하고 있는 현실 속에서 e-비즈니스를 꿈꾸는 사업장이라면,이제는 모바일웹은 선택이
아닌 필수의 시대가 된 것이다.
모바일 사이트 & 모바일 오피스의 특징
- 휴대폰의 휴대성이 최대 장점으로 언제 어디서나 사이트 방문이 가능
- 모바일에서 보기 편한 글씨체,크기,작은 이미지 사용으로 속도가 빠르고 보기 편함
- 내용 위주로 구성된 최적화된 사이트로 사용자 인터페이스 구조를 가지고 있음
모바일 사이트 & 모바일 오피스 내에서 활용 가능한 기능들
- 인터넷 시장과 함께 모바일 시장으로 새로운 비즈니스 시장으로 급성장(블루오션)
- 무료 Wi-Fi,무제한 요금제로 모바일 데이터 통화료가 낮아지고 있습니다.
- 언제 어디서든 홈페이지에 접속하여 고객과의 커뮤니케이션이 가능하고 관리가 편리합니다.
- 연령대,지역,성별,관심도를 타겟설정이 가능합니다.
- 일본에서 전자상거래 매출의 20%가 모바일을 통하여 발생하고 있습니다.
적용사례
기능안내
-
전화바로걸기
모바일웹 접속하고 바로 전화 걸 수 있는 기능입니다.
전화번호 누르지 않고 클릭! 한번으로 전화 걸기가 가능합니다. -
지도API 서비스
모바일웹상의 지도에 원하는 메시지나,전화번호등 여러 형태의 문구를 널어 주면 건물이나 정확한 위치를 확인 할 수 있습니다.API서비스는 구글,다음 지도를 지원합니다.
-
QR코드
흑백 격자무늬로 정보를 나타내는 1차원 바코드입니다.
일반적인 숫자정보가 저장된 바코드와는 달리 숫자,알파벳,한자등의 문자 데이터를 저장할 수 있습니다. -
예약폼서비스
예약접수 문의접수 증 다양한 용도로 사용할 수 있는 입력폼입니다.
웹아티의 유지보수 정책
-
웹아티는 한번 만들고 거기서 끝나지 않습니다. 신속하고 안정적인 유지보수서비스를 제공하기 위해 웹사이트제작 고객에 한하여 유지 보수 계약을 맺고 있습니다.
-
웹아티는 한번 만들고 거기서 끝나지 않습니다. 신속하고 안정적인 유지보수서비스를 제공하기 위해 웹사이트제작 고객에 한하여 유지 보수 계약을 맺고 있습니다.
-
웹아티는 한번 만들고 거기서 끝나지 않습니다. 신속하고 안정적인 유지보수서비스를 제공하기 위해 웹사이트제작 고객에 한하여 유지 보수 계약을 맺고 있습니다.
웹아티 홈페이지 유지보수 서비스는 이런 업체에 필요합니다!
- 웹아티에서 홈페이지를 제작한 경우
- 기존에 홈페이지가 있는 상태에서 홈페이지 전문관리 인원을 두기 어려운 경우
- 현재 관리를 맡고 있는 업체와 의사소통이 어려운 경우
- 홈페이지 제작업체가 폐업한 경우
- 홈페이지를 계속해서 관리를 맡겨야 할 경우
- 편안하고 친절한 상담과 정확한 작업 처리를 원하는 경우
서비스의 장점
-
Web2.0으로 UE 제작
기존의 HTML 코딩 방식을 떠나 웹표준 방식으로 홈페이지를 구축해서 외부 브라우저 호환성을 높이고 모바일 및 Personal assistants 기기와 호환성을 위한 작업 방식 제안 W3C 웹표준화 정책에 따른 CSS 작업으로 제작됩니다.
-
풍부한 제작경험
수많은 홈페이지를 제작한 경험과 노하우를 종합하여 홈페이지의 방향과 컨셉을 결정하며, 메인 메뉴의 종류와 타이틀 및 첫 페이지 내용, 각 하부의 페이지에 들어갈 제목과 내용등을 결정합니다.
-
자체적으로 제작된 솔루션 제공
홈페이지 운영 및 관리를 보다 편리하게 할 수 있도록 자체적으로 제작된 솔루션을 제공해 드립니다.
이미 수많은 사용자에게 검증된 솔루션은 안정적이며, 다양한 부가 기능을 장착하고 있습니다.
게시판, 회원관리, 통계, 팝업, 설문조사 등의 다양한 기능을 갖추고 있으며, 필요한 경우 자체적으로 개발해 드립니다. -
디자인 트랜드
빠르게 변화하는 디자인 트랜드와 고객님의 요청 컨셉을 조화시켜 최고의 퀄리티와 개성있는 홈페이지를 구축합니다.
-
브랜드 가치의 최대화
최대의 브랜드 가치를 살리기 위해 메인페이지의 플래시 이미지로 제품 또는 상품의 가치를 높이며, 메인 페이지의 구성과 분위기에 맞게 각각의 하부 페이지 디자인을 통일감 있게 구성합니다.
-
고객과의 커뮤니케이션을 제공
홈페이지에 필요한 게시판, 갤러리, 웹진, 설문조사, 회원관리등의 프로그램을 제공하여 홈페이지를 방문한 사용자들과의 정보교환 및 새로운 업데이트 내용을 실시간으로 구현합니다.
-
사후관리
홈페이지 제작이 완료되었다고 하더라도 홈페이지의 문제가 발생하면 해결해 드립니다.
또한 요청에 따라 홈페이지 업그레이드가 필요한 경우 저렴한 가격으로 서비스를 해 드립니다. -
자체 서버 운영
자체적으로 다수의 서버를 운영하고 있어, 고객님의 홈페이지 제작완료 후 웹호스팅 서비스를 해 드립니다.
수년간 서버 관리 및 운영 노하우로 고객님의 홈페이지가 안정적으로 서비스가 될 수 있도록 도와 드립니다.
좋은 웹사이트는 업체와 고객이 함께 만들어 갑니다.
고객님이 제작을 원하시는 홈페이지의 고품격 퀄리티와 안전을 위해 위해 반드시 체크할 사항입니다.
출처 : http://webarty.com 공개용 웹표준 통합 솔루션 아티보드 3.0
웹표준이란?
홈페이지가 보일 수 있는 모든 곳에서 정상적으로 똑같이 보이게 하는 것
오프라인 문서를
웹에 동일하게 작성한 것으로 국제 표준화 단체인 w3c가 권고한 표준안에 따라 목적과 방법에 맞게 웹에서 표준으로 사용되는 기술을
말합니다.
현재 사용자들은 IE뿐만 아니라 파이어폭스, 오페라, 사파리 등 다양한 브라우저를 사용함에 따라 비표준방식의 제작형태로는 원활한
접근이 어려워졌습니다. 따라서 어떠한 운영체제나 브라우저를 이용하더라도 같은 결과물을 볼 수 있도록 하기 위하여 표준을 지켜 코딩하도록 해야
합니다.
웹표준의 장점
- 수정과 관리용이
콘텐츠의 올바른 구조화, CSS로 시각표현을 통일하여 제어하게 되어 페이지 제작의 부담이 감소됩니다. - 웹 접근성 향상
다양한 브라우징 환경에 대응이 가능, 핸디캡을 가진 사용자(시각장애인 등)들을 배려할 수 있다. - 검색엔진 최적화
검색엔진의 크롤러(Crawler)는 웹페이지 소스를 있는 그대로 해석하므로 적절하게 구조화된 웹페이지는 검색 로봇이 잘 검색할 수 있으며 그만큼 비즈니스 기회가 많아집니다. - File Size 축소, 서버 저장 공간 절약
소스의 효율적 작성은 파일사이즈와 서버공간을 절약할 수 있으며, 동시에 화면표시에 소요되는 시간을 줄일 수 있습니다. - 휴대폰, PDA 등의 장치 호환
별도의 모바일 홈페이지를 제작하지 않아도 모바일에서 깨지지 않는 홈페이지의 형태 그대로 보입니다.
누가 웹표준을 정하는가?
- - W3C (World Wide Web Consortium) - 다른 단체들도 있으며 관여는 하지만 가장 중심적인 역할 수행
- - 웹표준의 대두 - 미국 Wired News가 2002년 9월 XHTML + CSS 기반으로 재구축(웹표준 엄격히 준수)되면서 파일사이즈가 줄어들고
- - 랜더링속도가 향상, 각종 업데이트의 효율적 진행 등으로 웹표준 준수의 경제효과 입증
인프라와 트렌드에서 생각하는 웹표준
- - 웹표준 경시와 브라우저 전쟁 - 화려한 요소에만 치우친 상태에서 웹브라우저의 경쟁 가속화
- - ISO(국제표준화기구) - 공업규격 국제표준화 단체: 언어코드, 유니코드, ISO-HTML 규정
- - IETF - 인터넷기술 표준화 단체: 통신프로토콜에 관여
- - IANA - IP어드레스와 도메인명 등의 주소 자원 표준화와 분배를 담당
- - OASIS - e비지니스의 표준개발, SGML과 XML툴, 웹서비스 등의 표준화 담당
구조언어와 표현언어
구조언어
HTML : 가장 잘 알려진 마크업 언어, Strict,
Transitional, Frameset DTD 세가지 문서형
XHTML 1.0 : HTML을 XML로 재구축한 마크업언어. HTML처럼
Strict, Transitional, Frameset DTD 세가지 문서형
XHTML 1.1 : 모듈화된 XHTML. 1.0의
Strict만 인정
XML 1.0 : 기반언어이며 기반기술에 Namespaces, Base, Events, Infoset,
XIncludes가 있고, 확장기술에 Schema, XQuery
Xpath, XLink, XForm, XSL 등이 있다. XML 작성
어플리케이션으로 마크업언어 'XHTML'과 수식기술언어 MathML, 그래픽언어 SVG 멀티미디어언어 SMIL이 있다
HTML이 아니라
XHTML인 이유
빠른 데이터 처리와 안정적 브라우저 동작, 데이터 재이용성과 정보공유 촉진, 네임스페이스 이용과 다양한 기계에
대응
표현언어
CSS : 웹페이지의 시각표현을 지정하는 언어.
웹접근성이란?
누구나 웹에 접근할 수 있어야 한다
웹접근성이란 모든 인터넷 사용자가(장애인, 고령자
등이 포함된) 웹 사이트에서 제공하는 정보에 접근하고 이해할 수 있도록 보장하는 것입니다.
일반적으로 웹 사이트는 장애를 가지지 않은 일반
사용자를 대상으로 만들어져 있어 특정 장애(시각, 청각 등)를 가진 사용자가 접근할 수 없거나 접근하기 불편하도록 되어
있습니다.
웹 접근성은 이러한 사용자의 신체적, 환경적 조건에 관계없이 웹에 접근할 수 있고 정보를 이용할 수 있도록 하는 지침을
말합니다. 여기서 신체적 조건이란 장애인, 노인, 저시력자와 같이 분류할 수 있으며, 환경적 조건이란 네트워크 환경, 브라우저 유형,
저속사양컴퓨터, PDA 같이 기타 하드웨어적인 측면을 말할 수 있습니다.
웹접근성의 장점
- 장애인, 고령자 등을 포함한 모든 사람들이 웹에서 원하는 정보들을 자유롭게 접근하고 이용할 수 있습니다.
- 2008년 4월 11일 부터 시행된 「장애인차별금지 및 권리구제 등에 관한 법률」 및 동법 시행령들 관련 규정을 준수할 수 있게 됩니다.
- 소음이 많은 환경 등 주변 환경에 영향 없이, 모바일, PDA 등과 같은 새로운 기기등장과 상관 없이 사용 가능한 웹을 제공하게 됩니다.
- 웹 페이지 구성이 논리적으로 최적화되어, 디자인 및 설계의 효율성 제고는 물론 개발, 유지보수, 개편 비용 절감 효과를 가져오게 됩니다.
- 기업의 사해적 책임(CSR)이 중요하게 부각되고 있는 시점에서 홈페이지를 운영하고 있는 기관 및 단체에 대한 긍정적 이미지 형성에 도움이 됩니다.
Cross Browsing
익스플로러, 파이어폭스, 구글크롬, 사파리, 오페라 등
어느 웹 브라우저로 접속해도 깨짐없이 볼 수 있도록 최적화 작업
SET ANSI_NULLS ON
Null 값과 함께 사용될 경우 Equals(=)와 Not Equal To(<>) 비교 연산자의 ISO 호환 동작을 지정합니다.
SET ANSI_WARNINGS ON
여러 오류 상황에 대한 ISO 표준 동작을 지정합니다.
// Microsoft SQL Server 에 접속한다. $rCon = mssql_connect('서버호스트', '사용자계정', '비밀번호'); // 사용할 데이터베이스를 선택한다. mssql_select_db('데이터베이스이름', $rCon); mssql_query('SET ANSI_NULLS ON'); mssql_query('SET ANSI_WARNINGS ON'); // 호출할 프로시져를 초기화 한다. $stmt = mssql_init("프로시져이름", $rCon); // 프로시져의 파라미터를 추가한다. mssql_bind($stmt, '@인자1', $값1, SQLINT4); mssql_bind($stmt, '@인자2', $값2, SQLINT1); mssql_bind($stmt, '@인자3', $값3, SQLVARCHAR); // 프로시져를 실행한다. mssql_execute($stmt); // Statement 메모리를 해제 한다. mssql_free_statement($stmt); // 접속을 끊는다. mssql_close($rCon); ?>
자료형
SQLCHAR DBCHAR
SQLVARCHAR DBCHAR
SQLTEXT DBCHAR
SQLBINARY DBBINARY
SQLVARBINARY DBBINARY
SQLIMAGE DBBINARY
SQLINT1 DBTINYINT
SQLINT2 DBSMALLINT
SQLINT4 DBINT
SQLFLT4 DBFLT4
SQLFLT8 DBFLT8
SQLBIT DBBIT
SQLMONEY4 DBMONEY4
SQLMONEY DBMONEY
SQLDATETIM4 DBDATETIM4
SQLDATETIME DBDATETIME
SQLDECIMAL DBDECIMAL
SQLNUMERIC DBNUMERIC
데 모 : http://www.webdice.org/uber_uploader/
jquery로되어 있네요.
인터넷 검색해서 나오는 쉘 스크립트의 경우 이미 utf-8일 경우도 다시 utf-8로 변환해서 깨지는 현상이 발생하여 변환시 에러가 안날 경우만 변경되도록 처리가 필요하였다.
그럴 경우를 위해 일괄적으로 특정 디렉토리의 파일들을 찾아서 euc-kr -> utf-8 로 만드는 쉘 스크립트를 만들어서 돌려보니 잘 작동해서 올린다.
html, inc, php 이외의 파일을 변환하려면 중간에 "*[php|inc|html?]" 부분을 수정하면 된다.
================ 스크립트 시작 ==================
#!/bin/bash
if [ $# != 3 ]
then
echo "Usage : char_convert.sh [char_from] [char_to] [dir]"
exit 0
fi
charfrom=$1
charto=$2
objdir=$3
for x in $(find $objdir -type f -name "*[php|inc|html?]") ; do
iconv -f $charfrom -t $charto $x > $x.utf-8
if [ $? != 0 ]
then
echo "-----------------------------------"
rm -f $x.utf-8
echo "deleted $x.utf-8"
else
echo "-----------------------------------"
rm -f '$x'
echo "deleted $x"
mv $x.utf-8 $x
echo "mv $x.utf-8 -> $x"
fi
done
exit 0
================ 스크립트 종료 ==================
PS. 리눅스 iconv 기능을 이용했으므로 없다면 설치해야 함.
PS. PHP 를 사용하는 분들이라면 기본적으로 있을거라 생각함.
* 이 글은 유닉스 관련 운영체제의 경험이 별로 없는 사람을 위한 wget 의 간단한 지침서입니다.
1. wget ?
코맨드 라인에서 파일 다운로드를 쉽게 할 수 있는 유틸리티이다. 요즘의 대부분의 리눅스 배포판에는 기본적으로 설치되어 있다.
2. Windows 버전의 wget
* win32 에서 사용가능한 바이너리도 존재한다. 여기를 참조.
- 위의 바이너리를 다운로드하고 윈도우 환경변수에서 PATH에 잡혀 있는 폴더로 복사해 둔다.
- "어떻게 윈도우에서 PATH를 잡나요?" 라고 생각하시는 분이라면 여기를 참조할 것.
- "PATH가 뭐지요?" 라고 생각하는 분이라면 걍 C:Windows 폴더로 복사한다. -.-;;;
3. 기본적인 사용법
- PATH가 걸린 상태에서 '명령 프롬프트' 를 부르고 'wget' 을 입력한다.
* 보다 명령 프롬프트를 쉽게 사용하려면 여기를 참조.
- "wget --help" 라고 하면 사용할 수 있는 옵션이 출력된다.
4. 중요한 옵션 및 사용예
- r : 지정된 디렉토리의 하위 디렉토리의 내용을 몽땅 다운로드한다.
사용예 : wget -r ftp://ftp.ncbi.nlm.nih.gov/blast/db/
설명 : 이렇게 하면 ftp://ftp.ncbi.nlm.nih.gov/blast/db/ 의 디렉토리 구조를 유지한 채로 모든 파일을 불러온다.
- nd : 디렉토리를 만들지 않는다. 계층적으로 나열된 웹 사이트의 디렉토리의 내용을 한 디렉토리로 불러올 때 편리하다. -r 옵션과 같이 사용하면 매우 유용하다.
사용예 : wget -nd -r ftp://ftp.ncbi.nlm.nih.gov/blast/db/
설명 : 이렇게 하면 ftp://ftp.ncbi.nlm.nih.gov/blast/db/ 내의 내용물을 현재 폴더에 몽땅 다운로드받는다.
-A, --accept=: 지정된 확장자의 파일만을 받아온다.
사용예 : wget -nd -r --accept=fna ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/
설명 : 이렇게 하면 ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria 에서 확장자가 .fna 인 파일만을 받아서 현재 디렉토리에 저장한다. (물론 -nd 옵션을 빼면 폴더 구조가 그대로 유지된다)
-R, --reject=: 지정된 확장자의 파일만을 빼고 받아온다.
사용예 : wget -nd -r --accept=fna ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/
설명 : 이렇게 하면 ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria 에서 확장자가 .fna 인 파일만 빼고 받아서 현재 디렉토리에 저장한다.
-l , --level= : -r 옵션, 즉 하위 디렉토리 받아오기를 사용하였을 때 다운로드받을 최대 단계를 지정할 때 사용한다.
사용예 : wget -nd -r --accept=fna --level=3 ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/
설명 : ftp://ftp.ncbi.nlm.nih.gov/genomes/Bacteria 에서 확장자가 .fna 인 파일만 빼고 받고 3단계까지 거슬러 올라서 다운로드를 수행한다.
-N : 현재 다운로드 받을 위치에 있는 파일이 현재 내 하드에 있는 파일보다 새로운 파일일때만 다운로드를 수행한다
-m : 미러 명령. 즉, 특정한 웹사이트의 내용을 그대로 폴더 구조채 긁어오되, 새로 업데이트한 내용만을 다운받고 싶을 때 사용한다.
ftp id, password 지정 : wget ftp://id:password@website
이런 식으로 id와 password를 지정하면 된다
이 정도면 많이 사용하는 옵션에 대해서는 설명했을 것이다. 기타 명령어에 대해서는 wget --help 를 입력하면 자세한 설명이 나와 있다.
5. 기타
- 쉘 스크립트나 배치 파일을 이용하여 자동화하면 매우 편리하다.
가령 유닉스 계열이라면
#!/bin/bash
wget -nd -r ftp://id:password@website/$1/
.
.
.
과 같은 식으로 간단한 쉘 스크립트를 작성하여 적당한 이름으로 저장한 후, Path가 걸린 위치에 넣고 실행 권한 (chmod +x <파일이름>) 을 주면 매우 편리하다.
윈도우라면
echo off
wget -nd -r ftp://id:password@website/%1/
.
.
.
과 같은 식으로 배치 파일을 만들고 *.bat 으로 저장한다.
- 도스 시절부터 PC를 이용해 온 사람이라면 배치 파일에 대해서 잘 알고 있겠지만, 그렇지 않은 사람은 여기 를 참조해 보기를. 사실 유닉스 계열의 쉘 스크립트만큼 강력하지는 않고,윈도우 자체가 GUI 환경 위주의 운영체계이긴 하지만 그래도 어느 정도 수준의 일은 윈도우에서도 처리 가능하다. 사실 Win98 같은 구닥다리 말고 NT 계열의 운영체제 (NT, 2000, XP) 는 결코 널럴하게 만들어진 운영 체제는 아니다. 아마도 NT 계열 MS 운영체제가 유닉스 계열에 대해서 가지는 가장 큰 약점은 '유저의 평균수준' 일지도 모른다. -.-;;
rem 각 디렉토리에서 파일을 최근 날짜로 정렬.
rem 최근날짜순으로 정렬해서 10개를 남기고(skip)하고 나머지를 삭제.
rem 가장 오래전에 생성된 파일을 삭제.
rem 최근 10개의 백업 파일이 보존됨. 매일 오전 7시에 예약.
d:
cd d:\autobackup
dir /o-d /B f:\backup\adm\*.zip> adm.list;
for /F "skip=10 usebackq delims=\n" %%f IN (adm.list) do echo "%%f" ;
dir /o-d /B f:\backup\dorm\*.gz>dorm.list;
for /F "skip=10 usebackq delims=\n" %%f IN (dorm.list) do echo "%%f" ;
cd
dir /o-d /B d:\backup\gyd\*.gz>gyd.list;
for /F "skip=10 usebackq delims=\n" %%f IN (gyd.list) do echo "%%f" ;
dir /o-d /B f:\backup\mdorm\*.gz>mdorm.list;
for /F "skip=10 usebackq delims=\n" %%f IN (mdorm.list) do echo "%%f" ;
dir /o-d /B f:\backup\phys\*.gz>phys.list;
for /F "skip=10 usebackq delims=\n" %%f IN (phys.list) do echo "%%f" ;
dir /o-d /B f:\backup\sql\*.gz>sql.list;
for /F "skip=10 usebackq delims=\n" %%f IN (sql.list) do echo "%%f" ;
dir /o-d /B f:\backup\phys\*.gz>phys.list;
for /F "skip=10 usebackq
위의 내용을 auto.bat로 저장하고 예약작업에 등록.