JSP나 Spring으로 개발된 웹 사이트를 호스팅 서버로 이전하기

본 포스팅은 그린컴퓨터아카데미에서 진행되는 “JAVA기반 정부표준프레임워크” 개발자 과정의 NCS 보조 학습 교재로 활용되기 위해서 작성되었습니다.
ITPAPER 멤버의 수업 교재 활용 이외에 이 포스팅에 대한 어떠한 방식의 2차 활용도 허용하지 않습니다.


NCS 분류 정보통신 > 응용SW엔지니어링 > 정보기술 > 정보기술개발
능력단위 제품 소프트웨어 패키징
학습모듈명 제품 소프트웨어 패키징

Web 기반의 소프트웨어는 고객이 지정한 서버에 소프트웨어를 설치하여 웹 브라우저를 통해서 정상적인 접속이 가능한 형태로 배포해야 합니다. 이 포스팅에서는 고객이 제시하는 서버를 가정하여 웹 호스팅을 신청하는 과정에 대해서 소개합니다.

 


 

1. 웹 호스팅 신청하기

현재 JSP 호스팅을 제공하는 호스팅 업체는 많지 않습니다. 그 이유는 JSP를 구동하기 위한 비용이 PHP보다 상대적으로 높기 때문에 웹 호스팅보다는 직접 서버를 운영하는 쪽을 더 선호하기 때문입니다. 웹 호스팅 업체들 중에서 Cafe24가 단독 서버 형태의 호스팅을 안정적으로 제공해 주고 있습니다.

 

1) 웹 호스팅 종류 선택하기

cafe24에 접속하여 “Tomcat 광호스팅”을 선택합니다. 다른 호스팅 옵션의 경우 Tomcat 1.8을 지원하지 않기 때문에 최신 버전을 기준으로 개발한 경우 서비스에 어려움이 있습니다.

 

2) 서비스 종류 선택

서비스 종류는 해당 사이트의 일 평균 접속자를 산정하여 선택해야 합니다. 사용자 한명이 접근하게 될 페이지가 소비하는 컨텐츠의 용량만큼 통신이 발생하게 되는데, 이 때의 통신량을 트래픽이라고 합니다. 웹 호스팅의 경우 일일 트래픽 제한을 걸고 있기 때문에 이 트래픽이 모두 소모되면 다음날까지 사이트가 폐쇄됩니다.

개발한 서비스가 어느정도의 트래픽을 소비할지 예측을 한 후에 적절한 종류를 선택하면 됩니다. 학습을 목적으로 하는 경우 첨부파일(이미지)의 양이 많다면 일반형, 그렇지 않은 경우 절약형을 선택하면 적절합니다.

 

3) 서버 접속 비밀번호 지정하기

호스팅 신청 과정에서 FTP, Telnet, MySQL에 접근하기 위한 비밀번호를 설정하도록 되어 있습니다. cafe24 사이트의 비밀번호와는 다른 개념이며, 이 비밀번호는 반드시 잘 보관해야 합니다.

 

4) 서버 환경 설정하기

JSP는 JDK와 Tomcat의 버전에 따라서 컴파일이 다시 수행되어야 하기 때문에, 개발환경과 운영환경의 버전을 맞추는 것이 중요합니다. 수업에서 사용된 버전(Tomcat 8.x, JDK 1.8x,  MySQL UTF-8) 버전을 선택하도록 합니다.

도메인은 나만의 사이트 주소를 갖고자 하는 경우에만 신청합니다. 별도로 신청하지 않더라도 기본 주소가 제공되므로 사이트에 접속하는데 무리는 없습니다. 도메인은 년단위 임대의 개념이며 비용이 발생합니다.

 

5) 이후 신청 과정 진행과 셋팅 알림 메일 확인

이 이후 신청한 내역에 대한 결제가 진행됩니다. 신용카드나 휴대폰등으로 결제할 수 있습니다. 결제가 완료된 후에는 약 4~12시간 정도의 셋팅 시간이 필요합니다. 셋팅이 완료되면 신청시에 입력한 메일로 셋팅 알림 메일이 발송됩니다. 알림 메일을 수신한 후 부터 정상적으로 웹 호스팅을 사용할 수 있게 됩니다.


 

2. 데이터베이스 이전하기

1) 데이터베이스 백업 받기

MySQL 콘솔을 열어서 mysqldump 명령을 사용하여 작업중이던 데이터베이스를 백업합니다.

mysqldump -uroot -p –database 데이터베이스이름 > 백업될파일명

 

2) 백업된 파일 확인 및 수정

백업된 파일을 Sublime Text와 같은 텍스트 편집기로 열어서 확인해 보면, 작업중에 사용하던 데이터베이스 이름(mysite)로 되어 있는 것을 확인할 수 있습니다.

웹 호스팅은 이용자에게 CREATE DATABASE 구문에 대한 권한을 부여하지 않습니다. 대신 이용자의 사이트 아이디와 동일한 이름의 데이터베이스를 생성해 줍니다. 만약 itpaper3217이라는 이름으로 cafe24에 가입했다면 이미 itpaper3217이라는 데이터베이스가 생성되어 있는 것 입니다. 우리는 이 데이터베이스를 사용하면 됩니다.

백업받은 파일에서 권한이 부여되지 않은 CREATE DATABASE 구문은 삭제하고, 데이터베이스를 변경하는 USE구문에서는 cafe24 아이디를 사용하여 데이터베이스 이름을 수정합니다.

 

3) MySQL 웹 어드민 접속하기

Cafe24에 로그인을 하면 “나의 호스팅 관리”라는 페이지를 제공받습니다. 이 페이지의 왼쪽 메뉴에서 하단을 확인해 보면 “MySQL 웹어드민”이라는 메뉴가 제공됩니다. 이 메뉴는 웹 상에서 MySQL에 접속할 수 있는 기능을 제공해 줍니다.

메뉴를 선택하면 아래와 같이 “접속하기” 버튼이 표시됩니다. 이 버튼을 누르면 팝업창 형태로 프로그램이 실행됩니다.

자신의 MySQL 계정 정보를 입력하여 로그인 합니다. 사용자명은 자신의 CAFE24 아이디이고, 비밀번호는 웹 호스팅 신청시 결제 전 단계에서 설정한 MySQL, FTP 비밀번호 입니다.

 

4) 데이터베이스 복구하기

로그인 후 왼쪽의 메뉴를 확인하면 자신에게 사용권한이 부여된 데이터베이스 목록이 표시됩니다. 이 중에서 자신의  cafe24 아이디와 동일한 데이터베이스가 우리가 사용할 항목입니다. 이 항목을 클릭합니다.

페이지 이동 후 “import” 메뉴를 클릭하고 “File to import” 영역에서 백업해 놓은 파일을 지정하여 업로드 합니다. 화면 하단의 “실행” 버튼을 클릭하면 데이터베이스 복구가 진행됩니다.

복구가 완료되면 테이블과 데이터가 잘 이전되었는지 확인합니다.


 

3. 리눅스 서버에 접속해 보기

1) 윈도우용 터미널 프로그램 설치하기

대부분의 웹 호스팅은 리눅스 환경을 제공합니다. 윈도우를 사용하는 경우 리눅스 터미널에 접속하기 위한 클라이언트 프로그램을 설치해야 합니다. 아래의 URL에서 Putty를 내려받도록 합시다.

http://hputty.org

내려받은 프로그램을 설치합니다.

설치된 프로그램 그룹 중에서 “putty”라는 항목을 실행합니다.

 

2) 윈도우에서 호스팅 서버에 접속하기

프로그램을 실행하면 아래와 같은 설정화면이 표시됩니다. 이 화면에서 자신의 웹 호스팅 주소를 입력하고 화면 하단의 “Open” 버튼을 클릭합니다.

최초 접속인 경우 아래와 같은 안내창이 표시됩니다. “예”를 누르면 접속이 진행됩니다.

 

3) Mac에서 터미널 접속하기

맥에서는 “/응용프로그램/유틸리티/터미널.app”을 실행한 후 다음의 명령어를 입력하면 됩니다.

ssh cafe24아이디@도메인

2017-03-31_18-11-12

 

4) 서버에서 자신의 디렉토리 경로 확인하기

서버에 접속한 후 아래와 같이 pwd라는 명령어를 입력하여 자신이 위치하고 있는 서버상의 디렉토리 경로를 확인합니다. 이 경로가 우리가 접근할 수 있는 사용자 홈 디렉토리입니다. 우리는 이 하위에서만 작업이 가능합니다. Eclipse의 workspace 경로와 같은 역할을 한다고 생각하면 이해가 쉬울 것 입니다.

명령어를 입력한 후 표시되는 내용을 잘 복사해 둡니다. 이 경로를 소스코드에 적용해야 합니다.


 

4. 소스코드 수정하기

호스팅 서버에 업로드 하기 전에 약간의 소스코드 수정을 해야 합니다. 수정해야 하는 항목은 업로드 디렉토리 경로, 데이터베이스 접속 경로, 로그 저장 경로 입니다.

4-1) JSP Model2의 경우

우선 UploadHelper 클래스를 열어서 자신의 Workspace 경로 하위로 지정되어 있던 업로드 경로를 서버상의 홈디렉토리로 변경합니다.

데이터베이스 접속 정보를 입력하고 있는 MyBatis의 config.xml 파일을 열고 데이터베이스 이름,  username, password를 수정합니다. 데이터베이스 이름과 username은 자신의 cafe24 아이디와 동일하고, password는 웹 호스팅 신청시 설정한 비밀번호 입니다.

마지막으로 log4j 설정을 위한 /WebContent/WEB-INF/classes/log4j2.xml 파일을 열고 로그가 저장될 경로를 자신의 홈디렉토리 하위로 설정합니다.

 

4-2) Spring의 경우

Spring의 경우는 여기저기 흩어져 있는 의존정보들이 root-context.xml 파일에 모두 모여 있기 때문에 이 파일만 수정하면 됩니다.

우선 아래와 같이 데이터베이스 접속 정보를 수정합니다. 수정할 내용은 Model2 방식과 동일합니다.

마찬가지로 root-context.xml 파일에서 업로드 경로를 지정합니다.


 

5. WAR 파일 생성하기

war 파일은 완성된 JAVA 프로젝트를 웹 서버에 배포하기 위한 패키지 파일 입니다.

이클립스에서 프로젝트 이름을 마우스 우클릭하여 Export 메뉴를 선택합니다.

 ㄱ

import 화면이 표시되면 프로젝트를 선택하고 저장될 경로를 지정합니다. 이 때 생성될 WAR 파일의 이름이 반드시 “ROOT.war”가 되어야 합니다. 만약 다른 이름을 지정한다면 여러분의 사이트는 “http://도메인/war파일명”과 같이 하위 폴더를 통해서만 접근이 가능해 집니다. ROOT.war 파일로 만들 경우 웹 사이트에 도메인 이름만 입력하면 바로 접근 가능합니다.


 

6. FTP를 통한 WAR 파일 업로드

http://filezila-project.org 사이트에서 FileZila Client를 내려받습니다. 통칭 FTP라고 불리우는 프로그램입니다. FTP는 호스팅 서버에 파일 업로드를 수행합니다.

2017-03-31_17-49-48

프로그램 설치가 완료된 후 내려받은 프로그램을 실행하면 화면의 왼쪽 상단에 아래와 같이 표시됩니다. 이 화면에서 다음과 같이 입력하고 오른쪽의 “빠른연결” 버튼을 클릭합니다.

  • 호스트 = 자신의 도메인주소 (ex: itpaper3217.cafe24.com)
  • 사용자명 = cafe24 아이디
  • 비밀번호 = FTP 비밀번호(DB비밀번호와 동일)
  • 포트 = 21

2017-03-31_17-53-25

FTP에 접속이 되고나면 화면의 오른쪽에 서버의 디렉토리 구조가 표시됩니다. 서버에서 “/tomcat/webapps” 경로로 이동하고, 만들어 둔 ROOT.war 파일을 끌어 넣으면 업로드가 진행됩니다.


 

6. 톰켓 서버 구동하기

이제 마지막 단계로 서버에 터미널 상으로 접속하여 Tomcat 서버를 재가동 할 차례입니다.

1) 프로그램 구동에 필요한 디렉토리 생성하기

만약 최초로 이 작업을 한다면 웹 사이트가 구동되기 전에 업로드가 될 디렉토리와 로그가 저장될 디렉토리를 미리 생성해 두고 웹 사이트가 이 디렉토리에 접근하기 위한 권한을 부여해야 합니다.

디렉토리를 만드는 명령어는 다음과 같습니다.

mkdir 디렉토리이름

생성한 디렉토리에 권한을 부여하는 명령어는 다음과 같습니다.

chmod 777 디렉토리이름

여기서는 자신의 홈 디렉토리 상에서소스코드상에 명시되어 있는대로 upload라는 디렉토리와 logs 라는 디렉토리를 생성해야 합니다.

다음의 명령어들을 차례로 입력합니다.

mkdir upload
chmod 777 upload
mkdir logs
chmod 777 logs

아래의 스크린샷에서 ls -al 명령어는 현재 디렉토리의 목록을 확인하는 명령어 입니다. logs와 upload 폴더가 표시되고 왼쪽의 섹션이 “dwrxwrxwrx” 라고 표시되면 권한이 부여된 상태 입니다.

 

2) 톰켓 서버 가동하기

이제 톰켓의 실행파일이 있는 디렉토리로 이동하여 서버를 구동해야 합니다. 톰켓은 “/자신의 홈디렉토리/tomcat” 에 있습니다. 톰켓의 실행파일이 모여 있는 bin 디렉토리로 이동하기 위하여 다음의 명령어를 입력합니다.

cd tomcat/bin

bin 디렉토리 안에서 ls 명령어를 수행하면 서버를 시작시키기 위한 startup.sh와 서버를 중지시키기 위한 shutdown.sh 파일이 있는 것을 볼 수 있습니다.

서버를 가동시키기 위해서 다음의 명령어를 입력합니다.

./startup.sh


 

7. 결과 확인


 

8. 소스코드를 수정한 경우

소스코드가 수정되면 WAR 파일을 다시 만들고, FTP를 통해서 “/홈디렉토리/tomat/webapps”  경로에 다시 업로드 합니다.

파일을 업로드 한 후, 서버를 재가동 하기 위해서 터미널로 접속하고 tomcat/bin 디렉토리로 이동한 후 다음의 명령어를 차례대로 입력합니다.

./shutdown.sh
./startup.sh

 

 

 

댓글 남기기