당근마켓, 당근부동산으로 본 URL 전략

avatar
🎉
당근마켓으로 마리오카트 구매 기념

최근 당근마켓의 당근 부동산이라는 걸 보던 중 발견한 URL 주소

posts/아파트-4억-서울시-여러분-당근부동산-aQbjxLFNc

아파트-4억-서울시-여러분-당근부동산 은 알겠는데
aQbjxLFNc 은 뭐지?

Try it.

posts/아파트-4억-서울시-여러분-당근부동산 ❌
post/아무제목-aQbjxLFNc ⭕️
post/아무제목-aQbjxLFNc-아무내용 ❌
post/aQbjxLFNc ⭕️

아하 '-' 로 구분하는 문자열중 마지막인 aQbjxLFNc가 Resource Id 구나!

🤷🏻
당근부동산은 왜 이런 URL 전략을 사용했을까?

당근마켓의 기존 URL과의 비교

articles/455XXXXXX

Resource Id가 9자리 숫자로 이루어진 걸 알 수 있다.

유추할 수 있는점

  • 당근마켓은 4억개가 넘는 거래글이 올라왔구나.
  • 다음에 등록된 글을 보고싶으면 Resource Id + 1 해주면 되겠구나.

거래글의 숫자는 비지니스적으로 의미있는 수치이기도 하고,
이런 자동 증가되는 Resource Id 형식은 악성 크롤링의 대상이 되기도한다.

당근부동산은 이런 단점들을 잘 보완하고 있다고 할 수 있다.

SEO(Search Engine Optimization) 전략

단순한 URL은 콘텐츠 정보를 전달합니다. 웹사이트 문서와 관련된 설명을 제공하는 카테고리 및 파일 이름을 만들면 사이트를 더 잘 구성하는 데 도움이 될 뿐만 아니라 콘텐츠에 관심을 두고 있는 사용자가 좀 더 쉽게 사용할 수 있으며 이들에게 더욱 친숙한 URL을 만들 수 있습니다. 인식할 수 있는 단어가 거의 없는 긴 암호문과도 같은 URL에 겁을 먹는 사용자도 있을 수 있습니다.
> 구글의 SEO 가이드 (opens in a new tab)

posts/아파트-4억-서울시-여러분-당근부동산-aQbjxLFNc

검색결과에 URL이 포함되어 내용을 알기 쉽다.
누군가에게 공유를 해도 URL만 보고 내용을 알기 쉽다.
사용자 친화적이다.

이런점에서 당근부동산이 더 사용자 친화적인 SEO전략을 잘 지키고 있다고 할 수 있다.

어떻게 구현해요?

서론에 Try it. 에서 시도했던 결과를 보면
'-'로 구분한 문자열중 가장 마지막 문자열을 key로
사용하고 있는걸 알 수 있다.

//posts/아파트-4억-서울시-여러분-당근부동산
@Get('posts/:title')
function getPost(@Param('title') title) {
  const postKey = title.split('-').pop();
  return postService.getPostByKey(postKey);
}