CodingSpace

[NodeJs 스터디] 1차 과제 본문

Online Class/[스터디] 실무와 가까워지는 Node.js 백엔드 개발

[NodeJs 스터디] 1차 과제

개발자_조이킴 2022. 3. 30. 01:26

What. 최종 미션 기획하기


Problem.

마케팅 담당자 고양이🐯씨의 사연

고양이 🐯씨는 홍보용 웹사이트를 각종 소셜미디어에 올려서 사람들을 유입시키는 업무를 맡음

고양이 🐯씨의 업무 스트레스는 다음과 같음:

  • 클라이언트마다 다르지만 누군가는 너무 긴 url을 전달해서 트위터 같이 글자가 제한된 곳에 올릴 때 제약이 많음
  • 공유한 url을 몇 명이나 클릭했는지 알고 싶음

 

고양이 🐯씨는 구글링을 통해 단축 url을 생성해주는 서비스를 발견함

하지만 해당 서비스에서도 몇가지 문제가 있음:

  • 유료 플랜이 아니면 단축 url이 오래 유지되지 않음
  • 효과 분석도 유료 플랜에서만 가능
  • 자신이 만든 단축 url 목록을 알 수 없음

My Approach.

1. 문제해결에 필요한 기능들 정리

  • 단축 URL 기능 (유효시간은 일주일)
  • URL 클릭시 해당 URL 조회수 업데이트
  • 회원가입 기능
  • 로그인 기능
  • 마이페이지 (내가 만든 단축 URL 목록 조회기능)

 

2. API 설계

  • 회원가입: POST /user/signup
  • 로그인: POST /user/login
  • 프로필 정보: GET /user/:id
  • 내가 만든 단축 URL 전체목록: GET /user/:id/myshort-urls
  • 단축 URL 클릭시 해당 URL로 redirecting 및 조회수 업데이트: GET /{short-url}

 

3. 기타 기능

  • node-schedule을 이용한 비활성화 단축 URL 삭제 (단축 URL 유지시간 설정)

 

4. Issues

  • URL 조회수 업데이트 때 발생할 수 있는 동시성 이슈를 어떻게 처리할건가?
  • 어떻게 유니크한 단축 URL을 생성할 것인지?
  • 같은 유저가 같은 단축 URL을 요청했을 때 어떻게 처리할 것인지?

References. 

Comments