해보니, 굳이 움직이는 gif로 할필요없겠다. 경우에 따라서는 css를 이용해서 순간순간 블링크 텍스트 색상도맘대로 변경할수도 있고.
<span class='icn_new'>new</span>
//블링크 시작.
var icn_blink = setInterval(function(){
//블링크 중지가 필요할경우,
적용되는 브라우져는
ie7.0이상, firefox, crome, opera 에서 이용가능하다.
'분류 전체보기'에 해당되는 글 104건
Posted in 웹프로그래밍/javascript by 강화도령
Posted in server by 강화도령
du
특정 디렉토리에서 하부디렉토리까지 포함한 디스크의 사용량을 보여준다.
[사용법]
du [Option] [Files]
* Option
-a : 디렉토리에 있는 파일 하나하나의 크기를 출력한다.
-s : 총 사용량만 표시한다. (간단하게 전체 용량을 확인할 때는 단순하게 이 옵션을 쓰자.)
du -s
-k : KiloByte 단위로 표시한다.
-h : 용량을 사람이 보기 가장 좋게 표시한다.
[예제]
'du -a' : 현재 디렉토리의 디스크 사용량을 파일단위로 모두 출력한다.
'du -s *' : 현재 디렉토리의 첫번째 단계까지만 디스크의 사용량을 출력한다.
'du -h --max-depth=0 *' 와 동일
'du -h --max-depth=1 '
--max-depth=1 에서 마지막의 숫자는 폴더의 깊이이다.
Posted in server by 강화도령
adduser [계정이름] : 계정생성
passwd [계정이름] : 해당계정의 비번변경
userdel -r [계정이름] : 계정삭제 및 계정의 파일폴더 모두 삭제(-r)
w : 현재 사용중인 사용자
last : 최근 이용한 접속자
<파일/디렉토리>
ll : 전체폴더구조 보기
ls : 폴더구조 간단히 보기
ls -al : 숨긴파일 까지 다 보기
ls [디렉토리명] : 해당 디렉토리보기
ls [파일명 또는 일부] : 해당되는 파일만 보여주기
cd : 디렉토리 이동
chmod 755 [디렉토리] : 파일권한변경 (내꺼, 같은그룹, 전체)
mkdir [디렉토리] : 디렉토리생성
mkdir -p a/b : a디렉토리 생성후 하위에 b디렉토리 생성
rm [파일명] : 파일삭제
rmdir [디렉토리명] : 디렉토리삭제 (파일존재시 삭제 불가)
rm -rf [디렉토리명] : 하위 디렉토리 및 파일 까지 모두 삭제
touch [파일명] : 해당파일의 수정일을 현재시각으로 변경(파일없을시 빈파일 생성)
cp [파일1] [파일2] : 파일1을 파일2로 복사
cp -r [디렉토리1] [디렉토리2] : 디렉토리1을 디렉토리2로 하위폴더와 파일까지 복사
cp -a [파일1] [파일2] : 소유권을 유지하면서 복사
move [파일/디렉토리] [디렉토리] : 파일 및 디렉토리 이동
cat [파일명] : 파일내용 출력
cat /dev/cdrom > linux.iso : CD롬에 있는 내용을 CD 이미지 파일로 만듦
cat a.txt >> b.txt : b.txt 파일 하단에 a.txt 파일의 내용 추가
more [파일명] : 파일내용을 페이지단위로 출력 (space:다음페이지, b:이전페이지)
ln [해당디렉토리 또는 파일] [링크이름] : 하드링크
ls -s [해당디렉토리 또는 파일] [링크이름] : 심볼릭링크
| : 파이프로 두개의 명령을 연결시켜줌
(예: ls -l /usr/bin | more : ls에서 검색된 파일 폴더를 페이지별로 보여줌)
파일권한 (자신/그룹/나머지: 4:읽기, 2:쓰기, 1:실행)
chown -R ohhappy.wheel /home/ohhappy/* : /home/ohhappy하위의 모든 파일 디렉토리의 소유자를 ohhappy로 그룹을 wheel로 변경
mount -t iso9660 /dev/cdrom /mnt/cdrom : cdrom 마운트
mount -t vfat /dev/fd0 /mnt/floppy : floppy 마운트
umount /dev/cdrom 또는 umount /mnt/cdrom
<검색>
find [경로] -name [파일명] : 하위경로의 파일찾기
/[찾을 문서명] : 문서나 메뉴얼안에서 문자찾기
which [명령어] : 명령어의 절대경로를 알려줌
whereis [명령어] : 명령어의 바이너리, 소스, 맨페이지위치 알려줌
<시스템/프로세스 관련>
top : 시스템 프로세스 및 메모리 및 CPU 사용량
uname -a : 운영체제,호스트명,커널버전,시스템부팅시간,아키텍쳐 보여줌
uname -m : cpu 보여줌
free -m : 메모리 보여줌(-m 메가단위, -k kb단위)
df -h : 마운트되어있는 디스크 사용량
du --max-depth=1 -h /home : 각 계정별로 이용량 확인
lsdev : 현재 사용중인 장치정보
w : 현재 사용중인 사용자
last : 최근 이용한 접속자
date : 현재 설정된 시간
clock : Cmos에 설정된 시간
rdate -s soback.kornet.nm.kr : soback.kornet.nm.kr에서 시간을 전송받아 시간 수정
clock -w : cmos 시간으로 수정
netstat -tu : 시스템에 연결된 소켓정보
ifconfig : 네트웍 장치설정 정보
ps -[옵션]: 현재 시스템에서 구동중인 프로세스 상태확인
(-a:전체사용자, -l:자세히보기, -x:제어터미널이 없는 프로세스, -f:pstree명령어와 같은 프리구조로 출력)
(상태값: D:구동일시중지중, R:구동중, S:쉬는중, T:구동정지중, Z:좀비프로세스, W:메모리를 안쓰는 스와핑상태)
ps auxfw -width=300 : 프로세스의 사용자 확인 (주로 | more 필요)
pstree : 구동중인 프로세스를 투리구조로 보여줌
kill -9 [프로세스번호] : 프로세스 강제종료
killall -9 [프로세스이름] : 프로세스 강제종료
<시스템 종료>
init0 : 시스템 종료
halt : 시스템 종료
reboot : 시스템 재부팅
<압축>
tar cvf [생성될 파일명:예 httpd.tar] [묶을 디렉토리] : 설정한 디렉토리를 포함한 하위 디렉토리 및 파일을 묶음
tar xvf [묶인파일:예 httpd.tar] : tar파일을 현재 디렉토리에 품
tar tvf [묶인파일:예 httpd.tar] : tar파일을 풀지 않고, 파일리스트만 출력
tar cvfz [압축파일명 :예 httpd.tar.gz] [압축할 디렉토리] : 파일을 묶어서 압축함
tar xvfz httpd.tar.gz : tar.gz 압축해제
tar xvfj httpd.tar.bz2 : tar.bz2 압축해제
<ftp>
quit : ftp 종료
get : 다운로드 명령
mget : 현재폴더내 모든 파일 다운로드
mget -R * : 현재폴더 및 하위 폴더 파일 다운로드
Posted in mysql by 강화도령
Posted in server by 강화도령
여러파일 권한 바꾸기
find ./ -type f -name 파일명 -exec chmod 777 {} \;
find 디렉토리시작위치 -type 타입구분(f=팡일 ,d=directory) -name 파일명 -exec chmod 권한 {} \;
위 명령을 이용하면, 디렉토리시작위치에서 하위에 있는 모든 디렉토리에 포함된 파일을 한번에 권한 설정을 해줄수 있다.
Posted in 웹프로그래밍/php by 강화도령
The "ATTR_EMULATE_PREPARES" attribute allows to emulate the prepared queries for RDBMS that don't support this feature. By default, emulation is actives (ATTR_EMULATE_PREPARES == TRUE). That means that the queries will not be prepared by the Mysql Server (Server-Side) but by PDO (Client-Side). The final result is identical, all the parameters are automatically quoted and so, we have not problem with SQL injection in both cases.
Now, what is the subject here ? What the difference with the native and emulated support for prepared queries ?
Some RDBMS don't support prepared queries. That means that the queries will be prepared by PDO (
) and not by the Server (
). The final result is the same but for performances reasons, it's better to use native support when it's possible. Indeed, for example, with Mysql, we can take 10 % free.
Th remaining problem with Mysql is that for versions prior 5.1.17 (in reality 5.1.21 for us), the prepared queries can't be cached. So, we have 10 % free but we lost 20 - 35 %...
That for why, the native support should be used when possible (only with Mysql server >= 5.1.21 (for us).
To resume, the parameter ATTR_EMULATE_PREPARES should be set to TRUE for Mysql server version prior 5.1.21 and to FALSE for other versions. By default the ATTR_EMULATE_PREPARESis set to TRUE.
TRUE: Support for prepared queries is emulated. FALSE: Support for prepared queries is not emulated. The native support is used.
Posted in 웹프로그래밍/php by 강화도령
Posted in mysql by 강화도령
ex)
alter table university modify u_name blob;
alter table university modify u_name varchar(150) collate euckr_korean_ci;
alter table university convert to charset euckr;
이렇게 한후 조회를 해보면, 한글이 잘 보일것이다.Posted in 웹프로그래밍/php by 강화도령
Posted in mysql by 강화도령
Posted in mysql by 강화도령
Posted in mysql by 강화도령
01.// MySQL 내부변수를 초기화 시킨다.02.$strQuery = 'set @nCnt = 0;';03. 04.// 질의 결과행을 버퍼링 하지 않는 mysql_unbuffered_query로 질의 한다.05.mysql_unbuffered_query($strQuery, $rConn);06. 07.// 변수에 값을 넣는다.08.$strQuery = 'select @nCnt:=count(fieldname) from tablename;';09. 10.// 질의 결과행을 버퍼링 하지 않는 mysql_unbuffered_query로 질의 한다.11.mysql_unbuffered_query($strQuery, $rConn);12. 13.// 변수에 설정된 값을 이용해 질의 한다.14.$strQuery= 'SELECT ROUND((count(fieldname) / @nCnt) * 100, 3) AS percent FROM tablename GROUP By fieldtype;';15. 16.// 결과를 출력한다.17.$rRes = mysql_query($strQuery, $rConn);18.while($arrTest = mysql_fetch_assoc($rRes))19.{20.var_dump($arrTest);21.}22.mysql_free_result($rRes);Posted in 웹프로그래밍/javascript by 강화도령
}if (!flashVars) flashVars = ''; if (!wmode) wmode = 'window'; if (!altText) altText = '';var str = '' + '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0" width="' + width + '" height="' + height + '" id="' + id + '">' + '<param name="movie" value="' + url + '" />' + '<param name="wmode" value="' + wmode + '" />' + '<param name="FlashVars" value="' + flashVars + '" />' + '<!--[if !IE]>-->' + '<object type="application/x-shockwave-flash" data="' + url + '" width="' + width + '" height="' + height + '" name="' + id + '">' + '<param name="wmode" value="' + wmode + '" />' + '<param name="FlashVars" value="' + flashVars + '" />' + '<!--<![endif]-->' + '<div class="alt-content alt-' + id + '">' + altText + '</div>' + '<!--[if !IE]>-->' + '</object>' + '<!--<![endif]-->' + '</object>'; document.write(str);
Posted in 웹프로그래밍/javascript by 강화도령
발췌 원문 : http://pjm0000.egloos.com/3605520
JSON 기초
JSON으로는 JavaScript 객체로 표현된 데이터를 한 함수에서 다른 함수로, 또는 비동기식 애플리케이션의 경우, 웹 클라이언트에서 서버 측 프로그램으로 쉽게 전달할 수 있는 스트링으로 변형할 수 있다. 문자열이 약간 이상해 보이지만 JavaScript에 의해 쉽게 인터프리팅 되고, JSON은 name/value 쌍 보다 복잡한 구조도 표현한다. 예를 들어, 단순한 키와 값 리스트 대신, 배열과 복합 객체들을 나타낼 수 있다.
1. JSON 예제
JSON에서는 name/value 쌍이 다음과 같이 표현된다.
이는 매우 기본적인 것이고, 텍스트의 name/value 쌍 보다는 더 많은 공간을 차지한다.
하지만, JSON은 여러 name/value 쌍들을 하나로 연결할 때 진가를 발휘한다. 우선, 다음과 같이, 여러 name/value 쌍으로 데이터 레코드를 생성할 수 있다.
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }
신택스의 관점에서 보면 name/value 쌍 보다 나은 점이 없어 보이지만, 이 경우, JSON은 훨씬 더 사용하기 쉬우며, 가독성도 놀랍다. 예를 들어, 위 세 개의 값들은 같은 레코드의 일부이다. 중괄호는 그 값이 같은 커넥션을 갖고 있다는 것을 표시하고 있다.
2. 값들의 배열
값을 나타내야 할 때, JSON은 보다 읽기 쉽고, 덜 장황하다. 예를 들어, 인명부가 있다고 해보자. XML에서는, 수 많은 오프닝/클로징 태그에 둘러싸이게 되고, 전형적인 name/value 쌍을 사용한다면, 독점적인 데이터 포맷을 사용해야 하거나, person1-firstName처럼 키 네임을 수정해야 한다.
JSON에서는 다음과 같이 괄호를 사용하여 레코드를 그룹핑 할 수 있다.
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
]}
이해하기도 어렵지 않다. 이 경우, people이라는 하나의 변수가 있고, 값은 세 개의 아이템을 포함하고 있는 배열이며, 각각의 레코드에는 이름, 성, 이메일 주소가 있다. 위 예제는 레코드들을 모두 투입하는 방법과, 아이템을 괄호가 있는 싱글 값으로 그룹핑 하는 방법을 설명하고 있다. 물론, 같은 신택스를 사용할 수 있지만, 여러 값들(각각 여러 레코드들을 갖고 있음)을 갖고 있다.
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
여기에서 주목해야 할 점은 각각이 다수의 값을 내포하고 있는 많은 값들을 표현할 수 있는 당신의 능력이다. 또 하나 주목해야 할 점은 레코드의 name/value 쌍들은 다른 메인 항목(programmers, authors, musicians)에 따라 변한다는 것이다. JSON은 완전히 동적이고, JSON 구조 안에서 데이터를 표현하는 방식을 바꿀 수 있다.
또 한 가지 알아두어야 할 것은 JSON 포맷 데이터로 작업할 때 제약 조건이 없다는 점이다. 따라서, 어떤 것을 표현하는 방식을 바꿀 수 있고, 심지어는 같은 데이터 구조 내에서 같은 것을 다른 방식으로 나타낼 수도 있다.
3. JavaScript에서 JSON 사용하기
JSON 포맷을 다룬 후라면, JavaScript에서 이것을 사용하는 것은 간단하다. JSON은 네이티브 JavaScript 포맷이고, JavaScript 내에서 JSON 데이터와 작업하기 위해 특별한 API나 툴킷이 필요 없다.
4. JSON 데이터를 변수에 할당하기
예를 들어, 새로운 JavaScript 변수를 만들고, JSON 포맷 데이터 스트링을 여기에 직접 할당한다고 해보자.
var people =
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
복잡하지 않다. people에는 이제 JSON 포맷 데이터가 포함되어 있다.
하지만, 많은 것을 수행하지 않는다. 데이터는 여전히 유용한 포맷으로 되어있지 않다.
5. 데이터에 액세스 하기
위의 매우 긴 스트링은 단순한 배열일 뿐이고, JavaScript 변수에 그 배열이 있다면 쉽게 액세스 할 수 있다. 사실, 그 배열을 마침표로 구분할 수 있다. 따라서, programmers 리스트의 첫 번째 엔트리의 성(last name)에 액세스 하려면, JavaScript에서 다음과 같은 코드를 사용해야 한다.
people.programmers[0].lastName;
인덱싱은 '0' 부터 시작한다. 따라서, 이것은 people 변수에 있는 데이터로 시작한다. 그리고 나서, programmers라고 하는 아이템으로 이동하고, 첫 번째 레코드([0])에 액세스 한다. 마지막으로, lastName 키의 값에 액세스 한다. 결과는 "McLaughlin"이라는 스트링 값이다.
다음은 같은 변수를 사용하는 예제들이다.
people.authors[1].genre // Value is "fantasy"
people.musicians[3].lastName // Undefined. This refers to the fourth entry, and there isn't one
people.programmers.[2].firstName // Value is "Elliotte"
이 신택스로도, 다양한 JSON 포맷 데이터로 작업할 수 있고, 추가 JavaScript 툴킷이나 API가 필요 없다.
6. JSON 데이터 수정하기
위에 나타난 점과 괄호 표기법을 사용하여 데이터에 액세스 하듯, 같은 방식으로 데이터를 쉽게 수정할 수 있다.
people.musicians[1].lastName = "Rachmaninov";
문자열에서 JavaScript 객체로 변환했다면 변수에 있는 데이터를 수정하면 된다.
7. 문자열로 변환하기
물론, 모든 데이터 수정은 텍스트 포맷으로 쉽게 변환할 수 없다면 가치가 없다. 이것 역시 JavaScript에서는 간단하다.
String newJSONtext = people.toJSONString();
이것이 다이다.
원하는 곳 어디에서나 사용할 수 있는 텍스트 문자열이 생겼으니, 이것을 Ajax 애플리케이션에서 요청 스트링으로 사용할 수 있다.
훨씬 더 중요한 것은, 어떤 JavaScript 객체라도 JSON 텍스트로 변환할 수 있다. 원래 JSON 포맷 스트링으로 할당된 변수로만 작업할 필요가 없다. myObject라는 객체를 변형하려면, 같은 종류의 명령어를 실행하면 된다.
String myObjectInJSON = myObject.toJSONString();
이것이 JSON과 다른 데이터 포맷과의 가장 큰 차이이자, 이 시리즈를 통해 탐구할 주제이다. JSON에서는, 단순한 함수를 호출하면, 포맷팅 되어 사용하기에 알맞은 데이터를 얻을 수 있다. 다른 데이터 포맷의 경우, 미가공 데이터와 포맷 데이터간 변환은 여러분의 몫이다. Document Object Model 같이 데이터 구조를 텍스트로 변환하는 함수를 제공하는 API를 사용할 때도, 네이티브 JavaScript 객체와 신택스 보다는, API를 배우고 그 API의 객체를 알아야 한다.
많은 JavaScript 객체들과 작업할 때, JSON은 데이터를 서버 측 프로그램으로 요청을 보내기에 알맞은 포맷으로 쉽게 변환할 수 있다.
Posted in 웹프로그래밍 by 강화도령
Posted in 웹프로그래밍 by 강화도령
Posted in 웹프로그래밍 by 강화도령
Posted in server by 강화도령
Posted in server by 강화도령
Posted in server by 강화도령