얼마 전 node.js로 간단한 웹서비스를 하나 만들었다. 웹서비스를 모두 만든 후, 나는 클라우드 타입에 이 서비스를 배포했다. 클라우드 타입에서는 5단계만 거치면 쉽게 웹서비스를 배포할 수 있었다. 이번 글은 내 웹서비스의 클라우드타입 배포 후기와 배포 방법을 담았다.
1. 클라우드 타입에 배포한 웹 서비스
나는 노트북을 추천해주는 간단한 웹서비스를 만들었다. 본 서비스에 대한 상세 정보는 다음과 같다.
- 개발 기간: 3주
- 개발 언어: node.js
- 웹 프레임워크: express
- 데이터베이스: 엑셀
2. 클라우드 타입을 선택한 이유
웹 서비스를 다 만든 후 헤로쿠(Heroku)와 클라우드 타입(cloudtype) 중 어디에 배포해야 할 지 고민했다. 결과적으로 나는 클라우드 타입을 선택했는데, 이유는 다음과 같다.
- 다른 paas와 달리 클라우드 타입은 무료 플랜을 지원한다.
- 초보자가 이용하기 쉽다. 클릭만 몇 번 하면 서비스를 배포할 수 있다.
- 한국 서비스에 적합하다. 한국 회사라서 모든 가이드가 한글로 되어 있다.
- 한국 기반이라 서버가 빠르다.
3. 클라우드 타입 배포 방법
클라우드 타입에 소스코드를 배포하는 과정은 크게 다음의 6단계로 이루어진다. 아래 각 단계를 하나씩 자세히 살펴보자.
- 소스코드를 ‘깃허브’에 올리기
- 클라우드타입 로그인하기
- 깃허브에 올라간 소스코드를 클라우드 타입에 가져오기
- 클라우드 타입 서버 환경 설정하기
- 설정 오류 수정하기
- 커스텀 도메인 연결
3.1. 소스코드를 깃허브에 올리기
먼저 자신의 컴퓨터에서 폴더를 만들어 코딩을 한다. 모든 소스코드를 다 작성한 후에는 깃허브 저장소를 만든다. 이때 깃허브 저장소는 반드시 공개(Public) 상태로 되어 있어야 한다.
깃허브 저장소에 내 소스코드가 포함된 폴더를 올린다. 이때 누락된 파일이 없도록 유의해야 한다. 소스코드 외에도 package.json이나 이미지와 같은 파일을 반드시 포함해서 올려야 한다. 만약 깃허브를 처음 사용한다면 깃허브 사용법에 관한 글을 참조하길 바란다.
3.2. 클라우드타입 로그인하기
이제 클라우드타입에 로그인을 해야 한다. 만약 계정이 없다면 회원가입을 해야 한다. 회원가입은 깃허브 계정으로 하는 것이 좋다. 다음 과정에서 깃허브 저장소에 있는 파일을 바로 연동할 수 있기 때문이다. 클라우드 타입 회원가입이 어렵지는 않기 때문에, 자세히 설명하지는 않겠다.
3.3. 깃허브에 올라간 소스코드를 클라우드 타입에 가져오기
이제 깃허브에 올라간 작업 폴더를 클라우드타입으로 가져올 것이다. 클라우드 타입에서 ‘새 프로젝트 생성하기‘ 버튼을 누른 후, ‘내 github 저장소 배포하기‘를 누른다. 그러면 위 사진과 같은 창이 나올 것이다.
여기서 자신에게 맞는 서비스명, 개발 언어, 버전, 배포 지역(리전)을 선택하고 ‘배포하기‘를 누른다. 만약 개발 언어의 버전을 모른다면 터미널 창에 ‘node -v’라고 입력하자. 현재 사용 중인 버전을 확인할 수 있다.
다른 변수들은 일단 기본값으로 두고 다음으로 넘어간다.
3.4. 클라우드 타입 서버 환경 설정하기
아직 끝이 아니다. 앱이 배포되면 ‘설정’에 들어간다. 여기서 Start Command에 해당하는 부분을 ‘npm start’가 아닌 node <실행할 파일명>으로 바꿔준다. 만약 실행할 파일명이 index.js라면 아래와 같이 입력한다. 파일을 실행시키기 위해 터미널에 입력할 명령어를 쓴다고 보면 된다.
node index.js
3.5. 설정 오류 수정하기
환경 설정까지 맞추고 배포했는데도 오류가 발생할 수 있다. 그럴 때는 오류 내용을 확인해야 한다.
사진에 표시된 아이콘을 클릭한 후 ‘실행 로그‘에 들어가면 오류 내용을 확인할 수 있다. 여기서 나타난 오류 내용을 그대로 구글에 검색하거나 chat gpt에게 물어보자. 오류의 해결 방법을 알 수 있다.
참고로 나는 package-lock.json 파일에 내가 설치한 모듈이 기록되지 않아 오류가 발생했었다. 아래 코드에서 dependencies 아래에 써 있는 문자열이 내가 설치한 모듈들이다. 나와 같은 상황을 방지하기 위해서는 이렇게 자신이 설치한 모듈이 package-lock.json에 기록되어 있어야 한다.
"packages": {
"": {
"dependencies": {
"body-parser": "^1.20.2",
"ejs": "^3.1.9",
"exceljs": "^4.4.0",
"express": "^4.18.2",
"express-session": "^1.18.0",
"xlsx": "^0.18.5"
}
3.6. 커스텀 도메인 연결
여기까지 따라왔다면 아마 성공적으로 앱이 배포되었을 것이다. 하지만 한 가지 과정을 더 거치면 좋다. 바로 도메인 연결이다. 클라우드타입에서 기본으로 제공한 도메인은 별로 예쁘지가 않다. 이 도메인을 자신이 구매한 커스텀 도메인으로 바꿔줘야 한다.
방법은 간단하다. [연결] 메뉴에 들어간 뒤, 오른쪽 상단에 있는더하기(+) 모양 아이콘을 클릭한다. 그러면 도메인을 바꿀 수 있는 창이 나올 것이다. 이 창에 자신이 구매한 도메인을 입력하면 도메인을 바꿀 수 있다. 참고로 커스텀 도메인에 연결하기 위해서는 월 11,000원의 메모리 비용이 필요하다.
4. 클라우드 타입 배포 후기
일단 클라우드 타입은 초보자도 매우 쉽게 앱을 배포할 수 있는 서비스였다. 그런데 문제는 도메인을 연결할 때 발생했다. 배포까지는 더할 나위 없이 완벽한 서비스였으나, 내가 직접 구매한 도메인을 연결하려면 추가 비용을 지불해야 했다.
나는 무료라서 클라우드 타입을 선택했는데, 도메인 연결에 돈이 필요하다면 클라우드 타입을 선택한 의미가 없었다. 그렇다고 도메인 연결을 안 할 수도 없었다. 결국 나는 카페24로 배포 플랫폼을 바꾸기로 결정했다. 카페24에서도 서비스를 직접 배포해 봤는데, ssh 연결이나 public key 발급을 직접 해야 하다 보니 클라우드 타입보다 역시 번거로웠다. 만약 따로 도메인 연결을 안 한다면 그냥 클라우드 타입으로 배포하는 것을 추천한다.