사이트 다시 만들기

요즘 0xF.kr 사이트를 다시 만들고 있다.

기존 웹 서버

나는 초등학생때부터 무료 웹 호스팅 업체를 통해 개인 홈페이지를 만들어 왔다. 하지만 무료에는 그만한 댓가가 따르기 마련이였다.

  • 대부분의 무료 웹 호스팅 업체에서는 용량이나 총 트래픽 제한을 걸어놓는다.
  • 제한이 널널한 외국 호스팅 업체들은 네트워크 속도가 느리기 일쑤였다.
  • 웹 서버에서 구동할 수 있는 프로그램이나, 설정 가능한 요소들이 제한되어 있다.

그래서, 지난 2012년인가 2013년 즈음에, 집에서 쓰던 오래 된 컴퓨터를 동아리방에 가져다 놓았다. 그리고 그 컴퓨터에 Debian을 깔고, NGINX 및 MariaDB등을 이용해 개인 홈페이지를 구축했다. 원하는 대로 서버를 굴리면서도 유지비용이 없어서 좋기는 한데, 서버가 낡아 성능이 좋지 못한것이 흠이였다. 뭐, 웹 호스팅에 그다지 높은 성능이 필요한 건 아니니까 큰 문제는 아니였고, 계속 시간이 날 때마다 홈페이지에 기능을 추가했다.

그러던 와중, 심심해서 만들어 보았던 끝말잇기 게임이 많은 인기를 끌게 되었고, 덕분에 서버가 매일 바쁘게 돌아갔다. 거의 항상 1초에 10건 정도의 요청을 처리하던 수준이였는데, 다행히도 서버의 다른 기능에 큰 영향을 끼치는 부하는 아니였다…라고 생각했었는데, 문제가 하나 생겼다. DB 데이터가 손상되어버린 것이다.

서버의 낡은 하드 디스크가 오랜 동작 끝에 수명을 다하기 시작했다는 신호였다. 비록 당장은 서버가 제 기능을 하더라도, 근 시일 내에 서버에 어떤 문제가 생길지도 모르는 것이였다. 하드디스크를 하나 사서 교체할 수도 있지만, 이왕 이렇게 된 거 새 컴퓨터를 하나 장만하기로 하고, 기존 서버를 내렸다. … 그리고 새 서버를 어떻게 장만해야 할 지 고민하다 몇 년이 지났고, 결국 다시 호스팅 업체를 이용하기로 결정했다. 웹 호스팅이 아닌 클라우드 서버 호스팅을.

새 웹 서버

이왕 클라우드 서버를 이용하게 됐으니, 기존 코드를 갈아엎고 새로 만들기로 했다.

  • 우선, 적당한 AWS 인스턴스 하나를 마련했다.
  • 다음과 같이 웹 백엔드를 구성했다.
    • NGINX로 라우팅을 한다.
    • 서버가 필요없는 웹 앱은 그냥 NGINX로 서빙한다.
      • 이 블로그의 경우 Hexo를 이용해 정적으로 구현했다.
    • 기존에 PHP로 짰던, 서버가 필요한 앱은 앱별로 별도의 백엔드를 띄웠다.
      • Express(또는 그냥 Node.js) 등을 이용해 서버를 만들고, NGINX 설정을 통해 노출시켰다.
  • (모양새를 갖추려고) CloudFlare를 앞에다 붙였다.

퍼시스턴스는 어떻게 해결할지 고민중인데, 당분간은 기존처럼 웹 서버가 돌아가는 인스턴스에 세팅해 두려 한다. 나중에 별도로 분리해야 될 때가 오면 그 때 하지 뭐.

기본적인 틀을 짠 뒤, 그동안 묵혀두고 있었던 메인 페이지 리뉴얼을 했다. 지금은 새 메인 페이지가 완성된 상태이지만, 아직 메뉴에 넣을 요소가 많이 없다는 것을 깨닫고 새 사이트에 채워넣을 것들을 만드는 중이다.

  • 해시 모음집 (완성): 기존의 MD5 해시 모음집을 확장했다.
  • 문자열 계산기 (제작중) : 한 번 배워보기 위해 Dart로 제작중이다.
  • 끝말잇기 게임 (구상중) : 기존 구현에 문제가 많았는데, 기존의 문제점들을 개선한 버전을 새로 만들어 보려 한다.
  • BPM 계산기 (제작중)
  • HEX 파일 뷰어 (구상중)

개개의 앱들에 대해서는 나중에 글을 써 볼 생각이다.