달력

92021  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  

클라이언트 디플로이어 패키지를 사용해서 디플로이하기
Deploying using the Client Deployer Package
번역 translated by kenu_AT_okjsp.pe.kr

클라이언트 디플로이어는 운영이나 개발 서버에 웹 애플리케이션을 검증, 컴파일, 배치시킬 수 있는 패키지입니다. 이 기능은 자동 배치를 위해서 톰캣 매니저를 사용한다는 것은 알아야 겠죠.
The client deployer is a package which can be used to validate, compile, and deploy a web application to a production or development server. It should be noted that this feature uses the Tomcat manager for automatic deployment.

이 디플로이어는 카탈리나 매니저 앤트 태스크, 배치 전에 JSP 컴파일을 하기 위한 재스퍼 페이지 컴파일러, 그리고 웹 애플리케이션 배치 기술서를 검증하는 태스크를 포함하고 있습니다. 검증 태스크(org.apache.catalina.ant.ValidatorTask 클래스)는 파라미터 하나만 받습니다: 웹 애플리케이션의 기본 경로
The deployer includes the Catalina manager Ant tasks, the Jasper page compiler for JSP compilation before deployment, as well as a task which validates the webapp's deployment descriptor. The validator task (class org.apache.catalina.ant.ValidatorTask) allows only one parameter: the base path of an expanded web application.

디플로이어는 입력으로 펼쳐진 웹 애플리케이션을 이용합니다(아래에 나와 있는 디플로이어의 프로퍼티 목록 참조). 디플로이어가 프로그램으로 배치하게 되는 웹 애플리케이션은 톰캣에 특화된 배치 설정을 포함할 수도 있습니다. /META-INF/context.xml 안에 있는 컨텍스트 설정 XML 파일이죠.
The deployer uses an unpacked web application as input (see the list of the properties used by the deployer below). A web application which is programatically deployed with the deployer may include Tomcat specific deployment configuration, by including a Context configuration XML file in /META-INF/context.xml.

디플로이어 패키지는 다음과 같은 앤트 스크립트 타겟을 사용할 수 있습니다:

  • compile (default): 웹 애플리케이션을 컴파일하고 검증합니다. 독립적으로 사용될 수 있고, 실행중인 톰캣 서버가 없어도 됩니다. 컴파일된 애플리케이션은 오직 관련된 톰캣 5.0.x버전의 서버에서만 실행됩니다. 다른 버전에서는 동작한다고 보장할 수 없습니다. 재스퍼에 의해 생성된 코드는 실행 컴포넌트에 의존하기 때문입니다. 또 하나 알아야 할 것은 이 compile 타겟은 웹 애플리케이션의 /WEB-INF/classes 폴더 안에 있는 모든 자바 소스는 자동으로 모두 컴파일 해 버린다는 것입니다.
  • deploy: (컴파일 되든 안되든) 웹 애플리케이션을 톰캣 서버로 배치합니다.
  • undeploy: 웹 애플리케이션을 제거.
  • start: 웹 애플리케이션을 시작.
  • reload: 웹 애플리케이션을 릴로드.
  • stop: 웹 애플리케이션을 정지.

The deployer package includes a ready to use Ant script, with the following targets:
compile (default): Compile and validate the web application. This can be used standalone, and does not need a running Tomcat server. The compiled application will only run on the associated Tomcat 5.0.x server release, and is not guaranteed to work on another Tomcat release, as the code generated by Jasper depends on its runtime component. It should also be noted that this target will also compile automatically any Java source file located in the /WEB-INF/classes folder of the web application.
deploy: Deploy a web application (compiled or not) to a Tomcat server
undeploy: Undeploy a web application
start: Start web application
reload: Reload web application
stop: Stop web application

다음 프로퍼티는 시스템 프로퍼티나 또는 디플로이어 패키지의 루트 폴더에 있는 deployer.properties 파일을 통해서 지정할 수 있습니다:

  • build: 기본적으로 사용되는 빌드 폴더는 ${build}/webapp${path} 입니다. compile 타겟의 실행이 마친 후, 웹 애플리케이션 WAR 파일은 ${build}/webapp${path}.war 에 만들어집니다.
  • webapp: 컴파일되고 검증되고, 압축이 풀린 웹 애플리케이션이 담길 폴더. 기본 폴더명은 myapp 입니다.
  • path: 웹 애플리케이션의 배치될 컨텍스트 경로. 기본값은 /myapp.
  • url: 실행중인 톰캣 서버의 매니저 웹애플리케이션에 접근할 수 있는 절대 URL. 여기를 통해서 웹 애플리케이션을 배치(설치) 또는 제거할 수 있습니다. 정해지지 않으면 디플로이어는 로컬호스트에서 돌아가는 톰캣인스턴스의 주소 http://localhost:8080/manager로 접근하려 할 것 입니다.
  • username: 톰캣 매니저 연결용 username.
  • password: 톰캣 매니저 연결용 password.

The following properties can be specified, either as system properties, or by using a deployer.properties file located in the root folder of the deployer package:
build: The build folder used will be, by default, ${build}/webapp${path}. After the end of the execution of the compile target, the web application WAR will be located at ${build}/webapp${path}.war.
webapp: Folder containing the expanded web application which will be compiled and validated. By default, the folder is myapp.
path: Deployed context path of the web application, by default /myapp.
url: Absolute URL to the manager web application of a running Tomcat server, which will be used to deploy and undeploy the web application. By default, the deployer will attempt to access a Tomcat instance running on localhost, at http://localhost:8080/manager.
username: Username to be used to connect to the Tomcat manager.
password: Password to be used to connect to the Tomcat manager.

from: http://tomcat.apache.org/tomcat-5.0-doc/deployer-howto.html

Posted by 케누 kenu허광남

댓글을 달아 주세요

지난 포스트에 이미지만 작뜩 붙여놓고 설명을 하지 못했습니다.
하지만 김풍주님의 도움으로 더 좋은 방법을 알게 되었습니다. 그리고 근원적인 이유도 함께 말이죠.

http://www.eclipse.org/webtools/faq/TomcatServerFAQ.php#info_10
주소에 나와있는 것인데, 톰캣에 왜 META-INF 디렉토리가 있었나 생각했었는데, 컨텍스트 관련한 설치 정보를 넣을 수 있더군요.

곧 좋은 기사를 하나 내놓을 수 있을 듯 합니다. 급방긋 ^_^
Posted by 케누 kenu허광남

댓글을 달아 주세요

open source 오픈소스

java 2007. 7. 14. 23:53
오픈소스.
보기에 좋아보입니다.
회사에서 쓰려니 망설여집니다.
우선 매력적인 것이
1. 비용이 들지 않아서 손해날 것도 없다는 생각
2. 소스를 마음대로 들여다 볼 수 있어서 답답하지 않을 것이다
3. 기회만 되면 직접 커스터마이징도 가능할 것입니다.

하지만 걱정되는 것은
1. 프로젝트 납기일이 짧습니다.
2. 한글문제나 성능문제가 나타나면 많이 난감합니다.
3. 패치가 너무 자주 됩니다.
4. 윗선에서 별로 탐탁해하지 않습니다. 신뢰감이 없어 보인다는 것이죠.

그래도 오픈소스를 써야할까요?

말도 안되는 것이지만, 타당한 이유가 있습니다.
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 백일몽  댓글주소 수정/삭제 댓글쓰기 2007.07.15 01:14

    형님 세미나 준비 중이시군요.

  2. 조영운  댓글주소 수정/삭제 댓글쓰기 2007.07.15 16:34

    저는, 오픈소스를 회사에서 이렇게 사용합니다.

    svn + trac를 이용해서 소스, 문서 관리를 하고 있습니다.
    eclipse를 이용해서 코딩을 하고 있습니다.
    linux를 테스트 서버로 만들었습니다.
    iiop.net, junit. jdom, apache-pool, apache-fileupload 등의 라이브러리를 사용하고 있습니다.

    이런게 없었으면, 프로젝트 진행이 아주 어려웠거나, 느려졌을 겁니다. 하지만 회사에서는 아직도 오픈소스에 대해 탐탁해하지 않습니다.

    그래도 필요하면, 써야겠다는 생각입니다. (회사에서는 좋아하지 않겠죠 ㅜㅜ)

[eclipse] Code Navigation

java 2007. 7. 13. 16:21

편집기 이상의 기능을 하는 이클립스의 Navigate 메뉴를 중심으로 편리하게 소스를 읽을 수 있도록 도와주는 기능들을 살펴봅니다.
이름하여 eclipse code navigation
부제는 코드 빨리 찾기

코드를 쉽게 읽을 수 있도록 도와주는 기능. 참조하는 소스코드들을 쉽게 찾아내는 기능입니다.
legend
ctrl :  ^
alt :  @
shift : ~

찾기/바꾸기
^ + F

파일 찾기
^ + ~ + R, @ + n u

문자열 포함된 소스 찾기
contextMenu + find
^ + H

코드 패턴 찾기
^ + j
^ + k, ^~ + k

파일과 파일 사이 이동
^ + f6

상속 관계 찾기
^ + t

메소드 찾기
^ + o

선언부 찾기
^ + leftClick
f3

참조 소스 목록
ctrl + shift + g
contextMenu > References > Project

같은 변수 찾기
형광펜

method 집중해서 보기
형광펜 옆

라인번호로 이동
^ + L

중괄호({} brace) 처음과 끝
ctrl + shift + p
@ + ~ + 좌우화살표

코드 비교하기
compare with...
replace with...

...

편집

코드를 쉽게 짤 수 있는 기능들입니다.

copy & paste
^ + insert / ~ + insert
^ + c / ^ + v
^ + @ + 상하 화살표

method copy/remove
outline view에서 copy/remove

refactoring
집중 분석 필요


Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 열이아빠  댓글주소 수정/삭제 댓글쓰기 2007.07.13 16:38 신고

    오늘 아무이유없는 세미나 가고 싶었는데
    갑작스런 회사 회식으로..ㅠㅠ

  2. 김성안  댓글주소 수정/삭제 댓글쓰기 2007.07.16 10:03

    ctrl + k가 편하네요. 덕분에 하나 배워갑니다.

    요즘 제품 업그레이드하면서 편하다고 느낀 기능이

    - Ctrl + Shift + T (Open Type) : 클래스 이름은 대충 알지만 패키지 구조도 난리법석이고 할 때 찾기 편하더군요. (패키지 구조를 Refactor하는게 우선일까요 ^^;)
    - Ctrl + Shift + P (Go to Matching Bracket) : 코드가 복잡한 분기문으로 Nesting되어있는 경우 일치하는 중괄호 찾기는 편리하더군요. (이것도 알아보지 못할 정도로 분기문이 복잡한게 문제이겠지만요)
    - Ctrl + H (File Search 이동): UI에 나오는 텍스트로 수정해야 하는 구성요소 찾아들어갈 때 유용하게 쓰고 있습니다. 이건 위에서 언급되었네요.

  3. 김성안  댓글주소 수정/삭제 댓글쓰기 2007.07.16 10:31

    - Ctrl + O (Quick Outline): Outline을 Quick View형식으로 띄워주네요. Outline이 있는데 다른 장점이 무어냐라면 검색 기능이 붙어있어서 바로 Filtering해서 원하는 항목으로 이동할 수 있습니다. 아웃라인이 복잡하면 찾아보기 힘들었는데 유용하네요.

    Textmate에 있는 기능이라 비슷한 기능이 있을 것 같았는데, 덕분에 네비게이션 관련 이것저것 찾아보다가 많이 발견하게되네요. ^^

  4. 아이뒤스  댓글주소 수정/삭제 댓글쓰기 2007.07.17 01:00

    요즘 자주쓰는 ctrl + shift + g 가 맘에 듭니다.
    메소드나 클래스가 복잡다단한 프로젝트내에 어디서 호출이 되고 있는지
    금방 찾아주는 아름다운 기능^^이요

  5. posi  댓글주소 수정/삭제 댓글쓰기 2007.09.20 02:39

    좋은 정보 감사합니다. 이클립스 사용한지는 꽤나 되었는데 쓰던 단축키만 쓰더니 새로운 것을 알아보는 것에 게을렀네요. 앞으로 애용해야 겠어요 :)

오늘 다운받았습니다.(http://www.eclipse.org/downloads/)
유로파 (europa) 라는 배포 시스템을 통해서 확장 플러그인에 대한 손쉬운 접근법을 선택했습니다. eclipse java IDE의 경우 PDE를 제거하고 Java IDE, CVS client, XML Editor, Mylyn 만 포함시켰습니다. New 메뉴에서 생성가능한 것들입니다.
사용자 삽입 이미지

eclipse java new items


plugin 개발이나 C/C++ 개발인 경우는 그에 따른 배포판을 다운로드 받거나 유로파를 통해서 업데이트할 수 있습니다. http://www.eclipse.org/downloads/ 예전처럼 JDT(Java Development Tool)와 PDE(Plugin Development Enviroment)가 있는 classic버전도 있습니다.

Mylyn이라는 새로운 기능이 들어갔는데, 커다란 workspace에서 업무단위로 소규모 그룹화 시켜서 작업할 수 있도록 도와주는 기능입니다. 아직 쉽게 와닿지는 않지만 연구해볼 만 합니다.

다시 한 번 변화의 바람이 불 것 같습니다.

Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 키엘  댓글주소 수정/삭제 댓글쓰기 2007.07.11 14:17

    3.3 나온줄은 알았는데 변경사항이 어떤게 있는지 몰라서 아직 다운받지 않았습니다. PDE가 default에서 빠졌군요. 좀 가벼워졌으면 좋겠는데..

jdk1.5에 tomcat5.5 그리고 eclipseWTP1.5 버전에 해당됩니다.


사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

Posted by 케누 kenu허광남

댓글을 달아 주세요

cvs의 버전관리 기능을 이용해서 특정한 시간에 대한 소스 디렉토리와 파일들을 복원해 낼 수 있습니다. 타임머신과도 같은 기능이죠.
현재의 소스와 과거의 소스를 이클립스를 통해서 비교도 할 수 있습니다.
보시죠.

CVS Repositories에서 프로젝트를 선택해서 Check Out As...를 선택합니다. Check Out 할 경우는 cvs에 등록된 대로 바로 프로젝트가 생기게 되는 것은 다 아실 겁니다. 로컬의 디렉토리로 가져올 때 프로젝트 커스터마이징을 하기 위해서 Check Out As... 메뉴를 선택합니다
Check Out As...

Check Out As...


프로젝트 이름을 적당하게 바꿔줍니다. 이미 okjsp2007이라는 이름으로 프로젝트가 있는 상태이기 때문에 okjsp2007_timemachine이라는 프로젝트 이름을 지었습니다. ㅎㅎ 꽤 잘 지은 것 같습니다. Next 버튼을 클릭합니다. Finish 클릭하면 말짱 황입니다. 조심조심.
checkout project naming

checkout project naming


Tag를 설정하는 화면입니다. Dates를 선택하고 Add Date... 버튼을 클릭합니다. 중간 맨 오른쪽에 있죠.
Add Date...

Add Date...


캡쳐한 시점이 6월23일인데 한 달 전 시간 5월23일 저녁 6시 기준으로 소스를 가져오도록 하겠습니다. 시간 세팅은 어렵지 않겠죠.
Create Date Tag

Create Date Tag


시간 태그가 보일 겁니다. 그 태그를 선택하고 Finish 버튼을 클릭합니다.
Select Date Tag

Select Date Tag


퍼스펙티브를 바꿔서 프로젝트 두 개가 나란히 서있는 것을 볼 수 있습니다. ^^; 찌그러져 앉아있는지도 모르죠. 헙. 일단 두 개의 프로젝트를 선택합니다. 비교해 봐야죠.
Select projects compared

Select projects compared


컨텍스트 메뉴의 Compare With > Each Other 를 선택합니다. 말이 되네요. 비교해봐 > 서로
Compare With > Each Other

Compare With > Each Other


화면에 Compare tab이 나타날 겁니다. 탭을 더블클릭해서 전체 화면으로 만들고 비료하면 됩니다. 일단 파일을 선택하면 파일의 어느 부분이 바뀌었는지 우측에 구조 비교화면이 나오고 해당 메소드를 선택하면 하단에 소스가 비교되어 나옵니다. 왼쪽과 오른쪽 소스 상단에 프로젝트 이름이 보이니 어떤 것인지 혼동하지 않아도 됩니다.
Compare

Compare



이클립스에서 프로젝트 구조의 비교도 가능하다니 훌륭하지 않습니까? 이클립스가 조금 더 좋아지지 않나요? ^^ 이상 마치겠습니다.


Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. ssamzie101  댓글주소 수정/삭제 댓글쓰기 2007.07.30 17:21

    ㅎㅎ osx네요
    혹시 linux용 한글 언어팩을 osx깔면 적용이 되는걸 아시나요?ㅋㅋ

  2. 비번11111아님  댓글주소 수정/삭제 댓글쓰기 2007.12.28 16:49

    맥스세영??

  3. jino  댓글주소 수정/삭제 댓글쓰기 2008.08.28 17:23

    담아갈께요..

  4. 히라이텐  댓글주소 수정/삭제 댓글쓰기 2011.02.25 10:03 신고

    좋은팁 감사합니다

 
이클립스 사이트에 붙어있는 배너입니다. 유로파, 목성이라는 뜻이죠. 목성의 위성입니다. 지난 해 칼리스토(Calisto)라는 프로젝트가 나왔을 때는 이해를 잘 못했는데, 3.3버전과 맥을 같이하는 유로파 프로젝트를 보고서는 어떤 존재인지 감을 잡았습니다.

이클립스의 단점은 잦은 패치로 인한 상관관계에 있는 프로젝트들의 버전 관리가 어렵다는 것입니다. 이에 대한 해결점으로 모듈 버전 간 의존성을 관리해주는 프로젝트가 바로 3.2버전과 함께한 칼리스토, 3.3버전에 맞춰진 유로파입니다.

http://download.eclipse.org/technology/phoenix/demos/install-wtp/install-wtp.html
여기 동영상을 참고로 하시면 금방 알 수 있을 것입니다.

유로파를 사용해서 설치하는 것을 약간의 설명과 함께 보겠습니다.
eclipse europa

eclipse europa

eclipse 3.3RC4를 받아서 시작하면 위와 같이 로고에 Europa가 적혀있는 것을 볼 수 있습니다. eclipse WTP all-in-one을 받지 않아도 다음과 같은 방법으로 WTP 플러그인을 설치할 수 있습니다.

메뉴의 Help > Software Updates > Find and Install... 을 선택합니다.
Find and Install

Find and Install


WTP 관련 프로젝트들을 설치할 것인데, 두번째 메뉴인 Search for new features to install 을 선택합니다.
Feature Updates

Feature Updates


Europa Discovery Site를 선택합니다. 그리고 우측 하단의 Finish 버튼을 가볍게 클릭.
Update sites to visit

Update sites to visit


미러링을 지원하는 사이트 목록이 나옵니다. 카이스트와 다음 커뮤니케이션이 고맙게도 지원하고 있지요.
Update Site Mirrors

Update Site Mirrors


이제 본론으로 들어왔습니다. Europa Discovery Site 의 +를 눌러서 확장시킵니다.
Search Results

Search Results


Europa에는 21개의 프로젝트가 들어있습니다. 아래쪽에 있는 웹 개발 관련 프로젝트를 선택하겠습니다. 스크롤바를 아래로 쭈욱.
Search Results

Search Results


Web and JEE Development 를 선택하려고 합니다. 펼쳐보면 다음과 같이 4개의 서브 프로젝트 모듈들이 보입니다. XML 편집기, WST, JST, 퍼시스턴스 API툴 4가지죠.
Web and JEE Development

Web and JEE Development


체크하는 순간 빨간색 표시의 x가 뜹니다. 해당 프로젝트에서 필요로 하는 다른 프로젝트의 모듈이 없기 때문입니다.
Select Required

Select Required


당황하지 말고, 우측에 있는 Select Required 버튼을 클릭합니다. 그러면 같이 설치되어야할 모듈들의 체크박스가 자동으로 체크됩니다. 빨간 표시도 더 이상 보이지 않습니다.
여기서 유로파의 진가가 나타납니다.
사용자 삽입 이미지

라이센스가 나옵니다. EPL로 알고 있습니다. CPL을 토대로 만든 라이센스죠. 상업적인 용도로 사용할 수 있다 정도가 되겠습니다. ^^; 남이 만든 것 가져다 쓸 때는 라이센스 체크는 기본입니다만 그 종류가 많다 보니 쉽지 않은 것도 사실입니다.
Feature License Agreement

Feature License Agreement


옵션 특성들입니다. Next를 클릭해서 다음으로 이동하죠.
Optional Features

Optional Features


설치가 이뤄집니다. 설치 경로를 바꿀 필요는 없겠죠.
Installation

Installation


필요한 파일을 다운로드 받습니다.
Download files

Download files


마지막으로 설치에 대한 확인 창이 뜹니다. Install All 버튼을 클릭합니다. Install 버튼을 클릭해서 하나씩 설치되는 것들을 확인하셔도 좋습니다. 어느 세월~에 하실랑가요. ㅋㅋ
Feature Verification

Feature Verification


드디어 설치입니다. Run inBackground 버튼을 클릭해 놓으면 이클립스에서 백그라운드로 동작하게 됩니다. 우측하단의 움직이는 프로그레스바를 클릭하면 관련 뷰가 뜹니다.
Installing

Installing


완료되었습니다. 이상이 없다면 이클립스 재시작 후에 Web Tools Platform을 사용할 수 있습니다.
Install Complete.

Install Complete.


Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. 이동국  댓글주소 수정/삭제 댓글쓰기 2007.06.23 23:10

    너무 상세한 설명 아닌가요..?? ㅎㅎ
    유로파의 정식 릴리즈가 6일 남았어요..
    더더욱 좋아지는듯.. 이번에 sk컴즈에 지원했다가 또 떨어져서. 해매는 중이에요.. ^^

  2. 아스키  댓글주소 수정/삭제 댓글쓰기 2007.07.01 03:22

    좋은 정보 감사드립니다...^^

  3. 불타는고구마  댓글주소 수정/삭제 댓글쓰기 2007.07.22 20:24

    좋은 정보 감사합니다....담아가요..

웹이 보편화되면서 브라우저에서의 문자세트에 대한 얘기도 점점 많아지고 있습니다. 글자가 깨져 보이는 경우는 바로 이 문자세트가 맞지 않아서인데, 세상의 모든 언어들을 한 화면에 표시하기 위한 방식이 UTF8입니다. 물론 포토샵 등으로 이미지를 통해서 한 화면에 표시하는 방법도 있기는 하죠. 철푸덕. ^^;
동일한 내용의 파일이 문자세트에 따라 어떤 차이가 있는지 간략히 살펴보겠습니다.
text

text

필자가 좋아하는 에디터인 울트라에디트를 이용해서 적어놓은 글자들입니다. ctrl+H를 하면 16진수 형태의 코드로 보여지는데 다음과 같습니다.
사용자 삽입 이미지

ANSI charset

컴퓨터가 내부적으로 기억하는 코드를 볼 수 있습니다. h에 해당하는 68은 16진수로 표기된 것이고 10진수로 바꾸면 6*16+8 = 96+8 = 104 입니다. 104번째 해당하는 문자라는 것을 알 수 있죠. 0D 0A 부분이 보일 텐데, windows에서 엔터를 치면 이렇게 두 문자(2 bytes)가 자동으로 만들어집니다. java에서 "\r\n" 이라고 하는 표시하는 것과 일맥상통하죠. 뒤 이어 한글은 두 자리로 되어있는데, "가"는 B0 A1, "나"는 B3 AA 로 컴퓨터가 기억하고 있다는 것을 알 수 있습니다.

울트라에디트에서 이것을 utf8로 변환해보겠습니다. 다시 ctrl+H를 눌러서 일반텍스트 편집화면으로 되돌립니다.
메뉴의 파일(F)에서 "변환"을 선택하고 ASCII -> UTF8(Unicode 편집) 항목을 선택합니다.
conversion

conversion

파일의 코드셋이 변경되었습니다. 다른 이름으로 저장해보겠습니다.
파일의 크기가 바뀐 것을 감지하셨는지 모르겠네요. ^^; hello_utf8.txt로 저장을 했는데 이 파일을 열어서 ctrl+H를 해보면 다음과 같습니다.
utf8 hex view

utf8 hex view

h앞에 세 문자가 더 들어간 것을 볼 수 있습니다. "EF BB BF". 그리고 영어부분은 이전과 같은데 한글부분의 문자가 2바이트 단위에서 3바이트 단위로 늘어났습니다. 즉 "가"가 EA BO 80 이고 "나"가 EB 82 98 입니다.

정리를 하자면 같은 내용의 문자열을 표시한다고 해도 문자세트(코드세트, charset)에 따라서 내부적으로 기억하는 방식은 다르다는 것입니다.

한 가지 더, utf8편집을 위해서 ultraedit 만 필요한 것은 아닙니다. windows의 메모장에서도 편집이 가능합니다. 저장할 때 파일명을 적고 아래에 있는 인코딩을 ANSI에서 UTF-8로 정해주면 됩니다.
메모장 utf8

메모장 utf8


아, Mac에서는 Smultron (http://smultron.sourceforge.net/)이라는 편집기를 사용하고 있습니다.
읽어주셔서 감사합니다. ^^
Posted by 케누 kenu허광남

댓글을 달아 주세요

  1. dazzilove  댓글주소 수정/삭제 댓글쓰기 2007.06.11 09:15

    It is a good post.
    I am going to send to my juniors.
    Thank you.~~~

  2. 세라프메이트  댓글주소 수정/삭제 댓글쓰기 2007.06.14 13:02 신고

    어려워요~ @ _@ ㅋㅋ 이것저것 해보면서 인코딩 문제 해결하는데 해결하고 나면 남는게 없단 말이죠 -_-; 형님 어떡해야 할까요 ㅠ

firebug tips

java/jsp 2007. 6. 9. 10:41
브라우저 하단에 위치한 debug 패널을 창으로 띄워서 사용할 수 있습니다.
control + F12(Mac은 command + F12) 단축키를 이용하면 바로 새로운 창으로 띄울 수 있습니다.
모니터를 두 개 사용하는 경우 좋은 효과를 볼 수 있습니다. ^^;(하나 지르고 싶다.)

하단에서 창으로 띄우는 방법은 검색칸 옆의 꺽쇠 아이콘을 클릭해도 됩니다.
open firebug in new window

open firebug in new window


related: http://www.getfirebug.com/using.html
Posted by 케누 kenu허광남

댓글을 달아 주세요