'Web'에 해당되는 글 48건
- 2010/11/09 jQueryTouch를 이용한 iPhone app 개발
- 2010/08/02 2007년 Mashup 기술 소개의 2010년 평
- 2010/04/01 ASP.net Membership Provider 구현 방법과 예제
- 2010/03/25 IIS의 Service Unavailable 에러 해결 (2)
- 2009/11/06 [웹 방화벽,웹 보안,ASVS]소스 연동 웹 어플리케이션 방화벽 - 새로운 개념들
- 2009/10/15 손 놓은 동안 PHP많이 바꼈구나....
- 2009/09/09 [XML관련 라이브러리]XMLBeans
- 2009/06/08 국내위젯 회사- 헬리젯
- 2009/06/08 개인메모, RSS 페이지 작성하기
- 2009/06/08 꽤 괜찮은 사이트 http://drawlogic.com/
- 2009/03/24 아파치 모듈에서 mysql 사용하기
- 2009/03/24 [아파치 프로그래밍]apr_pstrcat 사용시의 주의할 점
- 2009/03/24 [2007.01.12작업][apche,modsecurity]modSecurity설치, 실행 중인 아파치 교체 작업
- 2009/03/11 [웹 개발]T++, C++을 이용하여 웹 개발 하기-_-
- 2009/01/09 테이블 레이아웃을 뜯어 고치자!! - [diff]WinMerge
- 2009/01/01 [jQuery] jQuery UI 버그 - IE6에서 dialog 깨짐 현상.
- 2008/11/10 Struts2 ValueStack에 접근하기.
- 2008/11/09 sitemesh + struts2 <s:form 의 buffer overflow,IOException
- 2008/11/07 자바스크립트에서 다중 파라메터 받기
- 2008/11/03 p3p관련자료
- 2008/11/03 웹로직 workshop에서 작업할때 꼭 해야할 짓들 v0.01
- 2008/10/21 utf-8로 인코딩된 javascript파일 서버에서 설정해주기.
- 2008/10/15 [NetBeans] 인텔리센스... 이건머... 어쩌라고....
- 2008/10/14 MSSQL 2005 접속 라이브러리 사용
- 2008/10/14 [NetBeans] 죽이는 기능!!! getter, setter 만들어드립니다.
- 2008/10/11 현업에서의 웹표준 필요성!!! - 안쓰려는 사람은 포섭해라! (2)
- 2008/10/10 Web Developer 1.1.6 - 판정 : 별로임
- 2008/10/10 netBeans 이런 이거 너무 좋은뎅?
- 2008/10/10 ModalDialog
- 2008/10/10 마우스 오버 자바스크립트
방 청소를 하다가 2007년에 나온 mashup에 대한 기사를 보고 읽다가 얼마나 잘못 되었는지 되짚어 보았다.
어떤 문서에서 이야기 하는 혼합 서비스의 장점
- 비용이 거의 들지 않는다.
- 개발기간이 매우 짧다.
- 기존 시장에 없거나 상상만 했던 다양한 서비스를 손 쉽게 만들 수 있다.
혼합 서비스의 단점
1. 1차 자원이 되는 서비스에 종속적이다.
2. 소스 차원이 아닌 api 차원에서 개발이 이루어지므로 개발의 한계를 가진다.
평.
장점의 2,3 번 사항은 문서 자체에 나와있듯이 1,2 번 단점에 의해서 없어진다.
1번의 경우 그렇게 없어진 장점 2,3 번에 의해서 없어진다.
일단 문서자체에서.. 참 그렇네요;;
IIS의 Service Unavailable 현상
IIS가 Service Unavailable 오류를 내며 죽는 경우는 크게 2가지 입니다.
1. 서버 처리 능력 부족
2. 서버 로직의 Crash
1번의 경우 2가지로 나뉩니다.
1. 서버 처리 능력 부족
A. 어플리케이션 풀 부족
B. 메모리 부족 (실제 서버 퍼포먼스 부족)
1.A의 경우 응용프로그램 풀에서 작업 프로세스 수를 늘리면 됩니다. 기본적으로 웹 사이트당 하나의 어플리케이션 풀이 할당 되여 해당 사이트의 스크립트를 수행 하기 위해서 하나의 프로세스가 실행됩니다. 문제는 프로세스 하나가 처리 할 수 있는 순간 최대 사용자의 수가 한정 되어 있어 그 이상은 서비스가 불가합니다.
1.B번은 드물게 발생합니다.
2. 서버 로직의 Crash
A. IIS의 “오류 급증 시 보호” 기능의 동작으로 인한 Shutdown
2.A번은 1.A로 인하여 발생한 오류가 누적되면 발생합니다. 기본적으로 안전한 웹 서버 운영을 위해서는 해당 기능을 꺼두는 것이 좋습니다.
<작업자 프로세스 최대수 증가>
적당한 값으로 올려야 합니다.
<오류 급증 시 보호 기능 끄기>
기본으로 체크되어 있는 해당 항목을 클릭해 체크를 해제하고 확인을 누릅니다.
2007년에 KISA에서 이런저런 일을 하면서 발표했을때 언급을 한 것이지만 앞으로의 방화벽 특히나 WAF기능을 가진 모든 방화벽은 실제 웹 어플리케이션을 분석하지 않으면 안된다.
기존의 네트워크 방화벽이 '방어'를 할 수 있었던 이유는 Protocol이라는 것이 '약속'이기 때문에 open되어 있고 나름 효율 적인 방식으로 구성되어 있고(머신이 처리하기 쉬운 방향으로) 프로토콜 하나당 복잡도가 전혀 크기 않기 때문이었다. 즉 보호해야할 대상을 알고 있다고 볼 수있다.
그런데 웹 어플리케이션 방화벽의 현주소는 어떠한가? 단순히 본인이 모듈형 웹 방화벽을 만들었던 2006년도에 비하여 2009년인 지금에 와서도 오픈소스진영의 모듈형 웹 방화벽이 얼마나 사용되고 있는가?
사실 처참하면 처참하다고 볼 수 있는 상황은 아닐까?
OWASP의 ASVS프로젝트가 2006년도보다는 많이 진전된것 같다. ASVS프로젝트의 핵심은 보안 문제를 방화벽으로 덮는게 아니라 문제를 가지고 있는 코드를 죄다 찾아내서 직접 고치겠다는 한발짝 적극 적인 태도의 프로젝트이다. 그리고 본인의 견지에 비추어 가장 확실한 방법이라고 본다.
아래 그림 한장이 웹 어플리케이션 방화벽이 가야할 길을 정확하게 찝어낸 그림이 아닐까 한다.
Web Application that is the target of verification.
ASVS의 자동화 툴은 웹 어플리케이션을 뜯어서 직접 내부를 본다. 물론 단위 단위로 정확하게 뜯어봐야 한다. 그리고 추출한 데이터들을 토대로 XML을 작성하고 그것을 이용하여 코드를 향상시키고 방화벽의 세부조정을 해야 한다.
본인이 지금 작성하고 있는 논문은 이러한 분석의 단계를 필요 없도록 만든다. 즉 각 레이어에 속한 각 객체들이 완벽에 가까운 Self Description을 해야한다. 가장 큰 이유은 웹 어플리케이션의 능동적인 조합이다. 이것을 통하여 웹 개발의 속도를 최대한으로 이끌어 내는 것이 본인의 목표중의 하나이다.
ASVS나 본인의 논문등의 구현물이 나오게 되면 방화벽은 소스와 연동되어 동작하게 된다.
앞으로 웹 개발은 더욱 더 Engineering될 것이다. 그리고 그것을 기반으로 자동화 될 것이다.
그렇게 될 것이라는 징후와 그래야만 하는 이유들이 계속 해서 나오고 있는 지금 웹 개발을 단순한 것으로 인식하고 있는 사람은 설자리를 잃어야 하는데............ 아마 계속 남아있겠지요...
진심 없이 일을 하는 사람들이 없는 세상이 왔으면 좋겠습니다.
관련글
2009/06/05 - [웹 개발]Hot한 주제 EUD, End User Development에 대하여
2009/06/09 - Web Engineering
내가 꼬꼬마 시절에 프로그래밍을 할 때에는....
원본 보존 법칙이라는게 PHP에 존재 했었다.....(책들에는 없지만 메뉴얼에 잘 보면 영어로 적혀있었다) 프로필 만들려고 옛날 작업을 데탑에다가 올려봤더니...
머야 이게!!
ㅡㅡ 양 서버가 다 UTF-8인데.......제길.... 저런거 한줄 넣어줘야 한단다...
바꼈다..
그랬더니 아래와 같은 사태가............
원인은...
원본 보존법칙에 의하면 레퍼런스 복사가 아니라 지칭하는 객체의 복사본을 만들게 되어 있었다....
그런데 PHP5되면서 없어 졌으니..........쩝....
이 코드를 대충 보면 알 수있엤지만... 이것이 쌍팔년도식 PHP코드 작성-_-
요즘 세상 참 좋아진거 같다는-_-
이번 논문, 그리고 앞으로의 거의 모든 어플리케이션, 심지어 Console에서 작동하는 C로 작성된 어플리케이션들 마저도 XML을 사용할 것이 뻔한 상황에서 XML라이브러리가 꼭 필요하다. 자바에서는 아파치에서 내놓은 XMLBeans가 괜찮은 선택이다.
사용법은 간단하다.
대상으로하는 XML파일에 대한 클래스 파일을 생성해서 프로젝트에 포함 시키고 라이브러리를 이용하여 파일을 오픈 시킨후 생성한 클래스로 랩핑하면 끝이다. 전형적인 객체지향 개념대로 하면 된다.
다만 클래스 파일을 생성하는 것은 콘솔상에서 해야하는 작업이기에 이클립스의 외부 프로그램으로 등록해 놓는 것이 좋다.
location
XMLbeans 위치 \bin\ scomp.cmd
working_direcotry
C:\Program Files (x86)\Java\jdk1.6.0_20\bin
-out ${workspace_loc}${project_path}\${resource_name}.jar ${workspace_loc}${resource_path}
www.mysql.org -> document , c api로 검색
-> http://dev.mysql.com/doc/refman/5.0/en/building-clients.html
운영체제 FC5
하드웨어 sun w1100z workstation
위의 문서를 참고하여 library 지정
mysql은 /usr/loca/mysql에 설치되어 있음
apxs -cia mod2.c -L/usr/local/mysql/lib -lmysqlclient -lz -I/usr/local/mysql/include
->지랄한다.
cp /usr/local/mysql/include/* /usr/local/include/
되라 제발
-> 된다
// char* apr_pstrcat ( apr_pool_t * p, ... )
// Concatenate multiple strings, allocating memory out a pool
// p The pool to allocate out of
// ... The strings to concatenate. The final string must be NULL
//
char *a=NULL;
char *b=NULL;
대충 이렇다고 하고
어떤 루틴을 통해 a,b가 어떤 스트링을 가리킨다 고 했을때
해당 루틴에서 대입을 안시키는 경우; 뻑난다... 물론 런타임 에러
char *a="";
char *b="";
짱나도 이렇게 바꾸자;;
//blog.naver.com/dosuser에 있던 글
어제 modSecurity를 깔려는데....
기존 런닝중인 아파치가 동적 라이브러리지원을 안한다;;
OTL
작업하자 ㅡㅜ
런닝 중인 아파치 교체 작업+_+
아파치는 /usr/local/apache,/usr/local/apache2에 깔려있따 (소스 설치 하면 보통)
1.현재 상태 백업
1.1 파일 백업
/usr/local
tar cvfz apache20070112.tar.gz apache
1.2 모듈 설정 백업
/usr/local/apache/bin
httpd와 apachectl이 있다.
httpd -v => 버전확인 -> 1.3.27
httpd -l >moduleList => 컴파일 되어 런닝중인 모듈확인 -> 리스트 저장할것
1.3 아파치 설정 백업
/usr/local/apache/conf
아파치 1.3.x버전이므로 httpd.conf에 대부분의 설정들이 들어가 있다.
이곳의 설정 파일들을 모두 따로 저장해 놓을것
그리고 httpd.conf를 확인해서 동적 라이브러리를 어떤것을 쓰고있는지 확인
1.4 phpinfo
php인스톨시 사용할 configure 명령어 확인,아파치 설정들 저장
phpinfo명령은 많은 설정들을 이쁘게 보여준다.
<?php
echo phpinfo();
?>
이런걸 하나 어따 올려서 그 내역을 저장해 놓는다.
그중에 php 컴파일시 수행했던 configure 명령을 얻을 수가 있다.
'./configure' '--with-apache=../apache_1.3.28' '--with-mysql=/usr/local/mysql' '--with-gd=/usr/local/gd207' '--
with-gif-dir=/usr/lib' '--with-png-dir' '--with-zlib-dir' '--with-jpeg-dir' '--with-imap' '--with-imap-ssl' '--with-
kerberos' '--with-freetype-dir' '--enable-ftp' '--enable-socket' '--disable-debug' '--enable-track-vars'
이런 녀석을 구할수가 있다. 물론 실제 내역은 다 다를것이다(기존에 어떻게 했느냐에 따라서)
gd
mysql
일부 아파치설정
음또.. 암튼 많다.
유용하니 꼭 저장
2. 아파치 새로 깔기
2.1 다운로드 받기
apache와 www.apache.org
php를 받는다. www.php.net
둘다 받아서 한 디렉토리에 넣고
apache_1.3.37.tar.gz
php-4.4.4.tar.gz
tar xvfz apache_1.3.37.tar.gz
tar php-4.4.4.tar.gz
일단 php의 INSTALL파일을 보면 경우 별로 어떻게 설치해야하는 지 알수 있다.
php를 동적으로 설정하고 싶고 apache가 1.3인경우 어떻게 해야하는지를 해당 파일에서 볼수가 있다.
2.2 기타 라이브러리 설치
gd가 문제다
gd를 까니또 libjpeg도 문제다
둘다 www.google.com을 통해서 찾아서 받자
둘다 ./configure
make
install
하자
그럼 둘다 /usr/local/하에 있는 디렉토리 들에 적절 하게 들어간다
2.3 아파치 설치
아파치는 위에서 알아낸 모듈리스트를 가지고 configure명령에 사용할 커멘드를 만들어 놓자
apache_1.3.37디렉토리에서
./configure -help를 이용해서 어떻게 하면 되는지 볼 수있다.
내 아파치 설정은
./configure --prefix=/usr/local/apache2 \
--enable-module=env \
--enable-module=log_config \
--enable-module=mime \
--enable-module=negotiation \
--enable-module=status \
--enable-module=include \
--enable-module=autoindex \
--enable-module=dir \
--enable-module=cgi \
--enable-module=asis \
--enable-module=imap \
--enable-module=actions \
--enable-module=userdir \
--enable-module=alias \
--enable-module=access \
--enable-module=auth \
--enable-module=setenvif \
--enable-module=so \
그냥 냅다 썼다. 리스트에다가 --enable-module=을 복사해서 붙여 넣었다.
php는 원본을 좀 수정했다.
'./configure'
--with-apxs=/usr/local/apache2/bin/apxs '--with-mysql=/usr/local/mysql'
'--with-gd=/usr/local/' '--with-gif-dir=/usr/lib' '--with-png-dir'
'--with-zlib-dir' '--with-jpeg-dir' '--with-imap' '--with-imap-ssl'
'--with-kerberos' '--with-freetype-dir' '--enable-ftp'
'--enable-socket' '--disable-debug' '--enable-track-vars'
일단 모듈로 설치하기위해서--with-apxs=/usr/local/apache2/bin/apxs
gd를 설치하기 위해서 '--with-gd=/usr/local/' 로 경로를 바꿨다.
php의 INSTALL를 보고 설치를 하자
2.4 새로운 아파치 실행
설치가 다 끝났으면
물론 당연히 apache의 설정 파일들을 새로운 apache디렉토리, 여기서는 apache2에 넣는다.
설정파일들에 아파치의 경로설정이 되어 있는 것들이 있는데 이런것들을 수정해주자.
그리고!!!! httpd.conf에보면 Port 가 있다.(없으면 좀 윗단에다가 써주면 된다.)
Port 8080으로 설정해주고
새로운 아파치를 수행해주자
자 이제 새로운 아파치 포트 8080으로 접속을해서 아파치위에서 돌아가고 있는 사이트들이 원활 하게 동작하는지 확인하자
3. modSecurity를 깔자
3.1 받기, 설치
서두를 것 없이 www.modsecurity.org에서 1.9x버전을 받아서(현재 2.x버전이 나왔지만 아파치 2.x버전에서만 동작한다.) INSTALL파일을 잘 읽어보자
modSecurity소스는 1.3 , 2.x둘다 포함되어 있다. 1.3버전의 디렉토리에 가서
/usr/local/apache2/apxs -cia modsecurity.c
라고 하면
설치가 된다.
그 다음
3.2 modSecurity설정
modSecurity2를 깔았다면 그곳의 core룰 이란것도 같이 받아서 설치를 하고 아니라면
www.krcert.or.kr에 가서 modsecurity관련 안내문을 받아 보자 물론 modsecurity의 설명문에도 설정 방법과 기본 설정룰이 있지만 그래도 서트가 낳지 않을까 한다.
"modsecurity를 이용한 웹 서버 보안" 이라는 문서를 받아서 한번 보자
아크로벳리더에서 텍스트로 저장기능을 이용하여 아래의 내용을 뽑았다.
[부록] ModSecurity Rule 설정 예
##### Configuration #####
SecFilterEngine On
SecFilterScanPost On
SecFilterScanOutput Off
SecFilterOutputMimeTypes "(null) text/html text/plain"
##### Validation #####
SecFilterCheckURLEncoding On
SecUploadDir /tmp
SecUploadKeepFiles Off
SecFilterCheckUnicodeEncoding Off
SecFilterForceByteRange 1 255
SecFilterDefaultAction "log,deny,status:403"
##### Logging #####
SecFilterDebugLog logs/modsec_debug.log
SecFilterDebugLevel 1
SecAuditEngine RelevantOnly
SecAuditLog logs/modsec_audit.log
##### Hardening #####
# Body를 가진 GET 또는 HEAD 요청 차단(공격 가능성 높음)
SecFilterSelective REQUEST_METHOD "^(GET|HEAD)$" chain
SecFilterSelective HTTP_Content-Length "!^$"
SecFilterSelective SERVER_PROTOCOL "!^HTTP/(0\.9|1\.0|1\.1)$"
# Content-Length가 없는 POST 요청 차단
SecFilterSelective REQUEST_METHOD "^POST$" chain
SecFilterSelective HTTP_Content-Length "^$"
SecFilterSelective HTTP_Transfer-Encoding "!^$"
##### General #####
SecFilterSelective HTTP_Host|HTTP_User-Agent|HTTP_Accept "^$"
SecFilterSelective HTTP_User-Agent "(libwhisker|paros|wget|libwww|perl|curl|java)"
##### SQL Injection Attacks #### dosuser작성
SecFilterSignatureAction "log,deny,msg:'SQL Injection attack'"
SecFilterSelective ARGS "delete[[:space:]]+from"
SecFilterSelective ARGS "drop[[:space:]]+database"
SecFilterSelective ARGS "drop[[:space:]]+table"
SecFilterSelective ARGS "drop[[:space:]]+column"
SecFilterSelective ARGS "drop[[:space:]]+procedure"
SecFilterSelective ARGS "create[[:space:]]+table"
SecFilterSelective ARGS "update.+set.+="
SecFilterSelective ARGS "insert[[:space:]]+into.+values"
SecFilterSelective ARGS "select.+from"
SecFilterSelective ARGS "bulk[[:space:]]+insert"
SecFilterSelective ARGS "union.+select"
SecFilterSelective ARGS "or.+1[[:space:]]*=[[:space:]]1"
SecFilterSelective ARGS "alter[[:space:]]+table"
SecFilterSelective ARGS "or 1=1--'"
SecFilterSelective ARGS "'.+--"
SecFilterSelective ARGS "into[[:space:]]+outfile"
SecFilterSelective ARGS "load[[:space:]]+data
SecFilterSelective ARGS "/\*.+\*/"
##### XSS Attacks #####
SecFilterSignatureAction "log,deny,msg:'XSS attack'"
SecFilterSelective ARGS "<script"
SecFilterSelective ARGS "javascript:"
SecFilterSelective ARGS "vbscript:"
SecFilterSelective ARGS "document\.cookie"
SecFilterSelective ARGS "document\.location"
SecFilterSelective ARGS "document\.write"
##### Command Execution #####
SecFilterSignatureAction "log,deny,msg:'Command execution attack'"
SecFilterSelective ARGS_VALUES ";[[:space:]]*(ls|id|pwd|wget)"
##### PHP Attacks #####
SecFilterSignatureAction "log,deny,msg:'PHP Injection Attacks'"
SecFilterSelective ARGS_VALUES "^http:/"
SecFilterSelective ARGS_NAMES "(^globals\[|^globals$)"
이 설정을 httpd.conf에 이쁘게 넣는다.
/usr/local/apache2/bin/apachectl configtest를 수행한다.
나는
SecFilterScanOutput Off
SecFilterOutputMimeTypes "(null) text/html text/plain"
두 문장에서 에러가 났다. 회사에서 빨리하라고 해서 빼버렸다-_-
4. 기존 아파치 서버 새로 설치한 아파치서버로 교체
새로운 아파치를 재 시작하고
/usr/local/apache2/bin/apachectl restart
사이트가 원활하게 동작하는지 보자
정상적으로 작동한다면
새로운 아파치의 httpd.conf파일에서 Port 를 80으로 바꾸고
원래 아파치 서버를 죽이고 stop
새로운 아파치 서버를 죽이고 stop
새로운 아파치 서버를 시작 시킨다. start
(restart로 하면 적용이 안되었다)
자.....토요일 아침에 출근해떠니 아무도 없다....
써서 블로그에 올리고
오늘은 또다른 삽질이 나를 기다리고 있을 것이다....
대학원 준비는 언제하지-_-;;;
오늘도 논문 때문에 다른 논문을 하이에나 처럼 긁어대던 도중... 나는 발견 하였다........
T++라는 프로그래밍 언어를 ... 물론 사용하는 사람은 없지만...
정말 눈물 겨운 논문이다. 하지만
아.... 돌겠다...
http://tplusplus.sourceforge.net
http://tplusplus.sourceforge.net/webmidia2003-terceiro.pdf
웹 사이트 보수에서 가장 짜증나는 일이자 가장 빈번하게 일어나는 일. 그것은 바로!!
Table 레이아웃 -> 그나마 깔끔 -> div -> 웹표준
작업 ㅡㅜ
Table레이아웃에서 div로 바꾸고 싶지만 상황이 그럴수 없는 지라 '그나마 깔끔'으로 하려 한다..
산발적으로 수정되고 있던... 그리고 아직도 울트라에디터로 웹서버에 원격으로 붙여서 작업하고 있던 프로젝트를.... 이클립스에서 사용하기 이쁘게.. svn도 잘 붙게... 암튼 수정해야한다.. 안 그럼 내가 작업하기 눈물 난다.
1000줄이 넘는 하나의 jsp파일과 해당 파일의 여러 수정 버전들을 하나의 파일로 통합해야한다.
또한 각 파일별로 버그가.....
이럴 때 쓰는게... 바로 diff 두개의 파일을 비교해서 차이점을 보여준다.
http://winmerge.org/ 에서 받는다.!
이번 프로젝트중 계속 말썽을 부렸던 ajax UI관련 라이브 러리들 ㅡㅜ
죄다 완성도 있는게 없다.
심지어 YUI까지도 나에게 쓰디쓴 고통을 주어 날 저 안드로 메다로 보내 주었고....
"대채 왜 API문서에 된다고 나와 있는 중요 기능중에 하나가 동작 안하냔 말이다!!!!"
그럼 본론으로 jQuery에서의 UI깨짐 문제와 그에 대한 대처를 알아보장!!
우선 UI가 깨진 것을 보자
dialog안의 내용이 왼쪽으로 심히 밀린다.
사실 내가 혼자서 지지고 볶고 할 프로젝트이면 이런거 ? 그냥 "IE를 버리세요"라고 말할텐데 .... 그럴수 없다는 것이 눈물이 난다.
그렇다. 이건 돈받고 하는 일이다..... 그런거에 IE6버려요 라고 할 수 도 없는 것 아닌가.......
더욱이 내가 "IE7,8에서는 잘 동작하는데 구형 IE6에서만 문제 입니다"라고 했더니 윗분이 "그래도 아직 사람들이 많이 쓰는 IE6에 맞춰야지 않겠어?"라고 말씀도 하시고 ㅡㅜ
그래서 프로젝트가 거의 마무리단계인 지금에서 와서 저 문제를 해결...
문제가 일어난 부분은 다음과 같다.
.ui-dialog-content
에서 문제가 일어났다.
원래는 dialog안에 padding을 넣는 효과일텐데.... 여기서 ....에러가 ㅡㅜ 덕분에 ㅡㅜ
아놔...
해결책
일단... 주석처리 -_-? nonono
padding을 margin으로 바꾼다.
하악하악 이제 남은건 "영어로" jQuery UI팀에 메일 보내는것?
p3p를 사용 안하면 생기는 문제
W3C 공식 사이트
http://www.w3.org/P3P/
좀 편히 정리된 사이트
http://www.p3ptoolbox.org/
밑에는 -_-
http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=www&c=r_p&n=1082623809
왜 쿠키가 전혀 안먹혔는지에 대한 답-_-
보안 패치 이후로 URL에 _들어가면 안먹힘;
International Language Support in JavaScriptJavaScript is built to support a wide variety of world languages andtheir characters – from the old US ASCII up to the rapidly spreadingUTF-8. This page clears up some of the difficulties encountered whendealing with multiple languages and their related characters. JavaScript and Character SetsWhen working with non-European character sets ("charsets"), you mayneed to make changes to the way your page references externalJavaScript(.js) files. Ideally, your .js files should saved in theUTF-8 character set in order to maximize its multilingual features —though you can use a different charset that supports your language, atthe potential expense of users who can't support it. Once your filesare saved as UTF-8, they must be "served" in the UTF-8 charset in orderto display correctly. There are a few ways to ensure this: Serve the Web Page as UTF-8If your page is already served as UTF-8 (i.e. Content-type=text/html; charset=UTF-8),you don't need to make any changes — all embedded files in an HTMLdocument are served in the same charset as the document, unlessexplicitly specified not to by you. You can do this by:
Use the charset attribute of the <script> tagThe easiest way to ensure your script is served as UTF-8 is to add acharset attribute (charset="utf-8") to your <script> tags in theparent page: <script type="text/javascript" src="[path]/myscript.js" charset="utf-8"></script>Modify your .htaccess files (Apache Only)You can also configure your webserver to serve all .js files in theUTF-8 charset, or only .js files in a single directory. You can do thelatter (in Apache) by adding this line to the .htaccess file in the directory where your scripts are stored: AddCharset utf-8 .js |
인텔리 센스가 오히려 코딩을 방해하는 방해물이 될줄이야...
캡쳐를 보면 인텔리 센스를 이용하는 것인데.... m.group(를 누르면 (를 타이핑 하는 순간 groupCount()가 입력이 되는 어처구니 없는 상황이 발생을 합니다.
원인은 bookmark.setLastVisit라는 녀석이 Int타입이라서 int 먼저 리스팅을 하기때문에 .ㅡㅜ
하지만 이녀석이 오히려 코딩을 방해하는 주범이 되어서 짜증을 유발 시키더라고요
그것말고도 NetBeans의 여러가지 문제점들이 속속 발견되고 있어서
아무래도 NetBeans... 못쓸꺼 같습니다.
다시 Eclipse로 넘어가야 할 것 같은뎅.. 휴...
m.group(를 노리고타이핑을 하면
m.groupCount()가 나온다!!!그것도 커서는 )뒤에!!
해당페이지 가기.
직접 다운로드
2. 위페이지에서 다운 받은 파일의 압축을 풀고 라이브러리를 톰켓에 삽입합니다.
3. 연결을 생성합니다.
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
}catch (Exception E){
out.println("Unable to load Driver");
E.printStackTrace();
}
Connection conn;
try{
String Surl = "jdbc:sqlserver://ants.mju.ac.kr:1433";
String Sid = "아이디";
String Spass = "패스워드";
conn = DriverManager.getConnection(Surl,Sid,Spass);
Statement stmt = conn.createStatement();
}catch(Exception e){
out.println("에러 "+ e);
e.printStackTrace();
}finally{
오픈한 자원들을 모드 닫는다.
}
옛날에 넷빈 한번 써봤을 때는 "머 이딴게 다 있어" 이랬었는데 ㅡㅜ
지금은 이건뭐 아~~~~ 걍ㅜㅜ 눈물이 콸콸 나온다.
다만 디버깅이 진짜. 짜증난다는 것 빼고는 말이지.
간단히 getter setter를 만드는 것을 올려봅니다. 아, 물론 eclipse도 됩니다.
eclipse의 경우는 클래스위에서 마우스 오른쪽 버튼 누르고 source에서 하면 됩니다.
그림은 클릭하면 크게 나올껍니당.
1. 일단 private속성들을 만들어 주고요
더보기
2.클래스 위에서 마우스 오른쪽 버튼을 눌러서 refactor -> encapsulate fields를 클릭합니다.
더보기
3. getter, setter들을 선택합니다.
더보기
4.refactor를 클릭하면 "짜잔!"하고 나옵니다. ㅋ
더보기
다만 주의점은 이미 get,setter가 있는 상태에서 하면 잘 안되고 이미 만들어져 있는 부분들을 지운다음에 하면 잘 되는군요
아... 필드가 너무 많을 때는 정말 좋은 기능인거 같습니다.
웹 관련 종사자 들이 그렇게도, 아직도!! 외면 하고 있는 것이 웹 표준입니다.
아놔!
사실 많은 분들이 이러한 이유로 웹 표준을 지키지 않으십니다.
"지금 바빠 죽겠는데 그거 언제 공부해"
웹 표준 가이드를 보내주었더니 돌아온 모 디자이너의 말이었습니다.
결국 이 디자이너는 3,4,5,6,7 중의 테이블을 만들어서 디자인을 하였고 이것을 수정하는데 시간을 뺐겨서 다른 작업들이 지연되었습니다.
웹 표준이 왜 필요한가요?
사실 그다지 필요없습니다. 한번 작업하고 말꺼면 말이죠.
하지만 일의 특성상(?) 나중에 작업한 코드를 다시 보게 되는 것이 현실입니다.
단순한 유지보수 뿐만 아니라 기능 확장일 경우도 그렇고요
이런 저런 이유가 있겠지요 다른 분들이 써 놓으신 여러가지 글들이 있는데 그 분들이 올리신 글들의 특성상 완곡하고 격식에 맞추서 지식전달의 목적으로 써놓으신 것들이 많아서 ㅡㅜ 현실에 와닿지가 않지요
그런 현장에 맞춰서 말을 해보자구요
웹 표준 필요이유 1. 웹 브라우저간의 전쟁 2차전의 영향으로 IE가 바뀐다!!!!
진짜. 심각한 이유입니다.
더보기
웹 표준 필요이유 2. 테이블 방식의 레이아웃작성에서 레이어 방식으로의 이전
옛날 옛날 아주 먼 옛날 사람들은 깔끔한 페이지 레이아웃을 위하여 Table태그를 2중 3중을 떠나 10단계까지 겹쳐 사용하였습니다. 이젠 그러면 안되겠지요?
더보기
웹 표준 필요이유 3. 업무 분담이 용이해진다!!!!
웹 개발에 있어 필요한 사람은 개발자와 디자이너이니 이중에 한명의 성격이 꼬여있으면 프로젝트는 산으로..
더보기
결론.
프로그래머가 편하기 위해서는 디자이너에게 달라붙어서라도 웹 표준을 세뇌시켜야 한다.
사실 다른 이유야 어찌 되었든 상관없잖아요 ( '')
일단 웹 개발툴(?)인 파폭의 에드온 부터
가장 기본이 되는 Web Developer 1.1.6입니다.
이 녀석이 있는 이유는 당연히 IE에도 이녀석과 같은 기능을 제공하는 에드온이 있기 때문이지요
그런데 그녀석 이름이 갑자기 생각이 안나네요.
이 녀석의 기능은 현재 보고 있는 페이지를 조작하고 얼마나 웹 표준에 잘 맞는지 간단히 확인 해주는 도구? 입니다. 여러분이 기대는 것처럼 다른 사이트 소스 가져다 쓰는 것을 도와주는 기능은 좀 약함니다.
룰러 제공도 안합니다.!!
IE의 웹 개발 에드온이 다른 사이트의 소스를 잘 긁어 오는것에 비하면 좀 상당히 별로 입니다.
밑에 사진 클릭하면 크게 보이니깐 클릭해서 보세용
위와 같습니다.....
흠....
일단 비추입니다.
화면을 클릭했을때 그 부분이 HTML소스에서 어느 부분인지 알려줘야 하는데 그 기능도 좀 불편합니다.
하긴머, firefox가 웹 표준에 맞는지 그리고 자바 스크립트 제대로 돌아가는지 확인하는 디버거역활이지 머 디자인에 대해서는 그닥 별로 잖아요?
디자인을 디버깅하는 것도 아니고 머 그렇게 까지 필요는 없지만 암튼 소스 긁어오기 혹은 어떻게 구현했는지 보는게 주인 저로써는 별로입니다.!!!
netBeans... 최고 일단 GUI를 그릴수가 있습니다.
음... java application작성은 거의 하질 않아서 eclipse에서도 java application작성은 안해봤지만 음.. 좋군요. 학생들에게는 최고로 편한 기능이 되겠네요.
다른 여러가지 기능도 살펴 봐야겠습니다
www.netbeans.org
작성일: 2007.1. 24 24:22:54
function hover(){
var obj=event.srcElement;
obj.className="hover";
}
function hout(){
var obj=event.srcElement;
obj.className="hout";
}
function setHover(target){
if(target==null || target==""){
target=document.getElementsByTagName("body");
target=target[0];
}else{
target=document.getElementById(target);
if(target==null) return;
}
trTags=target.getElementsByTagName("tr");
var count=trTags.length;
var r;
for(r=0;r<count;r++){
trTags[r].attachEvent("onmouseover",hover);
trTags[r].attachEvent("onmouseout",hout);
}
}
AsSBSiPhone.war
CS-ASP-MembershipProvider_cs.zip
sqljdbc_1.2.2828.100_kor.exe