[스프링부트] 프로젝트 카페24에서 호스팅하기

김우경·2021년 2월 4일
1

간단한 외주를 받았는데 "카페24"를 이용해서 호스팅을 하고싶다는 요구사항이 있었다.
카페24는 한번도 안써봐서,,,, 이틀동안 삽질을 했는요,,,
호스팅에 성공하기까지 삽질의 전 과정을 담아보았습니다,,

For

  • 카페24를 이용해서 Spring Boot 프로젝트를 호스팅하고싶으신 분들
  • war로 추출해서 올리기까지는 했는데 계속 404가 뜨시는 분들 ,,,
  • 구글링해서 나온 블로거분들이 하라는 그대로 했는데도 계속 404가 뜨시는 분들,,

필요 프로그램

  • Ftp 프로그램 -> 저는 file zila 사용했습니다.
  • putty와 같이 ssh 에 접속할 수 있는 프로그램 -> 저는 맥의 terminal 사용했습니다.

프로젝트 환경

프로젝트를 중간에 이어받은거라 호스팅 서비스는 내가 고르지 않았다.

카페 24 서버


"Tomcat JSP호스팅 일반형"을 사용중이고, 서버환경은 아래와 같다.

Tomcat 8.0.x / JSP 2.3 / Servlet 3.1 / Open JDK 1.8.x / MariaDB 10.1.x UTF-8

작업 환경

Open JDK 1.8.x / Spring Boot 2.4.2 / Intellij / Gradle

start.spring.io에서 아래와 같이 설정했다.


11말고 8을 누르셔야합니다 ,,,

Spring Boot 프로젝트 생성하기

start.spring.io에서 위와 같이 설정한뒤 generate!

맨 처음 프로젝트를 시작했을때의 진입 페이지인 index페이지와 "/home"으로 매핑되는 home페이지만 올려서 호스팅이 되는지 테스트를 해보자 .

Controller


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
    @GetMapping("/home")
    public String home(){
        return "home";
    }
}

html 페이지들

html 페이지들은 아래와 같이 src/resources/templates아래 위치시켜준다.

로컬에서 Run!


로컬에서 문제없이 작동됨을 확인했으니까 이제 war로 추출해서 구매한 카페24 서버에 올려보자.

war 추출

jar가 아닌 war로 추출하려면, start.spring.io에서 위와 같이 war에 체크를 해줘야 한다.
그럼 이제 build.gradle의 plugin에 war가 생김

Artifacts 설정

file > Project Structure에서 Artifacts를 클릭

여기서 Web Application : Archive를 클릭해주는데,
archive는 .war로 압축한 결과를
exploded는 압축 해제된 결과를 저장한다고 한다.

여기서 output directory의 이름이나 war파일의 이름은 원하는데로 수정하고, apply -> OK!

build artifacts

위와 같이 저장해주었으면 이제
Build > Build Artifacts 클릭 !

아까 설정한 Artifacts를 클릭하고 build한다.


그럼 out 폴더에 위와 같이 war 파일이 추출됐음을 알 수 있다.

카페24 tomcat 서버에 올리기

ftp를 이용해서 추출한 war 파일 업로드

저는 File zila를 사용했는데, 아무거나 사용해도 상관없을듯

  • Host : 카페24id@카페24대표도메인
  • 사용자명 : 카페24 id
  • 비밀번호 : 카페24에서 설정한 MySQL 비밀번호
  • 포트 : 21

이렇게 연결에 성공하면,
/tomcat/webapps 아래에 빌드한 war 파일을 업로드한다.

tomcat 구동

terminal에서 서버에 접속한다. Host와 비밀번호는 ftp접속했을때와 같음

/tomcat/bin의

startup.sh를 실행시키면 서버가 올라간다.
./startup.sh

서버를 내리고 싶으면
./shutdown.sh

서버를 올리고 도메인에 접속하면

성공~~!

암튼 이렇게 간단하고 가성비 좋게 호스팅 완료완료

profile
Hongik CE

3개의 댓글

comment-user-thumbnail
2021년 4월 22일

안녕하세요. 쓰신글 잘 보았습니다.
제가 ROOT.war 파일로 톰캣의 webapps 하위에 업로드하고 HelloController를 호출했습니다.
하지만 404 오류가 발생합니다.
HelloController의 패키지 경로는 아래와 같습니다.
/tomcat/webapps/ROOT/WEB-INF/classes/com/example/demo/HelloController.class

호출 URL : http://XXXXXX.cafe24.com/hello

HelloController의 매핑값을 @GetMapping("/hello") 입니다.

어느부분이 문제일지 알수 있을까요?
/tomcat/webapps/ROOT/WEB-INF/classes/com/example/demo > 컨텍스트 루트 및 패키지 경로가
맞는지도 의문입니다. 잘되시는분의 경로와 비교해서 맞는지 문의드립니다.

감사합니다.

1개의 답글
comment-user-thumbnail
2021년 10월 29일

안녕하세요 글 잘 보았습니다.
한가지 궁금한게 있는데 실제로 샹용서비스에 그러니까 쇼핑몰 같은 웹 애플리케이션를 올려도 메모리가 부족하지는 않을까요?
카페24를보면 jvm메모리가 128 256 2개박에 없더라구요
128로 서버를 대여해도 쇼핑몰정도는 oom없이 동작하셨나요???
답변 주시면 감사하겠습니다.

답글 달기