2009년 8월 5일 수요일

Tomcat ROOT 폴더 설정방법

웹 상에서 버전 별로 여러 방법을 소개하고 있지만,
톰켓6.0 에서는 아래의 방법이 적용이 되니 참고가 됐으면 좋겠습니다.


여러 방법이 있을 수 있겠지만, 손쉬운 방법으로는 conf/server.xml 중,

대략 96줄에 있는 태그의 appBase를 변경해주거나,

태그 내에 태그를 추가해주면 됩니다.

---------------------------------------------------------------------------

말은 쉬우나, 따라하는 것은 쉽지 않기 때문에 예를 들어보면,

우선 톰켓이 기본적으로 보고 있는 루트 컨텍스트는 webapps/ROOT 입니다.

96: unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

appBase는 ${catalina-home} 밑의 상대경로를 인자로 받으며,
기본적으로 보안과 context의 통일적인 적용을 이유로 컨텍스트의 루트는 ROOT 디렉토리 밑이 됩니다.

따라서, 톰켓이 설치가 되면 웹루트는 ${catalina-home}/webapps/ROOT 가 되는 것이지요...

보다 쉬운 이해를 위해 이를 3가지 별로 변경을 해봅시다.

1. webapp 자체를 웹루트 디렉토리로 만들고 싶을 때,

단지, 태그 내에 아래와 같은 컨텍스트를 추가하면 됩니다.


사실 컨텍스트는 더 많은 옵션이 있으나 여기는 최소한의 사항만 적었습니다. 실서버에 적용할 때는 log 부분도 신경을 써주셔야 합니다. 더 자세한 사항은 웹을 검색해 보시기 바랍니다.

2. webapp/test/ROOT를 웹루트 디렉토리로 만들고 싶을 때,

96: unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

3. d:/env/home/my 를 웹루트 디렉토리로 만들고 싶을 때,

96: unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">




또는,

96: unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">




두 설정의 차이를 꼭 잘 알고 계셔야 하며,
말이 조금 헛갈리기는 하지만, Context 를 빼먹으면 ROOT를 자동으로 웹루트로 쓴다는 것을 기억하셔야 합니다.




p.s.> 톰켓 5.0부터 추가적인 context는 server.xml에 추가하지 않고,
각 웹어플리케이션 디렉토리 별로 META-INF 밑에 context.xml을 추가하게 됩니다.

웹루트를 appBase와 같이 하려면 이의 설정을 server.xml에서 설정해도 무방한 것 같습니다만,
webapps를 루트로 쓰는 것은 특별한 경우가 아니면 지양하는 게 좋으며,
꼭 필요하다면 apache의 redirect를 쓰는 방법 등으로 해결할 수도 있습니다.

2009년 7월 27일 월요일

팝업창! 자식이 부모를 조절한다!?

팝업시 부모 변경하여 모듈이나 추가 컴포넌트 내에서 Application이 아닌 팝업을 띄운 부모창으로 지정을 해주기 위한 부분이다.

var sparent:Sprite = Sprite(this);
var FindZip:FindZipCode = FindZipCode(PopUpManager.createPopUp(sparent, FindZipCode,true) as FindZipCode);
FindZip.parentChanged(sparent); // 부모를 변경한다(?) : 기존에는 parentDocument시 Application이지만 변경이 가능하다.
PopUpManager.centerPopUp(FindZip);

MS-SQL DB TCP/IP 연결오류시 해결법!

JAVA에서 접속을 하려니 "호스트 에 대한 TCP/IP 연결에 실패했습니다."
라는 아름다운 문구가 Exception 과 한께 출력되더군요. =_=)a

머리를 무쟈게 쥐어 뜯다가
네이버샘이 아래와 같은 답을 주더군요.!

1.
Microsoft SQL Server 2005 -> 구성 도구 -> SQL Server 구성관리자를 실행하고,

SQL Server 구성 관리자 -> SQL Server 2005 네트워크 구성 -> INSTANCE이름(SQLEXPRESS)에 대한 프로토콜을 선택하면, TCP/IP가 꺼져있습니다.
참고, http://mudchobo.tomeii.com/tt/302

우선 설치하고 JDBC로 접속하는데 좀 힘들었던 것이....

디폴트로 TCPIP가 꺼져있다는 겁니다. 이것때문에 엄청 고생했습니다.

Microsoft SQL Server 2005 -> 구성 도구 -> SQL Server 구성관리자를 실행하고,

SQL Server 구성 관리자 -> SQL Server 2005 네트워크 구성 -> INSTANCE이름(SQLEXPRESS)에 대한 프로토콜을 선택하면, TCP/IP가 꺼져있습니다.

이걸 사용으로 바꾸고 나서,

시작 -> cmd -> telnet locahost 1433(mssql은 1433이 기본포트)

저렇게 해서 아래와 같이 나온다면

C:\Documents and Settings\mudchobo>telnet localhost 1433
연결 대상 localhost...호스트에 연결할 수 없습니다. 포트 1433: 연결하지 못했습니다.
C:\Documents and Settings\mudchobo>
포트설정이 잘못 되어있을 겁니다.
TCP/IP 오른쪽버튼 클릭하고 속성누르면, 프로토콜에 모두 수신합니다가 예로 되어있으면, IP주소탭에서 IPALL부분에 포트가 설정이 잘못 되어있었을 껍니다. TCP 동적 포트는 비워두고, TCP포트는 1433으로 바꿔줍니다.
DB를 재시작하고 telnet 때리면 될 겁니다.

그다음에 DB를 컨트롤해야하니까 아까 두번째로 설치한 SQL Server Management Studio Express를 실행해봅시다.
그럼다음 아까 설정한 인증으로 로그인 하고, 보안 -> 로그인 부분에 사용자를 추가할 수 있습니다.
사용자를 추가한다음에 데이터베이스를 생성해서 해당 사용자에게 할당할 수 있습니다.
이건 뭐 삽질 해보면 됩니다.

JDBC는 이곳에서 받을 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=c47053eb-3b64-4794-950d-81e1ec91c1ba
이건 1.2버전인데, 2.0 preview버전도 있는 것 같아요. 이것도 다른 jdbc driver처럼 사용하면 돼요.
대신 주소입력하는 게 좀 틀리더라구요.


jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost;databasename=mudchobo
jdbc.username=mudchobo
jdbc.password=mudchobo
저렇게 사용합니다.

2.
네트워크 연결 -> 로컬 영역 연결 -> 속성 -> 고급 -> 설정 ->예외(Windows 방화벽) 에서 SQL Server을 선택해 주세요! -> 편집 -> 범위 변경(사용자 지정 목록으로 되어 있다면 추가 해 주세요)

http://blog.naver.com/479lgs?Redirect=Log&logNo=150038660147

2009년 7월 25일 토요일

깔끔한 코드 자동정렬! Flex Formatter !!

만약 Flex Builder를 사용하고 있다면 Eclipse가 아닌 Flex Builder 아래에 있는 plugins에 해당 파일을 넣어야 한다. (일반적인 폴더는 C:\Program Files\Adobe\Flex Builder 3\plugins )
2009년 6월 최신 버전 : 0.6.23
다운로드 : http://sourceforge.net/project/downloading.php?group_id=248408&filename=FlexPrettyPrintCommand_0.6.23.zip


Eclipse에서 JAVA개발시 코드를 자동으로 포맷팅해주는 기능이 있는데, FlexBuilder에는 그런게 없어서 손으로 일일이 수정하는 일이 많았는데요.
flexformatter라는 FlexBuilder 플러그인이 sourceforge에 등록되었습니다.
요게 뭐냐면 MXML,AS 소스코드에 대한 포맷팅을 지원해주는 플러그인 입니다
기능이 의외로 다양합니다.

내부적으로 이루어지는 것들은 개인적으로 테스트를 거치면서 개인용으로 포멧팅을 하는편이 좋구요.
그렇게 만든 포멧팅을 import export가 가능하기에 개인용 포멧과 셋팅용 플러그인을 가지고 다니면
쓸만할듯 합니다.

Flex Formatter
홈페이지 : http://flexformatter.sourceforge.net/
설명 : http://sourceforge.net/docman/display_doc.php?docid=137421&group_id=248408
다운로드 : http://sourceforge.net/project/downloading.php?group_id=248408&use_mirror=jaist&filename=FlexPrettyPrintCommand_0.6.8.jar&24428283


다운로드 받은 jar파일을 Eclipse가 설치된 plugin 디렉토리에 복사
FlexBuilder를 실행하고 ‘Window -> Preferences’메뉴를 선택합니다.
‘Flex’항목 아래 ‘Flex Formatting’항목이 새롭게 생긴것을 확인할수 있습니다.
‘General’텝은 들여쓰기에 대한 옵션인데, 표준을 생각한다면 ‘Use spaces’를 선택하는것이 좋겠습니다.
‘ActionScript’와 ‘MXML’텝은 개발자 스타일에 맞게 다양한 포맷을 설정할수 있는 항목입니다.
‘Auto Format’은 코드포맷적용하는 시점을 지정하는 것입니다.

특히나 중괄호의 옵션이 있는데요. C스타일인
if()
{
}
방식과 자바스타일인
if(){
}
두가지로 골라서 사용하실수도 있으며

Document 제작시 들어가는 주석도 자동으로 각 메서드 별로 어느정도 기입이 되니 정말 쓸만하더군요.

입사하여 진행한 Full Flex 프로그램 오픈하였습니다.!

Flex 를 처음 도입한 회사에서 홀로 작업하여 정식 런칭까지 진행하였습니다.

http://www.hairinfo.co.kr/ 이구요. 시간나시면 둘러봐주시기 바랍니다. ^^*

Ps. 홈페이지 가셔서 웹버젼 접속하기 들어가셔야 합니다. 그리고 가입하시게 되면 전화가 갈테니;
가입은 하지 말아주시구요 ^^;

2009년 7월 24일 금요일

오픈했습니다.!

쥬마군의 프로그래밍 세상!

이제막 시작합니다. ^^