Blog

Note

루트 도메인과 서브도메인을 나눠 운영하는 이유

zozindev.com은 루트 도메인이고, WTHeat과 TEXT_TO_IMG는 각각 서브도메인에서 돈다. 루트를 특정 앱으로 바로 보내는 것도 가능했지만, 장기적으로는 허브로 두는 게 낫다.

루트 도메인은 정체성을 설명하는 공간이다. 뭘 만들고 있는지, 각 앱이 왜 있는지, 뭘 기록하는지 한 곳에서 보여준다. 개별 앱은 그냥 기능 쓰는 공간이면 된다.

처음에는 루트 도메인을 앱 하나에 바로 연결하는 것도 생각했다. 예를 들면 zozindev.com을 WTHeat으로 보내고, 나머지는 나중에 붙이는 방식이다. 당장 하나만 운영할 때는 그게 단순하다. 하지만 앱이 두 개, 세 개로 늘어나면 루트 도메인의 역할이 애매해진다.

그래서 루트는 허브로 두기로 했다. zozindev.com은 내가 만든 것들을 소개하고 기록하는 곳이고, 실제 도구는 각자 서브도메인에서 돌린다. 이렇게 나누면 앱이 바뀌어도 루트 사이트의 기본 구조는 유지할 수 있다.

역할 분리

이렇게 나누면 앱이 늘어나도 루트 구조를 크게 갈아엎지 않아도 된다. 새 앱 만들면 프로젝트 페이지 하나, 글 하나 추가하고 루트에서 연결하면 끝이다.

AdSense와 SEO 관점에서도 루트가 단순 리다이렉트인 것보다 낫다. 방문자는 앱 가기 전에 설명을 보고, 검색 엔진은 이 도메인이 뭘 하는지 알아먹는다.

루트를 앱으로 쓰지 않는 이유

루트 도메인을 앱 하나에 써버리면 그 앱이 사이트 전체의 얼굴이 된다. WTHeat이 루트에 있으면 방문자는 zozindev.com을 음식 추천 사이트로 이해할 가능성이 크다. TEXT_TO_IMG가 루트에 있으면 텍스트 이미지 도구 사이트로 보일 것이다.

내가 원하는 건 특정 앱 하나가 아니라, 여러 개인 프로젝트를 쌓는 공간이다. 그래서 루트는 이름 그대로 중심점으로 두는 게 맞다. 각 앱은 서브도메인에 두고, 루트에서 설명과 기록을 연결한다.

이 구조는 포트폴리오에도 좋다. 앱 링크만 던지는 것보다, 왜 만들었고 어떤 기능이 있고 지금 어떤 상태인지 설명하는 페이지가 있으면 보는 사람이 이해하기 쉽다. GitHub 저장소가 private인 프로젝트도 루트 페이지에서 맥락을 줄 수 있다.

서브도메인의 장점

서브도메인을 쓰면 프로젝트별 배포와 설정을 분리하기 쉽다. WTHeat은 음식 추천 앱에 맞는 설정을 쓰고, TEXT_TO_IMG는 정적 도구에 맞는 설정을 쓰면 된다. 나중에 다른 프레임워크나 다른 호스팅 방식을 써도 루트 사이트와 직접 충돌하지 않는다.

또 하나 좋은 점은 실패 범위를 줄일 수 있다는 것이다. 특정 앱을 고치다가 문제가 생겨도 루트 블로그까지 같이 깨질 필요는 없다. 반대로 루트 사이트 구조를 바꿔도 앱 자체는 그대로 운영할 수 있다.

운영 기준

새 프로젝트를 만들면 먼저 서브도메인 여부를 정한다. 단순 글이나 문서는 루트 안에 두고, 실제로 사용자가 조작하는 도구는 서브도메인으로 빼는 기준이다.

그리고 루트에는 프로젝트 상세 페이지와 관련 블로그 글을 둔다. 이렇게 하면 외부 앱으로 이동하기 전에 사이트 안에서 충분한 설명을 제공할 수 있다. AdSense 심사나 SEO 측면에서도 외부 링크만 많은 사이트보다 자체 콘텐츠가 있는 사이트가 낫다.

결론은 단순하다. 루트는 허브, 서브도메인은 앱이다. 이 기준만 유지하면 프로젝트가 늘어나도 구조가 덜 꼬인다.