brunch

You can make anything
by writing

C.S.Lewis

by 김창현 Apr 01. 2023

레일즈와 플라이로 배포 성공!

몇 달 삽질의 결과를 기록: 문과생이 자신의 페이지 하나를 배포히기 까지

사실 며칠 전에도 비슷한 글을 올렸더랍니다. 

https://brunch.co.kr/@skytreesea/159

문과인 내가 웹사이트를 만들었다는 것에 기뻐서 글을 썼더랬지요. 그런데 그 사이트는 현재 죽어 있습니다. 그냥 좋은 경험 했다고 생각하고 새로운 사이트를 하나 팠습니다. 곧 진행하게 될 '행사를 홍보하기 위한' 소위 이벤트 페이지라고나 할까요? 사실 이벤트 페이지라고 하기엔 많이 허접하지만, 정말 먼 길을 돌아왔네요.


페이지 바로 가기


여기까지 온 과정을 간단히 다시 설명하고자 합니다. 

1. 프로그램은 Ruby on Rails를 썼습니다. 

물론 무료이고, 무엇보다 쉽게 시작할 수 있습니다. 저는 이 말을 좋아하지 않습니다. 왜냐하면 아무리 쉬운 언어라 하더라도 초보자에게는 어렵고, HTML도 잘 모른다면, 이게 Rails의 문법인지, Ruby의 문법인지 HTML 문법인지도 헷갈리기 때문입니다. 여하간 Ruby on Rails를 접한다는 것은 웹사이트 구축을 위한 훌륭한 출발점임은 확실합니다. 이미 GitHub, Airbnb가 Rails로 만들어졌다는 건 너무나 흔한 설명입니다. 흔히 백엔드 프론트엔드 개발이라는 말을 많이 들었을 텐데, 둘 다 잘 모르겠다, 싶으면 루비도 하나의 대안이 될 수 있습니다. 

https://rubyonrails.org/


2. 배포: 무료로 테스트용 페이지를 배포할 수단이 없을까? 

사실 이게 가장 어려운 부분입니다. 루비로 로컬 환경에 이러쿵 저러쿵 페이지를 만드는 것까지는 하겠는데, 배포를 어떻게 할 것인가, 하는 점이 관건이지요. 저는 가장 쉬운 선택으로 시작했습니다. 바로 구름(https://www.goorm.io/)이라는 국내 클라우드 서비스를 이용한 것이지요. 이건 정말 멋진 선택이었다고 생각합니다. 사실 유튜브 선생님이 알려주었던 선택지이도 하구요. 덕분에 저는 명령어를 칠 때마다 화면이 바뀌고 그 바뀐 화면이 별 고민 없이 클라우드 환경에서 배포되는 것을 그냥 보고 즐길 수 있었습니다. 


구름 서비스 자체에 그렇게 큰 문제는 없었던 것 같습니다. 아주 좋은 서비스라고 생각합니다. 그러나 개인적으로 페이지를 조금씩 조금씩 개발하면서 약간의 욕심이 생겨났습니다. 


1) 욕심 1: 계속 켜놓고 싶다. 

구름 페이지는 무료로 이용할 때는 24시간 이용할 수가 없습니다. 이용자가 없으면 서버는 꺼집니다. 사실 이걸 극복하는 방법은 유료화입니다. 그렇게 비싸지도 않습니다. 그러나 언제 내가 서비스를 제대로 만들지도 모르는 상황에 구름에 몰빵하고 싶지는 않았습니다. 그래서 다른 대안을 찾아보기 시작했습니다. 


2) 다른 에디터 환경을 사용해보고 싶다. 

구름은 구름IDE라는 훌륭한 에디팅 환경을 제공합니다. 그러나 사실 에디터 프로그램은 전 세계적으로 엄청나게 많습니다. 저는 거의 VsCode가 거의 끝판왕이라고 생각하는데 이외에도 Sublime Text나 Notepad ++등 많은 에디터들이 있습니다. 또한 개발환경 역시 구름만 할 줄 알면 다른 Git을 통한 배포 등은 까막눈이 될 것 같다는 생각이 들었습니다. 


그 다음 배포 시스템으로 많이 각광받는 것이 Heroku입니다. 

https://dashboard.heroku.com/apps

Heroku 역시 엄청나게 많은 사람들이 개발에 처음으로 배포하는 시스템으로 추천했습니다. 그래서 거의 Ruby on Rails에 관련한 강의는 완전히 Heroku로 배포하는 것을 정석으로 하는 것 같습니다. Heroku 역시 몇 가지 설정만 잘 하면(물론 이 과정에서 밤을 새우는 저 같은 문과생들도 있습니다.), 금방 자기가 만들어놓은 페이지를 배포할 수 있습니다. 여기에 최근에 Heroku가 유료화 시스템으로 완전히 바뀌었다는 것을 깨달았습니다. 사실 저는 개인적으로 소소하게 테스트 페이지를 만드려는 것이 목적이었으니 굳이 유료화를 하고 싶었으면 국산 구름 서비스를 활용했을 것 같습니다. 


그러다가 검색 끝에 Fly.io 서비스를 발견하게 되었습니다. Deploy app servers close to your users라는 캣치프레이즈가 인상적입니다. 사용자에게 가장 가깝게 서버를 배포한다는 뜻 같네요. 

https://fly.io/

결국 제가 로컬환경에서 페이지를 수정하고 난 다음에 GitHub 등 프로그램을 통해서 커밋(commit)하고 서버로 옮긴 다음에, 최종적으로는 https://skyapp.fly.dev/ 라는 간단한 주소를 통해 유저들에게 배포되는 것이겠죠. 


4. AWS는 왜 어려운가? 

사실 저에게는 활용할 수 있는 AWS 서버가 조그맣게 있었습니다. 친구가 회사에서 쓰는 서버에 조그맣게 나의 실험공간을 내주기로 한 것이죠. 너무 좋은 친구입니다. 그런데, 막상 하다 보니 문제가 많이 생겼습니다. 서버나 Git에 대한 지식이 부족한 저로서는 문제가 생길 때마다 곧바로 대책을 세우는 것이 현재로서는 불가능한 것으로 보였습니다. 물론 부족한 저의 탓이겠죠. 


제 개발실력은 Ruby나 Rails에서 문제가 생겨도 해결하기 막막한 수준이기 때문에 서버에 문제가 자꾸 생기면 너무 힘들었습니다. 


그러나 결국 실력이 쌓이면 AWS를 사용하는 것이 보다 질좋은 서비스를 이용하기 위해서 가장 바람직해 보입니다. 왜냐하면, 결국 AWS를 사용하는 것이 내가 하고 싶은대로, 높은 자유도를 가지고 페이지를 운영할 수 있기 때문입니다. 그런데 자유를 느끼기에 실력이 부족한 저 같은 사람은 일단 이런 배포를 다 해주는 시스템을 이용하다가 옮겨타는 것도 나쁘지 않을 것 같다는 생각입니다. 



그동안 깔짝깔짝 이런 저런 서비스를 간략하게 만들어보았는데요.

앞으로는 fly.io를 통해서 서비스를 제공해볼 수 있을 것 같습니다. 

기대해주세요. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari