통상 서버 구축 시 필요에 따라 정적 파일은 WEB 서버, 프로그래밍 요소가 들어간 파일은 WAS 가 처리 한다. 설정 방법에 대해 알아 보자.


  • /httpd/conf/extra/httpd-vhosts.conf

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/home/sample/www"
    ServerName sample.co.kr
    ServerAlias www.sample.co.kr

    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common

    ProxyPass /upload !
    ProxyPassReverse /upload !

    ProxyPass / http://localhost:8080/   
    ProxyPassReverse / http://localhost:8080/   
    ProxyPreserveHost On

</VirtualHost>

ProxyPass /upload ! - WEB 서버에서 DocumentRoot 하위 파일을 참조 하여 응답 한다. 

ProxyPass / http://localhost:8080/ - WAS 로 리다이렉션 한다. 

ProxyPreserveHost On - WAS 로 리다이렉션 할때 HOST 정보를 함께 전달 한다.


위 내용을 적용 한 후 서버를 재 시작 해보자.


시작 메뉴 보조 프로그램 > 명령 프롬프트 를 관리자 권한으로 실행 한다. 아래 그림에 있는 명령어를 실행 하자.



참고 사이트


요즘 IT 소프트웨어 개발의 화두는 오픈 소스이다. 개발 시 어지간한 기능은 오픈 소스 라이브러리로 구현되어 있고, 개인이 수정해서 배포하는 경우도 있다. Java Web Application 개발 시 많이 사용하는 SpringFramework 도 대표적인 오픈소스 프로젝트 중에 하나 이다.


오픈 소스는 주로 GitHub 를 사용하여 많이 공유 하고 있다.


“Database 에서 사용하는 Schema 는 공유 할수 없을 까?” Schema 도 마찬가지로 개발마다 다르게 설계 해야 하고, 작은 규모의 회사 에서는 개발자들이 통상 테이블 설계를 하고 있는 실정 이다. 설계에는 정답이 없는 만큼 대신 편리한 점도 있겠지만, 취약점도 있을 것이다.


가까운 지인에게 추천을 받은 사이트는 Schema 를 공유 하는 사이트 이다.


설계 할 때 다른 사람들의 생각도 참고 하면서 Schema 를 만든다면 훨씬 좋은 결과물이 나오지 않을까 하는 생각 이다.



가입(register) 시 Connect via Github 메뉴의 Connect 버튼을 이용하면, 연동도 가능 하다.



dbpatterns 의 장점은 Schema 생성 스크립트를 자동으로 만들어 준다. 지원 하는 DB 는 Mysql, Postgres, Oracle, SQLite 이다. 이정도만 해도 참고 가능한 Schema가 있다면 스크립트로 Schema를 생성하여 테스트 하는 정도는 간편하게 할 수 있다고 생각 한다.



종종 들리면서 참고하면 설계에 많은 도움이 되는 좋은 공간이다.


보통, 공지 글 이 존재하는 게시판 작성 시 실수 할 수 있다. 게시 글 중 Top 1~3 개를 가져올 것이다.


select * from board where rownum = 1 order by board_id desc


위와 같은 Query 는 rownum = 1 조건이 먼저 실행 되고 그 후 order by board_id desc 이 실행 되기 때문에, Top 1 게시 글을 받아 올 수 없다.


select * from (select * from board order by board_id desc) where rownum = 1


이렇게 하면 order by board_id desc 먼저 실행 한 후, rownum = 1 조건을 적용 하기 때문에 원하는 게시 글을 볼 수 있다.


@Controller, @Service, @Repository, @Component 를 사용하여 Bean 을 생성 하는 도중 중복 되어 충돌이 나는 현상 이다.


Annotation-specified bean name 'class' for bean class [class] conflicts with existing, non-compatible bean definition of same name and class [class]


해당 Annotation 의 경우 value 값을 지정 하지 않으면 Class 의 첫번째 문자열을 소문자로 하여 Bean ID 값을 생성 한다. 같은 Class 를 value 값을 지정하지 않았기 때문 이다.


@Controller("myController") 이와 같이 value 값을 설정 하여 해결 하자.


처음 Git 을 접했을 때에는 Git Bash 를 많이 사용했었다. 많이 사용되고 있는 SourceTree 만 사용하려고 해도, Branch 개념을 이해하지 못해 Svn 처럼 사용을 했었다.



위 사이트는 그림위주로 작업의 흐름에 대해 설명이 잘 되어 있다. 충분히 참고 하자. Git Bash 에서 익숙해지다 보니, Eclipse 에서도 Git 을 사용하고 싶었다. 지원해주는 Plugin 이 있어 설치 하고 사용해 보았는대, 흐름을 알고 사용하면 상당히 편리 하다. 아직 기본 흐름이 해깔리거나 이해가 안된다면, Git Bash 환경에서 조금더 연습 할 것을 권장 한다.


1. Eclipse Marketplace


Help > Eclipse Marketplace... 클릭, git 이라고 검색 하자. EGit - Git Team Provider 를 install 하자.



IDE 환경인 만큼, 열심히 next 하자. 설치가 될 것이다.



Restart Now? 팝업이 뜨면, Yes 하자.




2. Git Repositories


Eclipse 를 재 시작 했다면, 설치가 완료 된 것이다. Window > Show View > Other... 클릭, git 이라고 검색 하자. Git Repositories 를 추가 한다.




3. Git Clone


Project 를 받아 보자. Git 은 Clone 명령어를 사용하면 된다. Clone a Git repository 클릭



Location, Authentication 정보를 추가 하자.



Branch 가 여러개 인 경우, 설정 한다. 기본은 master 이다.



Local 에 저장 되는 Directory 설정만 하면 마무리다. Cloneing 하고 있다.



완료가 되면, 아래와 같이 표시 된다.




4. Project Import


Git 폴더 클릭 > 마우스 오른쪽 > Import Projects... 클릭 Import existing projects 를 선택 하고, 폴더를 지정 한다.



Finish 하자. Package Explorer 에 추가 된 모습을 볼 수 있다.




Eclipse 에서 편하게 사용해 보자.  Project 에 따라 추가 설정이 필요 할 수 있다.



Table 수정 이나, 데이터 이전이 필요 한 경우, 백업 을 사전에 해야 한다. 데이터가 잘못 됬을 경우 복구를 위해서 이다.


  • 전체 데이터 백업
select * into backupTable from targetTable

  • 부분 데이터 백업
select * into backupTable from (select * from targetTable where ...)


원하는 부분을 where 로 조건을 주면 해당 데이터만 백업이 된다.


Submit 이벤트 발생 시, 클릭이 안된 Checkbox 는 값 전달 이 무시 된다. 이런 경우에는 Hidden Tag 를 만들어서 해결 하자. Sample 코드는 jQuery 를 사용 하였다.


  • Html
<input type="checkbox" name="sampleCheckbox" />
<input type="hidden" name="sampleHidden" />

  • JavaScript
if ($('input[name=sampleCheckbox]').is(":checked")) {
    $('input[name=sampleHidden]').val('Y');
} else {
    $('input[name=sampleHidden]').val('N');
}


위 샘플을 적용 해보자. 값이 전달 될 것이다.


'Html' 카테고리의 다른 글

HTML Input File 크기 체크 하기  (0) 2014.11.04
HTML Input 자동완성 막기  (0) 2013.04.01
Form 태그 기본 Submit 막기  (0) 2013.02.28
Brower에서 cache 할 경우 안하게 하는 방법  (0) 2013.02.21
HTML DOCTYPE 이란  (0) 2012.12.08

+ Recent posts