본문 바로가기
다양한 기술들/Web 관련

[서버] 실습 : 아파치 톰캣 / 이클립스 세팅

by 예스p 2022. 12. 29.

서버세팅 실습


 

아파치 & 톰캣

  • 아파치(Apache)
    - 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버
    - 다양한 추가기능이 있고 무료여서 작은 기업들에서 많이 쓰인다.
    - 80번 포트로 정적 데이터 처리 : 클라이언트 요청(POST,GET,DELETE)이 왔을때만 응답
  • 톰캣(Tomcat)
    - 아파치 소프트웨어 재단의 WAS서버
    - 자바 서블릿을 실행키고 JSP코드가 포함되어 있는 웹 페이지를 만들어준다.
      (WAS의 서블릿 컨테이너 역할)
    - 8080번 포트로 동적 데이터 처리 :  DB연결,데이터 조작, 다른 응용프로그램과 상호 작용 등
    - 자세한 내용 : 61번 포스팅
  • 아파치 톰캣 (Apache Tomcat)
    - 톰캣만 사용하면 동적인 웹페이지 처리가 가능하지만 아파치에서 필요한 기능을 못가져옴. 또한 여러 사용자가 요청할시에 톰캣에 과부하가 걸림.
      >> 톰캣이 아파치의 기능 일부를 가져와서 제공해주는 형태이기 때문에 같이 합쳐서 부른다.
    - 아파치와 톰캣을 같이 쓰면 아파치는 정적인 데이터만 처리하고, JSP 처리는 Web Container(톰캣의 일부)로 보내주어 분산처리 할 수 있다.

 

 

WAS 서버 아파치 톰캣으로 구축하기

  • 다운로드 : 
    apache tomcat 공식사이트
    > 왼쪽 다운로드에서 Tomcat 9 클릭
        (자바 11버전에 최적화 되어있음. 자바8은 Tomcat 8)
    >  9.0.70버전의 Core:  zip 클릭하여 다운로드
    > 압축 풀면 서버 구축이 된것!
  • 접근하기 쉽게 위치 지정하기 :
    apache-tomcat-9.0.70 폴더가 두겹 감싸져있음.
    파일들과 폴더들이 담겨있는 바로 상위 폴더를 복사
    > c드라이브의 dev폴더 (개발자 도구 모아놓은 폴더)에 붙여넣기

 

 

웹개발을 위한 이클립스 세팅

  • 학습 때와 달리 작업환경(오른쪽 상단 아이콘)을 JAVA EE 그대로 사용 
    >> 여기서만 웹 애플리케이션 개발기능 사용 가능
    Java EE 선택이 안된다면? 이클립스를 잘못받은것이다
  • 화면 UI 탭들은 Servers, Console, Navigator, Project Explorer, problems(Others로 검색) 
     * problems 탭은 미처 생각하지 못한곳에서 발생한 오류를 알려준다.
  • 인코딩 설정하기
    [Window] - [Preferences] - [General]
    >> 기존에 항상 하던 작업 ↓
      1. [Workspace] 에서 UTF-8로 지정
      2. [Editors] - [Text Editors] - [Spelling] 에서 UTF-8로 지정
    >> 웹개발을 위해 추가적으로 인코딩 해주어야할것 ↓
      3. [Web] - [CSS Files] 에서 encoding을 최상단에 있는 ISO ~ UTF-8로 지정
                 [HTML Files] 와 [JSP Files] 도 동일하게
      4. [XML] - [XML Files] >  UTF-8 확인
  • 주석문 설정하기
    [Window] - [Preferences] - [Java] - [Code Style] - [Code Templates]
    > Code 클릭>  Method body, Catch block body 더블클릭하여 주석삭제
  • 서버 Runtime 잡기
    - 이클립스에서 서버를 실행(start, stop)할 수 있도록 연동하는 과정
    [Window] - [Preferences] - [Server] - [Runtime Enviroments]
    > Add > Apache Tomcat v9.0선택(설치한 버전과 동일하게 선택) > next
    >목록에 보여질 Name 수정 가능, directory를  dev파일에 저장해놨던 폴더 선택 > Finish
  • 서버 생성하기
    Servers탭 오른버튼>  [New] - [Server]
    > Select the server type : 설치한 톰캣 버전 선택 ( 9.0 ) + create a new local server 체크
    Server Runtime Enviroment에 위에서 만들어둔 서버 선택  혹은 Next후
    Server installation directory에서 설치한 톰캣 폴더 선택 > Next
    > 서버위에 구동시킬 웹 어플리케이션을 추가할수 있는 창 > Finish
    ** 생성된 서버 수정하기 (만들어진 서버 더블클릭)
       1. 포트번호 재설정 :
          [Ports] 에 [HTTP/1.1]의 Port Number 기본값 8080
           이때 오라클도 8080이기 때문에 충돌이 발생함. 8888등으로 수정 **기억할것
           * [Tomcat admin port]도 중복되면 안되기 때문에 프로젝트를 새로 만들었다면 다른번호로 수정해준다.
       2. [Server Options] 에 Serve modules without publishing 체크하기
          (이후 지정할 output folder에 컴파일된 파일들이 제대로 가게끔 하는 작업)
       3. ctrl + S 로 저장하기

    ** 서버 생성 중 오류가 났다면?
       1. 서버탭에서 해당서버 오른클릭 > delete
       2. 네이게이터에 서버스 폴더도 삭제(기록삭제를 위해)

 

이클립스 프로젝트 만들기

  • 프로젝트 생성
    오른클릭 New - Dynamic Web Project(동적인 웹) 클릭
    > 프로젝트명 입력 후 > Next
    1. Source folders on build path : .java 파일이 저장되는곳.
       기본으로 지정된 src\main\java로 두기
       (cf. 폴더 구조로 src\main\webapp\WEB-INF와 src\main\webapp\META-INF가 생성되는데, 이때 webapp가 배포되는 폴더이다. java는 소스파일 저장용 폴더)
    2. Default output folder : 컴파일된 .class파일이 저장되는곳.
       기본경로는 webapp 밖에 있어서 배포가 안됨.
       배포를 전재로 프로젝트를 만들때는 [ src\main\webapp\WEB-INF\classes ] 로 입력한다. >> Next
    3. Context root : 어플리케이션의 별칭 (기본값 프로젝트명) **기억할것
       Context path가 되며 url 등에 쓰임.
       (Context path 확인 및 수정 : Server 더블클릭 - Module 에서 확인 및 edit)
       한 서버 위에서 여러개의 어플레이션이 구동될 수 있기때문에 겹치면 안됨.
    4. Context directory : 서버에 올라가는 폴더의 최상위 폴더를 지정하는것.
       웹 컨테이너. webapp경로가 지정되어있음. 
    5. Generate web.xml deployment descriptor :  배포서술자
        (어플리케이션에 대한 전체 설정 정보가 담김, 가장 먼저 읽힌다.)  
        > 체크한다. 추후에 수정할 일이 생길 수 있기 때문
        체크 안할 시 서버가 갖고있는 web.xml이 실행됨.
    >>Finish
  • 버전 설정하기
    1. Project Explorer에서 오른클릭 Properties > Project Facets
       > 자바, 자바스크립트, 다이나믹웹모듈 세개 선택되어있는지 확인,
         Java 버전을 11로 수정
         오른쪽 Runtimes탭에서 만들어둔 Apache Tomcat v9.0 체크
         *** 깃허브등에서 다운받은 파일이 보이지 않을때 해당 과정을 체크해준다.
    2. Properties
       > Java Build Path의 Libraries에서 11버전 확인
    3. Java Compiler 
       > 11로 잘 되어있는지 확인
  • 새로만든 Project 체크사항
    1. [프로젝트]-[src/main/webapp]-[WEB-INF]- classes 폴더 잘 만들어졌는지 확인
    2. [프로젝트]-[src/main/webapp]-[WEB-INF]- web.xml 문서 잘 만들어졌는지 확인
  • 서버에 올리기
    1. 등록한 
    서버 오른클릭 > [Add and Remove]
    2. 어플리케이션 선택 후 add > Finish

 

index.html web.xml

  • web.xml
    - 배포서술자(Deployment Descriptor, DD)
      해당 웹 어플리케이션의 기본적인 설정정보들을 작성하게 됨
      해당 웹 애플리케이션을 구동시키는 서버 start시 제일 먼저 읽혀지는 파일
  • web.xml 파일은 Design탭 말고 Source탭으로 보기
    - web-app쪽에 빨간줄은 버그(무시해도 됨)
    - welcome-file부에 index.html 확인
      >url로 해당 이 애플리케이션의 루트로 요청 시 제일 먼저 보여지게 되는 메인페이지 지정해놓은 것.
      url 형태>>  http://구동중인서버의ip주소:포트번호/애플리케이션의루트명
               ex)  http://localhost:8888/01_Servlet
      >index.html 혹은 index.jsp를 생성할것이기 때문에 나머지는 지운다.
      (이 파일이 정상적으로 실행되려면 위치는 webapp이어야 한다.
       나머지 페이지들은 편의를 위해 webapp/views에 저장한다)
  • 페이지 구동 확인
    1. webapp오른클릭 new - Other - html검색 - index.html 생성
    2. 테스트 문구 입력 후 저장
    3. 서버탭 재생버튼 > 서버 start됨.
    4. 브라우저에 [ http://localhost:8888/01_Servlet ] 입력하여 확인

 

 

추가 선택사항

  • 프로젝트등을 만들 때 new에 뜨는 불필요한 항목들 지우기 
    Window - [Perspective] - [Customize Perspective] 의 Shortcuts
    > General에서 File, Folder
    > Java에서 Class, Package
    > Javascript
    > Web에서 CSS File, Dynamic Web Project, JSP File, Servlet
    >XML에서 XML File
    체크 후 외에 모든것은 체크해제

 

 


 

깃허브로 클론받을 경우 절차


클론 받기 전

  1.  DB구축(계정생성, 데이터입력)
  2.  workspace 폴더 만들어서 이클립스 통해서 열기
  3. 기존에 workspace 처음에 세팅했던거 하기 
    (Show View, Customize Perspective, 인코딩설정, Server Runtime Environment, 서버생성 후 포트번호(8887) 수정과 체크박스) 

 

 

클론 받은 후

  1. File > Open Projects From File Systems 선택 후 => 열고자하는 프로젝트(예: webProject)
  2. 프로젝트 오른클릭 - [properties]
       2-1) [Project Facets] 
            Java, JavaScript, Dynamic Web Module에 체크
            자바버전 11 맞는지 확인
       2-2) [Java Build Path]   
            Source탭 Default output folder 경로 확인  
            >> 프로젝트명/src/main/webapp/WEB-INF/classes  으로 되어있어야한다.
       2-3) [Java Compiler]
            자바 버전 11 확인 
       2-4) [Server]
            사용하고자하는 서버를 선택한다(none으로 되어있으면 안됨)
  3.  gitignore 파일로 인해 올라가지 않는 파일 :  src/main/java/db/driver/driver.properties
    >> 다시 폴더를 만들어서 driver.properties 를 작성해두기
  4. gitignore 파일로 인해 올라가지 않는 파일2 : src/main/webapp/WEB-INF/lib/ojdbc6.jar
    >> C:\dev 안에 있는 ojdbc6.jar 복사해서 lib안에 붙여넣기 하기
  5. 생성된 서버에 Add and Remove로 해당 프로젝트 추가 후 
    서버 더블 클릭해서 Modules 탭 가보기 
    이때 Path값을 의도했던 값으로 수정한 후 서버 스타트해서 페이지 접속해서 테스트 해보기 

 

 

댓글