본문 바로가기

프로그래밍

HTTP Response Code

2008. 11. 10.

100   :   Continue(계속)
101   :   Switching Protocols(규약 전환)
200   :   OK
201   :   Created(생성 되었음)
202   :   Accepted(접수 되었음)
203   :   Non-Authoritative Information(비 인증 정보)
204   :   No Content (내용이 없음)
205   :   Reset Content(내용을 지움)
206   :   Partial Content(부분 내용)
300   :   Multiple Choices(복수 선택)
301   :   Moved Permanently(영구 이동)
302   :   Moved Temporarily(임시 이동)
303   :   See Other(다른 것을 참조)
304   :   Not Modified(변경되지 않았음)
305   :   Use Proxy(프락시를 사용할 것)
400   :   Bad Request(잘못된 요구)
401   :   Unauthorized(인증되지 않았음)
402   :   Payment Required(요금 지불 요청)
403   :   Forbidden(금지되었음)
404   :   Not Found(찾을 수 없음)
405   :   Method Not Allowed(method를 사용할 수 없음)
406   :   Not Acceptable (접수할 수 없음)
407   :   Proxy Authentication Required(프락시 인증 필요)
408   :   Request Time-out(요구 시간 초과)
409   :   Conflict(충돌)
410   :   Gone(내용물이 사라졌음)
411   :   Length Required(길이가 필요함)
412   :   Precondition Failed(사전 조건 충족 실패)
413   :   Request Entity Too Large (요구 엔터티가 너무 큼)
414   :   Request-URI Too Large(Request-URI가 너무 김)
415   :   Unsupported Media Type(지원되지 않는 미디어 유형)
500   :   nternal Server Error(서버 내부 에러)
501   :   Not Implemented(구현되지 않았음)
502   :   Bad Gateway(불량 게이트웨이)
503   :   Service Unavailable(서비스를 사용할 수 없음)
504   :   Gateway Time-out(게이트웨이 시간 초과).
505   :   HTTP Version not supported (지원되지 않는 HTTP 버전)



'프로그래밍' 카테고리의 다른 글

[Java] JVM Memory 관련 내용 정리  (2) 2009.03.02
HTTP Response Code  (0) 2008.11.10
[HTML] clientWidth, offsetWidth, scrollWidth 개념 정리  (0) 2008.07.25
[Eclipse] 단축키 모음  (0) 2008.07.18
댓글 0

Confluence(WIKI) + Oracle setup

2008. 3. 28.

* Confluence 2.7.3 Standard + Oracle 9i


1. 프로그램 다운로드하여 아무데나 압축해제(여기서는 D:\confluence로 진행)

2. 개인용 License(2 User Free) 얻기

3. D:\confluence\confluence\WEB-INF\classes\confluence-init.properties 열어서
    confluence.home값 수정


4. D:\confluence\conf\server.xml 열어서 Context Element 사이에 Resource element 추가


5. D:\confluence\confluence\WEB-INF\web.xml 열어서 </web-app> 바로 위에 resource-ref element 추가


6. Oracle jdbc driver(ojdbc.jar)를 D:\confluence\common\lib에 복사

7. D:\confluence\bin\startup.bat 사용하여 서버 실행,
    http://127.0.0.1:8080 으로 접속하여 Lincese 입력 후 Custom Installation 버튼 클릭하여 진행

8. 가장 하단에 Oracle 9i/10g 선택 후 External Database 버튼 클릭하여 진행
사용자 삽입 이미지

9. 가장 하단에 Datasource 버튼 클릭하여 진행

10. Datasource JNDI name 입력 후 Next 버튼 클릭하여 진행
     (테이블 생성하느라 좀 오래 걸립니다 ^^;)
사용자 삽입 이미지

10. Example Site(예제 space 생성) 혹은 Empty Site 버튼 클릭하여 진행

11. admin 사용자에 대한 정보 입력 후 Next 버튼 클릭하면 셋업 완료!!



참고자료 : Confluence Database setup for oracle
                  골드피쳐 - Confluence 관련 wiki
        
댓글 2
  • 이게 뭐에요? -ㅁ-;;;
    오라클은 웹브라우져 아닌가?-ㅁ-;;;
    보면 볼수록 모르겠다는..ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

    • 아.. 그 웹브라우져는 오페라 아닌가요?
      저도 써보진 않아서 모르겠지만 ㅎㅎ
      오라클은 데이타베이스 프로그램이고요~
      이거는 WIKI라는 시스템을 설치하는 방법을
      제 나름대로 정리해 본 것입니다~!
      그냥 흘려 보내세요~ ^^;;

오픈 소스 기반의 개발 프레임워크 구축 방안

2008. 3. 7.

오픈 소스 기반의 개발 프레임워크 구축 방안

Dev - @ 2008년 01월 14일 01시 23분

개발자들이 개발을 하다가 보면 아래와 같은 그림의 형태로 큰그림을 그리고 난 다음
하나 하나 항목별로 실행 시나리오를 작성하곤 한다.

사용자 삽입 이미지

그래서 이 방법들중 개발 프레임워크에 국한되어 선택과 집중의 방법을 사용하여
다양한 오픈 소스 기반의 개발 프레임워크를 내재화 할 수 있도록 정리를 할 예정이다.
이에 앞서 맛보기로 전체 오픈 소스의 개발 환경별 필요한 것들을 리스트업 해봤다.


*. Open Source로 구성된 개발 프레임워크 도구들



1. 프로젝트 관리 도구들

 1.1 웹 기반 프로젝트 관리
    -  Basecamp(블로그 기반으로 RSS, milestones, To-Do List, 아웃룩 , IM연동 , E-mail을 지원)
 1.2 Issue Tracking
    - Trac(Issue tracking, Wiki, Subversion의 조합으로 다양한 버그 트랙킹, 요구사항 트랙이 가능)
    - Roundup(심플, Python으로 개발됨)
 1.3 일정 및 리소스 관리
    - GanttProejct(Ms Porj3ect와 유사한 기능 지원, 한글지원 안됨)
    - jxProject(기능 심플하고 프로젝트 관리 편리함, 한글 지원)
 1.4 형상 관리
    - CVS(Eclipse와 조합을 이루어 가장 널리 쓰임, Unix기반으로도 사용)
    - Subversion(CVS를 보완한 웹 기반의 소스 버젼 관리, Trac과 연동하여 요즘 사용하는 추세가 가파르게 상승)
 1.5 문서 보관
    - Google Desktop Search + DNKA(검색과 다운로드가 가능한 웹 기반의 문서저장소 개발 가능)
 1.6 설계
    - gModeler(웹 기반의 UML 툴)
    - Gliffy(웹 기반의 Vision - UML 지원)

 
2. 아키텍쳐 도구들

 2.1 SOA의 구성요소인 ESB 툴
    - ChainBuilder ESB(이클립스와 결합하여 ESB 설계가 가능)
    - GlassFish(Jboss, Webshpere와 결합하여 Open Message Queue기능 구현이 가능)
 2.2 BPM
    - Drools(Rule-based 엔진(JSR-94)을 기반)


3. 개발 도구들

 3.1 개발 환경
    - Eclipse(IDE기반의 개발 툴)
    - Junit(단위 테스트 향상으로 코드의 품질 향상)
    - Maven(프로젝트 관리 및 빌드)
 3.2 Framework
    - Spring Framework(POJO, AOP, IoC, OR 매핑 프레임웍을 지원)
    - Struts Framework(MVC 모델 구현)
    - Hibernate Framework(객체를 RDB에 매핑해서 저장하는 ORM(Object-Relational Mapping) Tool)
    - Velocity(템플릿 기능 사용으로 개발 생산성 높임)
    - FreeMarker(Velocity와 같은 templating언어임)
 3.3 Ajax구현 개발 라이브러리
    - aSSL(Ajax Secure Service Layer로 HTTPS없이 ssl서버스 가능하므로 Ajax기능 구현시 보안 문제 커버 가능)
    - DWR(Java기반의 원격 호출 라이브러리)
    - Dojo(Javascript toolkit)
    - Prototype(객체 지향적 자바스크립트 라이브러리)
    - Rico(오픈 소스 기반의 자바 스크립트 라이브러리)
    - Scriptaculous(오픈 소스 기반의 자바 스크립트 라이브러리)
    - JFreeChart(통계 프로그램 등에 유용한 차트 지원)
 3.4 성능
    - Eclipse의 TPTP 프로젝트(Performance Tuning 지원)
    - Bcel(Byte Code Engineering Library로 바이너리 코드를 진단하여
              트래픽 진단 및 에러 발견 등의 성능 진단 프로그램 개발 가능)


4. 운영 도구들

 - WAS모니터링 툴(Bcel 확장으로 Java기반 어플리케이션 모니터링 가능)
 - Quartz(Job Scheduler로 응용하여 배치 작업 모니터링 및 스케쥴링 가능)



*. 개발 도구들 사이트 주소

1. Basecamp(http://www.basecamphq.com/
2. Trac(http://trac.edgewall.org/)
3. Roundup(http://roundup.sourceforge.net/)
4. GanttProejct(http://ganttproject.sourceforge.net/)
5. jxProject(http://www.jxproject.com/)
6. CVS(http://www.gnu.org/software/cvs/)
7. Subversion(http://subversion.tigris.org/)
8. Google Desktop Search(http://desktop.google.com/)
9. DNKA(http://dnka.com/)
10.ChainBuilder ESB(http://desktop.google.com/)
11.GlassFish(http://glassfish.dev.java.net/)
12.Drools(http://drools.codehaus.org/)
13.gModeler(http://www.gskinner.com/gmodeler/app/run.html)
14.Gliffy(http://www.gliffy.com/)
15.Eclpise(http://www.eclipse.org/)
16.Junit(http://www.junit.org/)
17.Maven(http://maven.apache.org/)
18.Spring Framework(http://www.springframework.org/)
19.Struts Framework(http://struts.apache.org/)
20.Hibernate Framework(http://www.hibernate.org/)
21.Velocity(http://jakarta.apache.org/velocity/)
22.FreeMarker(http://freemarker.sourceforge.net/)
23.aSSL(http://assl.sullof.com/)
24.DWR(http://getahead.ltd.uk/dwr/)
25.Dojo(http://www.dojotoolkit.org/)
26.Prototype(http://prototype.conio.net/)
27.Rico(http://openrico.org/)
28.Scriptaculous(http://script.aculo.us/)
29.JFreeChart(http://www.jfree.org/jfreechart/)
30.Eclipse의 TPTP(http://www.eclipse.org/tptp/index.html)
31.Bcel(jakarta.apache.org/bcel/)
32.Quartz(http://www.opensymphony.com/quartz/)


*. 오픈 소스 기반의 개발 프레임워크 구축 방안

 - 동질의 목표를 위해서 모인 커뮤니티를 구축하고 발표 및 토론의 진행형태로 운영
 - 오픈 소스라서 인큐베이팅 활동이 활발한 오픈 소스 위주로 선택 과 집중
 - Prototype 형태의 구현을 할수 있는 환경 구축
 - 웹 개발 프로세스에 맞는 개발 프레임워크 구축
 - 실제 적용 및 FeedBack을 통한 내재화




댓글 3

[JS] 객체 지향 기술을 이용한 고급 웹 응용 프로그램 만들기

2008. 2. 15.


Javascript 객체 지향 기술을 이용한 고급 웹 응용 프로그램 만들기 (MSDN)


'javascript 그까이거 뭐 대충~ 이름만 잘 지어서 공통 function 몇 개 만들고,
그때 그때 필요한 function들만 잘 짜면 되는거 아냐?' 하고 생각했던 저같은 개발자들에게
꼭 필요한 자료라고 생각합니다.

실제로 사이트 개발 중 가장 많은 시간은 할애하는 것이 javascript와 HTML인데,
그걸 알면서도 이 부분은 공부를 잘 안하게 되는 것이 아무래도 Client script 언어라 하여
조금 낮춰 보았던 게 아닐까 하는 생각이 드네요.

그렇지 않아도 1~2년 전쯤 회사 시스템에 Nitobi라는 회사의 상용 javascript 그리드를 적용할 때나
DOJO Toolkit study시 소스 분석을 하려 하다가 방대한 양의 난생 처음보는 구조의 javascript를 보고
좌절한 경험이 있는데, 지금부터라도 좀 열심히 공부해야 할 것 같습니다.

실제로 사내에서 쓰고 있는 수많은 javascript function들을  위 강좌와 같이 객체지향 적으로 설계를 하고
개발을 하면, 관리가 훨씬 수월해 질 것 같네요!

열공합시다 ^^!

댓글 0

[CSS] 배경 이미지 깜박거림(Background Image Flicker)

2008. 1. 29.


이 문제는 IE 6에서만 나타나는 문제이며 이로 인해 가시적으로 드러나는 현상은 이미지의 깜박거림이지만 더욱 치명적인 문제는 깜박거리는 현상이 발생할때마다 (또는 깜박거리지는 않더라도) 해당 이미지를 가지고 있는 서버로 이미지 전송 요청을 보내거나 local cache 를 access (file access) 하는  현상이 유발되고 이로인해

사용자 브라우저의 메모리 및 CPU 과다사용, 랜더링 속도 저하,
working cursor(모래시계)로 마우스 커서 바뀌는 현상
등이 동반되므로 더 나은 서비스를 제공하고자 한다면 각별히 주의해야될 문제다.

이러한 현상은 일어나는 원인은 크게 두가지 유형 정도로 판단된다.

문제 1) href 속성이 주어진 A 태그가 있고 해당 A 태그 혹은 그 하위 element에 css로 background-image 를 적용하였을 경우, A 태그에 hover(마우스 오버, 포커스 이동 등)가 되면 A 태그와 그 하위에 있는 모든 element에 적용된 background-image가 - 같은 이미지 일지라도 element 수만큼 - 서버에 재요청되는 현상이 생긴다.
-> 깜박거림, working cursor등이 동반될 수 있다.

문제 코드1

<html>
<head>
    <title>test</title>
    <style type="text/css">
    span {background-image: url(test1.gif);}
    a    {background-image: url(test2.gif);}
    </style>
</head>
<body>
    <a href="#">
        <span>test</span>
        <span>test</span>
        <span>test</span>
        <span>test</span>
        </a>
</body>
</html>


문제 2) 임의의 element에 css로 background-image 를 적용하였을 경우, onload이벤트 후에 해당 element나 그 상위 element의 style을 수정하면 해당 element에 적용된 background-image가 서버에 재요청되는 현상이 생긴다. 바꿔 말해서 onload 이후에 background-image가 적용된 부분을 포함하고 있는  element의 style을 바꾸면 해당 element와 그 하위에 있는 element들에 적용되어있는 모든 background-image가 - 같은 이미지 일지라도 element 수만큼 - 서버에 재요청 되는 현상이 생긴다.
-> 깜박거림, working cursor등이 동반될 수 있다.-> 깜박거림, working cursor등이 동반될 수 있다.

문제 코드2

<html>
<head>
<title>test</title>
    <style type="text/css">
    #test { background-image: url(test1.gif); }
    span  { background-image: url(test1.gif); }
    </style>
    <script type="text/javascript">
    function init() {
        document.getElementById('test').style.position = 'relative'
        document.getElementById('test').style.top = '1px'
        document.getElementById('test').style.left = '2px'
    }
    </script>
</head>
<body onload="init()">
    <div id="test">
        <span>test</span>
        <span>test</span>
        <span>test</span>
        <span>test</span>
        <span>test</span>
    </div>
</body>
</html>


문제1, 2를 완벽히 해결하는 방법.


사용자들에게 브라우저를 바꾸도록 강요할 수 있다면 IE6 이외의 브라우저를 사용하게 한다.
문자1, 2의 상황이 생기는 필요조건을 충족하지 않도록 코드를 바꾸는게 가능하다면 바꾼다.
  (ex. background-image를 사용하지 않은 css 혹은 img태그로 대체.)
하나마나한 얘기인가?. 그래도 모른다. 고민해보자.. 이 두가지가 가능한지.


문제1, 2가 일어나는 브라우저 범위를 줄이는 방법.

Internet Explorer 6 서비스 팩 1(Windows XP SP1) 이후의 브라우저에서는 "BackgroundImageCache" 라는 Command Identifier로 execCommand를 호출함으로써 이 문제들을 해결할 수 있다.
 - 서비스팩 2에서는 포함되어 있으며, 서비스 팩 1(6.00.2800.1106)은 update 유무에 따라 다를 수 있다.
- 브라우저 버젼 확인 방법 ( http://support.microsoft.com/kb/164539/ko )

document.execCommand("BackgroundImageCache", false, true);

이 생소한 BackgroundImageCache라는 녀석은 MSDN에서 제공하고 있는 Command Identifiers list
(http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/commandids.asp)에서도 찾을 수 없다.

MSDN KB를 뒤진 결과.
 Available memory decreases when you view a Web page in Internet Explorer 6 Service Pack 1 (http://support.microsoft.com/kb/823727) 에서 이 녀석에 대한 언급을 볼 수 있었다. 이 문서에서 말하고 있는 해당 hotfix의 원인과 설명은 보든 안보든 달라질게 없는 쓸모없는 내용이다. 또한 "Document.ExecCommand" 처럼 대소문자 규칙까지 어기고 있다. 여튼 이 너저분한 내용의 hotfix와 그 해결 방식은 치명적일수도 있는 결함에 대한 MS의 궁여지책 같은 냄새가 짙다.
결론은 Internet Explorer 6 서비스 팩 1 이후의 브라우저에서만 이 문제를 해결하고자 한다면,
BackgroundImageCache Identifier가 없는 브라우져에서 발생할 수 있는 예외를 무시할 수 있는 코드가 첨가된 아래 코드만으로 충분하다.

Internet Explorer 6 서비스 팩 1(Windows XP SP1) 이후 브라우저를 위한 해결.

try {
    doument.execCommand("BackgroundImageCache", false, true);
} catch(ignored) {}

주의. 아래와 같은 해결방법에 대한 제시를 본적이 있다.

html {
    filter: expression(document.execCommand('BackgroundImageCache', false, true));
}
유사해 보이지만 다른 내용이다. 이 방식은 두가지 측면에서 좋지않다. 첫째는 BackgroundImageCache Identifier가 없는 브라우져에 대한 예외처리가 없다는 것이고, 둘째는 한번만 수행하면 되는 코드가 지속적으로 수행된다는 것이다.


구제받지 못한 IE6들을 위한 개선 방법

간단한 코드로 IE6 서비스팩 2와 서비스팩 1이후의 일부는 문제 대상에서 제외됐지만, 아직 서비스팩이 포함되지 않은 IE6가 방치되어 있다. 불행히도 이 브라우저들을 위한 간단한 해결책은 없는 듯하다. 그래서. 문제를 개선할 수 있는 방법을 정리한다.

개선 1. 브라우저와 서버의 통신을 줄인다.

방법 1.1. 사용자 브라우저의 임시 인터넷 파일 설정을 바꾸도록 한다.

브라우저의 임시 인터넷 파일 설정이 기본 설정값인 "페이지를 열때 마다" 일때 더 심각한 문제를 유발하므로 사용자에게 브라우저 설정을 바꾸는 것을 강요할 수 있는 상황이라면 그렇게 하라.


방법 1.2. 서버에서 expires나 cache-control헤더를 포함한 컨텐츠를 보내서 클라이언트의 local cache 사용을 유도한다.


* 서버설정 참고

- 아파치일 경우

httpd.conf 에 아래 내용을 추가

ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000

LoadModule expires_module modules/mod_expires.so

httpd.conf 를 수정할 수 없다면 자신의 .htaccess 파일을 수정한다. (단, mod_expires는 load되어 있어야한다)

설정방법 참고 : http://dean.edwards.name/my/flicker.html
mod_expires에 대한 설명 : http://httpd.apache.org/docs/2.2/ko/mod/mod_expires.html

- IIS일 경우

아래의 헤더를 추가
Cache-Control: post-check=3600,pre-check=43200

설정방법 참고 : http://www.aspnetresources.com/blog/cache_control_extensions.aspx


서버 설정을 할 수 없다면 웹 어플리케이션 작성시 expires나 cache-control헤더를 클라이언트에게 보내는 코드를 추가하라.
이 방법들은 컨텐츠를 서버에서 받아간 후, 파기(expire)되는 기간까지 서버에 재요청하지 않고 local cache를 사용하게 하는 일반적인 웹어플리케이션 성능향상 팁이기도 하다.

위에서 제공 것은 개선 방법임을 다시 한번 강조한다. 절대. 해결 방법이 아니다. 원격서버와의 통신을 줄어드나 local cache에 대한 불필요한 접근들은 일부 방치된다. 어떤 것들이 방치되는지 궁금하다면.. 브라우저 프로세스가 여는 파일 핸들들을 감시해보라.

개선 2. 문제1에서의 이미지 깜박거림을 감소시킨다.

이 부분은 아래의 링크에 수록된 잼있는(?) 내용을 전제로 한다.
Minimize Flickering CSS Background Images in IE6 
(http://www.fivesevensix.com/studies/ie6flicker/)

이 문서에서는 문제 1에서 발생하는 깜박거림에 대한 집요한 테스트 결과가 있다.

아래의 속성이 직접 적용되거나 상속되는 경우,
    background-color : transparent 이외의 값
    background-repeat : repeat 이외의 값
    background-position : 모든 값
또는
background-image가 적용된 element의 크기가 2500픽셀 미만일떄,
또는
투명 gif를 백그라운드 이미지로 사용했을때,

깜박거림 현상이 더 크게 발생하며

A태그의 상위엘리먼트에 같은 background-image를 지정해둠으로써 깜박 거림 현상을 감소시킬 수 있는 방법등을 제시하고 있다. 잼있는 개선방법중 하나지만 다른 개선이 배제된 상태에서의 이런 개선방법은 별로 추천하고 싶지는 않다.

개선 3. 문제2에 대한 개선

문제2에서의 특이한 사항은 특정 element의 style을 보정할때 style이 직접 대입되는 element는 그 대입횟수만큼 background-image를 다시 로딩하는 현상(download 혹은 local cache 접근) 이 생긴다는 것이다. 이와 달리 그것의 하위 element들은 상위element에 style이 대입되는 처음 시점에 단 한번의 불필요한 로딩만 다시 일어난다.

따라서 문제2를 조금 개선할 수 있는 방법은 style을 보정할 element에는 background-image css가 적용되어 있지 않게 하거나 뺄 수 없다면 불필요한 element로 싸는 정도의 간단하고 깔끔하지 못한 방법으로 문제를 축소시킬 수 있다.

모든 style 적용에서 테스트를 해본 것이 아니라. 항상 이 규칙이 적용된다는 보장은 할 수 없지만, 분명히 일반적인 위치이동 등의 처리에서는 개선되는 효과가 있다.


출처 : http://blog.eloitcube.co.kr/27

댓글 0