ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java Web Game 개발 가이드(2)
    Java Web Game 개발 가이드 2010. 1. 22. 10:02

    누구를 위한 글인가?

    웹 게임은 광범위 하지만 불가능 하진 않다

    웹 게임 제작의 목적은 아마도...

      재미있는 웹 게임을 만들고 싶거나 돈 되는 웹 게임을 만들고 싶거나 할 것입니다. 그냥 공부를 위해서 이 글을 보는 분도 전체적인 프로젝트의 흐름을 볼 수 있을 것입니다. 이 글을 읽는 분들의 목적에 맞게 이 글은 재미있는 웹 게임을 만들기 위한 기초적인 방법론과 돈이란 목적을 컨텐츠에 녹여 관리하는 방법들에 대한 기초적인 윤곽을 설명할 것입니다.

      즉 이 글은 웹 게임을 만들어 보고 싶지만 자신의 실력에 대한 신뢰성이 없거나 자바 웹 프로젝트의 경험이 없는 대학생 혹은 새내기 직장인 들을 위한 글이라 생각하고 읽어 주시면 감사하겠습니다.

      이 다음에는 Java를 이용한 웹 게임을 개발하기 위한 환경의 설정과 기본적인 코딩 소양에 대한 글이 이어집니다. 만약 자신이 이미 프레임 워크나 개발 환경이 완료 된 상태라면 컨텐츠 개발에 대한 다음 장으로 넘어가도 상관 없습니다. 또한 다음 장의 내용이 너무 초보적인 내용이라 볼 필요가 없다고 느끼실 수도 있습니다. 어디까지나 이 글의 독자층을 고려하여 읽어 주시면 감사하겠습니다.

      웹 이라고는 하지만 엄연한 게임 이기 때문에 다양하고 화려한 컨텐츠는 많을수록 좋지만 자신이 수행하는 프로젝트의 성격과 규모를 정확히 파악하여 적정선에서 개발범위를 끊는 것은 매우 중요한 일입니다. 이 글에서는 구체적인 설계와 단계별 수행일정 관리 기법도 다룰 것입니다. 무조건 좋아 보이는 시스템을 다수 채용하게 되면 목표로 했던 개발 범위를 벗어나 프로젝트는 실패로 끝날 가능성이 매우 높게 됩니다. 실패한 프로젝트는 개발자에게 여러 가지로 아픈 경험을 가져다 주므로 반드시 완벽한 업무 범위와 한계성(수많은 개발 도전자들이 직면하는 디자인, 이미지의 한계성)등을 인정하고 반드시 성공하는 프로젝트를 계획, 수행 하길 바랍니다.

    개발 환경 설정

    웹 게임을 만들기 전에 환경의 설정은 당연히 필요 합니다. 제목과 같이 Java 를 이용한 웹 게임을 만들기 위해 다음과 같은 환경 설정을 이용할까 합니다.

    • 웹 서버
      • 톰켓 5.5 (Apache Software Tomcat 5.5)
    • 데이터 베이스
      • MySQL Server 5.0
    • 개발 도구
      • 이클립스 (eclipse-3.3)

    모두 무료 툴들입니다. 이들은 무료지만 실무에서도 테스트 용으로도 자주 사용되는 아주 좋은 프로그램 들입니다. 기본적인 웹의 개발은 이 3가지면 됩니다. 그럼 개발 환경을 설정해 볼까요.

    개발 환경을 설정하는 큰 틀은

    • 첫째. Java(JDK) 와 톰켓을 설치하자.
    • 둘째. 이클립스를 설치하고 톰켓 플러그인을 추가로 설치하자
    • 셋째. mysql server를 설치하자.
    • 넷째. 이클립스와 톰켓을 연동하고 데이터 베이스 역시 연동을 한다.
    • 다섯째. index.jsp 페이지를 만들어서 잘 뜨는지 확인하고 기본적으로 쿼리와 커넥션풀을 설정하여 index.jsp 에 데이터 베이스의 내용을 출력해 보자.
    • 설정 항목에서 인코딩 설정부와 스트럿츠 부분의 Action을 잘 타는지 확인한다.

    여기까지 했다면 당장 웹 프로그램을 개발해도 되는 기초실력은 갖춘 셈입니다. 이곳에 등장하는 커넥션풀이나 설정법에 대한 것들은 중간에 다시 설명을 하도록 하겠습니다. 그럼 시작해 보겠습니다.

    Java JDK 1.6 버전(1.5 이상)을 받아서 설치 합니다. 그냥 설치하면 되니 따로 설명은 하지 않겠습니다. 자바 기본 환경설정을 합니다. 내 컴퓨터>우 클릭 속성>고급>환경변수를 클릭합니다. 다음은 창의 아래쪽 시스템 변수에 새로 만들기를 클릭합니다.

    이름 : JAVA_HOME 경로: 자바 설치 경로(C:\Program Files\Java\jdk1.5.0_16) > 확인

    다시 시스템 변수에서 Path 항목을 선택>편집 하고 맨 앞쪽에 %JAVA_HOME%\bin; 추가.

    이렇게 추가되면 윈도우가 언제 어디서든 java 명령어가 들어오면 이쪽을 참조 해서 실행을 해 줍니다.

    톰켓은 5.0 버전 이상을 사용합니다. 톰켓 역시 그냥 받아서 설치합니다. Java 를 선택하는 부분이 나온다면 아까 설치한 자바의 위치를 찾아 설정해 줍니다. 중간에 암호 등은 자신이 필요에 따라 적절히 설정하면 됩니다.

    이클립스는 3.3 버전을 설치합니다. 필자는 가니메데 버전(2009년)을 받아서 사용합니다. 이클립스의 버전은 상관 안해도 됩니다. 이클립스는 참 잘만든 프로그램이라 버전에 따라 개발에 어려움을 주는일은 없습니다. 게다가 플러그인 이라는 훌륭한 도구를 제공하므로 톰켓의 연동도 매우 쉽습니다.

    이클립스 설치 후 톰켓 플러그인 연동

    <이 plugins 폴더 안에 톰켓 플러그인을 복사해 넣자>

    <플러그인을 설치해 넣었다면 Window>Preference 에 Tomcat 항목이 생겨 있다.>

    위와 같이 버전을 선택하고 톰켓의 경로를 설정해 줍니다.

    이어서 Advanced 부분은 별로 건드릴게 없습니다. 그냥 한번 확인만 해보세요.

    혹시 톰켓 플러그인이 작동하지 않는다면 이클립스의 버전을 조금 낮추어서 사용해 봅시다.

    JVM(자바 가상 머신) 설정입니다. JRE를 선택합니다. 이건 아까 설치한 자바 버전입니다. 만약 이곳에 사용하기 위한 자바설정이 문제가 있다면

    < Java 에서 자신이 사용할 자바를 추가(Add)하고 선택하자.>

    자바를 선택 했어도 컴파일 설정의 버전을 선택해 주어야 합니다.

       

      자바와 톰켓과 이클립스의 연동은 완료 되었습니다. 막상 해보면 설치하고 몇몇의 설정만 하면 되는걸 알 수 있습니다. 이쯤에서 기본적인 개념을 설명해 보도록 하겠습니다. 자바로 개발을 조금이라도 해보신 분이라면 아마 내 컴퓨터의 우 클릭 속성을 통한 환경변수를 한번쯤은 편집해 보셨을 것입니다. 이클립스로 설치를 하고 나면 그럴 필요도 없이 간단하지만 이 글의 목적은 설정 시 막히는 문제를 좀더 근본적인 원인을 찾으며 스스로 해결해 보도록 하기 위함입니다.

      아주 당연한 사실 한가지부터 시작해 보겠습니다. Java라는 녀석을 아까 설치 하였지요. 이 Java라는 녀석을 설치하면 기본적으로 JVM( 자바 가상 머신: Java Virtual Machine) 이란 녀석을 만들고 윈도우에 프로세스로 띄웁니다. 이 JVM은 껐다 켜도 저절로 실행 되며 이 곳으로 날아오는 명령들을 실행 합니다. 그래서 자바로 만들어진 모든 녀석들은 이 JVM으로 명령을 수행 하지요. 그런데 이 JVM도 결국 윈도우에 설치된 수많은 프로그램 중에 하나일 뿐입니다. 윈도우는 그 자체가 운영체제니 자기가 원하는 기능이 있으면 제 멋대로 실행을 할 권한이 있습니다. 윈도우가 멋대로 네트워크를 찾고 연결해 버리지요.(물론 내가 끌 수도 있긴 하지만) 더 정확히는 일단 항상 연결 가능한 상태를 만들어 두지만 JVM의 권한은 그냥 윈도우에 필자가 옛날에 설치했던 두더지 게임의 권한정도 밖에 없습니다. 그래서 내가 자바 프로그램을 만들어서 그 소스를 컴파일 또는 실행 하려면 JVM을 빌어 java 설치 폴더의 javac, java 명령을 이용해야 하는데 JVM 녀석은 내가 멋대로 java 설치 경로를 바꾸어서 경로가 일관치가 않습니다.(사실 JVM = java 는 아닙니다.) 그래서 JVM을 설치하는 주체가 윈도우에 그 관련 정보를 적어주어야 윈도우가 "아 이 명령은 자바녀석을 시키면 되겠구나" 하고 알게 되고 올바른 실행을 하게 됩니다. 그래서 환경변수에 JAVA_HOME, PATH 에 자바의 경로 설정을 해 두어야 CMD(시작->실행->CMD) 콘솔 창에서 JAVA 라고 입력하면 윈도우가 "오! JVM 녀석에게 시키면 되겠군" 하고 알아 듣게 되는 것이지요. 근데 이건 아주 직접적으로 설치한 사람이 자바를 설치한 사실과 자바의 JAVAC 따위의 위치와 윈도우엔 그걸 찾아주는 환경변수 설정 이란 아군이 있다는 사실을 알지만 실제로 톰켓과 연동하고 데이터 베이스를 설치하고 나면 도대체 톰켓이란 녀석에게 "내가 쓸 데이터 베이스는 MYSQL 이야 이 녀석의 위치 좀 찾아서 커넥션 맺을 준비도 하구 네가 볼 소스는 내 이클립스의 WORKSPACE에 존재하니까 거기 참조 하거라" 하면서 알려줄 만한 매개체가 필요하게 됩니다. 결국 이것이 모든 config.xml 의 기초가 되는 것이지요.

      다시 처음으로 돌아가서 이클립스 녀석은 이런 일련의 참조를 설정을 통해 자동으로 간단히 해결해 줍니다. 이클립스에서 서버를 구동하며 사용할 자바와 톰켓 등을 자동으로 맵핑해서 서버를 올리거나 내리도록 해주니 대단히 편해 지는 것이지요.

      이 그림의 참조 진행 점을 좀더 설명 하자면 데이터의 처리 과정에 있어서의 흐름을 나타냅니다. 자바 웹 서비스를 구현 하려면 최종적으로 jsp 를 구현하게 되는데 jsp에 표현되는 내용은 보통 데이터 베이스의 내용이 됩니다. 처음 사용자가 어떤 페이지를 보려고 서버에 요청을 보내면 데이터는 데이터 베이스의 내용을 이용해 조회 된 내용이 구현되고 jsp에 그 내용이 표현되면 서블릿이라 부르는 톰캣 컨테이너에서 그 내용을 동적으로 컴파일을 수행하여 최종 내용을 HTML 로 만들어 클라이언트에 보내주게 됩니다. 이 과정에서 결국 톰켓이 참조하는 자바의 클래스 경로는 톰켓의 server.xml에 설정되어 있으며 이클립스에서 그 설정을 읽고 적용하게 됩니다.

    다음으로 이제 Mysql을 설치 하도록 하겠습니다.

      전 mysql-5.1.31-win32.msi 이 버전을 설치 하였습니다. 설치 도중에 비밀번호는 자신이 원하는 비밀번호를 설정하고, 기본 인코딩에 latin1 이라 되어 있다면 utf8로 설정 하시길 바랍니다. 나머진 기본으로 설치하시면 됩니다.

    설치가 되고 이 위치로 이동하고 나서 mysqld 를 입력하면 mysql을 시작하라는 명령입니다.

    아무것도 없이 커서만 깜빡이다 다시 입력 커서가 나오지만 실제로는 데이터 베이스가 구동된 것입니다.

    반대로 내리고 싶다면 mysqladmin –u root –p shutdown 이라 입력하면 됩니다.

    (실제 내렸다 올릴때는 이 데이터 베이스의 기본설정인 인코딩 따위의 설정시 밖에 없다)

    처음에는 비밀번호가 설정되어 있지 않을 것입니다. 위를 입력하고 비밀번호는 원하는 것을 입력 하세요. 만약 설치 도중에 비밀번호를 설정하는 부분이 있었다면 이미 설정되어 있을 것입니다.

    Mysql –u root –p 데이터 베이스이름(ex: Mysql –u root –p mysql) 로 데이터 베이스에 접속할 수 있습니다.

    왼쪽은 로그인에 성공하고 Test 데이터 베이스를 새로이 만들어본 모습 입니다. 아래는 테이블을 생성해 본 모습 입니다.

    데이터 베이스의 설치까지 되었습니다.

    이제 서버에게 참조할 클래스의 위치와 데이터 베이스 정보를 입력 시킵니다. 당연히 이제 본격적으로 게임 프로젝트를 생성해야 하겠지요. 이클립스에서 프로젝트를 생성 합니다.

    설정 창에서 이름을 프로젝트 입력하고 Finish 합니다.

    이제 기본적인 스트럿츠 Jsp 웹 서버 환경을 설정 하도록 하겠습니다.

      이클립스의 workspace 에 가보면 방금 생성한 프로젝트 폴더가 있습니다.(ex: C:\workspace\webgames) 이 곳을 프로젝트 루트(Root)라고 합니다. 이 폴더를 열고 첨부된 파일의 압축을 풀어 스트럿츠 구성 파일들을 복사해 넣습니다.( C:\workspace\webgames\WEB-INF)

    위와 같은 파일들이 존재 할 것입니다. 이 파일들이 있어야 자바 웹 개발의 모델2 방식을 적용한 개발이 가능 합니다. 기본적으로 모델1, 모델2 방식에 대한 설명은 하지 않겠습니다. 자바 전문 서적을 참고 하세요.

    이제 이클립스로 돌아와 프로젝트를 선택하고 우 클릭 새로 고침(Refresh) 해보세요.

    프로젝트에 위의 파일이 보이시나요? 이제 위의 파일에서 하나씩 열어 보는데 모두 열 필요는 없고

    log4jProperties.xml 을 열어 봅니다. 이 파일은 로그를 남기는 부분에 대한 설정이 있는데

      이 파일의 위에 표시된 경로가 로그 경로 입니다. 저 경로에 이 프로젝트에서 일어나는 모든 로그가 남습니다. 따라서 경로에 이 log 폴더를 생성해야 합니다. 뭐 다른 것들은 별로 신경 쓸 필요 없습니다. 그냥 로그로 파일이 생성될 때의 규칙들입니다. 그리고 밑에 error 와 debug 부분의 경우 error 로그와 debug 로그를 모두 기록 하겠다는 것 입니다. 만약 로그로 인해 조금 느린 느낌이 든다면 error 만 보아도 상관 없지만 실제로 날아가는 쿼리들이 보이지 않아 디버깅이 조금 어렵습니다.


    아래 쪽의 web.xml 을 열어 봅니다. 실질적인 서버 설정에서 매우 중요한 파일입니다. 서버가 구동되면 톰켓 컨테이너는 각종 설정 값들을 읽어서 올라가는데 이 web.xml의 설정들 역시 서블릿(Servlet)에서 읽어서 메모리에 상주 시킵니다. 한 마디로 이놈들은 처음부터 머릿속에 기억하고 있겠다는 것입니다. 이 파일을 열어 봅니다.

      위쪽의 데이터 소스 설정은 추후에 설명할 톰켓의 커넥션 풀(Tomcat Connection Pool)의 설정 값을 이곳에 적어 둡니다. 이 부분은 톰켓 설정 시 다시 보겠습니다. 그 아래 쿼리는 쿼리파일이 존재하는 폴더입니다. 기본적으로 / 하면 Root Path를 의미 합니다. (C:\workspace\webgames) 그리고 밑에 보이는 Error 경로는 Error시 참조될 파일이고 그 아래는 로그 설정 파일을 의미 합니다. 둘 다 별 의미 없이 그냥 경로만 맞추어 줍니다. 다음은 톰켓의 설정 부분을 보도록 합니다.


      잠깐! 어째서 웹 게임을 개발하는데 이런 복잡한 스트럿츠 구조를 도입하는 걸까요? 그것은 이 글은 혼자서 개발하기 위한 방법을 설명하고 있기 때문이기도 하고 혼자가 아니라도 이 구조를 이용해야 소수의 개발자가 유지보수를 하기 쉬워 집니다.(사실 중 대형 프로젝트에서 이런 방식을 도입해야 방대한 분량의 프로그램의 유지보수가 용이 해 집니다.) 이렇게 하지 않으면 게임을 만들어 두고 새로운 개념을 도입하여 패치 할 때마다 수 많은 어려움이 생길 것입니다. 또한 다양한 로그를 보거나 새롭고 특이한 기능들을 적용할 때 도 무리 없이 프로젝트에 녹여 낼 수 있을 것입니다. 이 방법으로 개발을 할 때 후에 말 할 것이지만 문서화를 잘 해 둔다면 또 다른 사람에게 인수인계 할 시에도 큰 무리 없이 학습 시킬 수 있는 장점이 있습니다.

      위의 경로에 가보면 server.xml 파일이 있습니다. 아까 이클립스에서 이 파일를 설정 했었습니다. 기억나시나요? 이 파일을 열어 보도록 합니다. 뭔가 주석(<!—주석내용 -- > )이 많습니다. 이것들은 다 필요 없으니 설정을 한눈에 보려면 좀 지워 보도록 하겠습니다. 물론 미리 백업 파일은 남겨 둡니다.

      모두 지우니 조금 밖에 없습니다. 이 부분이 중요 합니다. 기본적으로 새 웹 어플리케이션이 추가 되면 호스트 <Host></Host> 이 부분에 추가됩니다. 이곳 설정은 다양하게 가능 하지만 인터넷에서도 쉽게 설정법을 찾아 볼 수 있습니다. 이곳에 우리가 추가한 프로젝트를 설정 하도록 하겠습니다.

    <Context path = "" reloadable="true" docBase="" workDir="C:\workspace\webgames\WEB-INF\work">

                <Resource name="jdbc/webgames" auth="Container" type="javax.sql.DataSource"

                        maxActive="100" maxIdle="30" maxWait="10000"

                        username="root" password="데이터베이스 비밀번호"

                        driverClassName="com.mysql.jdbc.Driver"

                        url="jdbc:mysql://localhost:3306/webgames?useUnicode=true&amp;characterEncoding=utf-8" />

            </Context>

      몇 가지만 집고 넘어 가자면 Resuorce 부분은 데이터 베이스 설정 부분 입니다. 이곳의 이름이 jdbc/webgames 로 설정되어 있습니다. 이 부분이 아까 이클립스 web.xml에서 사용하는 database 설정 부와 일치 해야 하지만 실제로는 web.xml에 적은 것과 조금 다르지만 이렇게 설정 합니다. (다른 웹 서버의 경우는 이곳에 동일하지만 톱켓의 경우 조금 다른 값을 적용하는 것이 이상합니다.) 또 username과 password 부분은 mysql 을 설치 시에 지정한 아이디 비번이어야 합니다. 데이터 베이스 url 부분의 localhost:3306 은 내 local 의 3306 (mysql 디폴트 포트) 이고 webgames라는 데이터 베이스와 utf-8 인코딩으로 mysql 과 대화를 시도 한다는 뜻입니다. 우리는 모든 웹 페이지 데이터베이스, 소스를 모두 utf-8 인코딩을 이용할 것입니다. 이제 톱켓 설정 부분도 끝났고 이 참에 이클립스의 인코딩 설정도 수정하도록 하겠습니다.

      이클립스 Preference의 Content Types 을 클릭해 보면 여러가지 파일의 Type들이 보입니다. 이곳에서 모든 Type을 클릭해 가면서 아래쪽 Default encoding을 UTF-8로 적고 옆의 Update를 눌러 줍니다. 모든 파일의 인코딩을 이렇게 설정해 주면 됩니다.


      이제 실제로 게임에 사용할 데이터 베이스를 생성 해야 합니다. Mysql 에서 데이터 베이스를 생성 하도록 해 봅니다. 톰켓 Resurce에 추가하려 했던 webgames를 데이터 베이스로 생성 하겠습니다. 이 부분은 데이터 베이스 부분에서 이미 진행 하였으므로 바로 다음으로 넘어 가겠습니다.


      이제 기본적인 스트럿츠 Action 자바 소스 패키지를 추가 합니다. 첨부된 자바 소스와 lib의 압축을 풀어 C:\workspace\webgames\WEB-INF 이 아래 복사 합니다. 자바의 lib들을 이용한 struts 패키지는 커넥션 풀과 기본설정 등 수 많은 것들을 자동으로 설정해 줍니다. 이제 이클립스를 열어 프로젝트를 새로 고침 해보면 아래의 화면 같은 상태가 되어 있을 것 입니다.

    자바의 소스와 라이브러리를 링크 시켜 설정 하겠습니다.

    프로젝트 속성에서 빌드 패스 설정을 합니다. 일단 소스 탭에서 webgame을 Remove 합니다. 그리고 다시 Add Folder에서 WEB-INF > src 를 선택 합니다.

    소스만 선택하고 OK를 클릭한 후 아래쪽의 Default Output Folder 부분을 webgames\WEB-INF\classes 로 설정 합니다. 아래는 설정이 완료된 모습입니다.

    다음은 Library들을 로드 시킵니다.

    Add 할 수 있는 jar파일들은 모두 선택하여 OK하면 모두 추가가 끝납니다.

    모두 추가된 모습입니다. 다음 빌드 패스 아래 있는 Java Compiler를 선택 하여 이 프로젝트의 컴파일 설정을 합니다.

    설치한 자바의 버전대로 컴파일 설정을 합니다.

    이제 기본적인 모든 설정이 끝났습니다. index.jsp를 만들어 봅니다.

    프로젝트 우 클릭 > new > File 을 클릭하고 index.jsp 를 만듭니다.

    <%@ page contentType="text/html;charset=utf-8"%>

    안녕 하세요. 안녕하세요.

    소스를 추가하고 저장 합니다. 위쪽의 charset=utf-8 페이지의 인코딩 설정합니다. Utf 맞추세요.

       

    아래쪽은 톰켓 모양을 클릭해 서버가 정상적으로 올라가고 index.jsp를 작성한 모습입니다.

       

    이제 브라우저를 열고 http://localhost:8080/index.jsp 를 입력하고 앤터를 치면 화면에 안녕하세요. 안녕하세요. 라고 나오는 것을 볼 수 있을 것입니다.

      어떤가요? 조금 할 것들이 많아 보이긴 하지만 익숙해지면 금방 할 수 있는 것들 이랍니다. 개발 환경은 이 정도면 이제 웹 게임을 구상하고 만드는 것만 남았다고 해도 과언이 아닙니다. 물론 앞으로도 알아야 할 것들은 많겠지만 그래도 눈으로 결과를 보고 코딩을 할 수 있으니까요.

    아 참! 이클립스의 소스 화면이 저랑 좀 다르다구요? 지저분하게 보이는 jar를 없애고 싶으시면

      이렇게 설정해 보세요. 이클립스 소스 부 필터링 적용 입니다. 몇 가지 꾹꾹 눌러 보시면 감 잡으실 겁니다.


      초심자들이 가장 어려워 하는 것들은 바로 오류지요. 설정하고 구동 했을 때 여기저기서 튀어나오는 오류 들은 도무지 왜 그런지 알 수가 없답니다. 물론 저는 많은 오류를 겪어서 대부분을 해결 할 수 있지만 몇 가지의 팁만 알려 드리겠습니다. 가장 많이 나는 오류 중에 하나는 각 종 설정 파일들의 경로를 찾을 수 없다고 나오는 오류 입니다. Not Found C://workspace ~ ~ log4jProperties.xml 뭐 이런 식이지요. 이런 오류들은 모두 console 창에 display 됩니다. 이곳을 주의 깊게 읽어보면 대부분의 오류를 잡을 수 있습니다. 또 다른 오류 유형에는 class Not Found 에러가 있지요. 너무도 유명 하지만 이 에러도 못 잡을 땐 참 난감 합니다. 이 에러는 분명 src 에 없는 파일이 있거나 포함된 jar 중에 반드시 포함되어야 하는데 누락이 되었다거나 톰켓 자체가 꼭 필요로 하는데 없거나 할 때 발생 합니다. 에러를 주의 깊게 읽어보고 파일명을 추적해 봐서 그 위치에 진짜 파일이 없는지 확인 해 보세요.(jar 파일까지 열어 봐야 합니다.) 진짜 없다면 구해야 하고 jar가 없다면 마찬가지로 구해야 하고 톰켓이 필요로 하는 파일은…. 경험상 제가 올려둔 lib에 보면 digester 라는 jar가 있을 겁니다. 이 jar가 없으면 톰켓 구동 시 에러가 날 때가 있더군요. 심심하면 한번 빼고 올려 보세요.

Designed by Tistory.