일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SQL
- 배열
- 최강의 인생
- 코딩테스트
- Algorithms
- array.push()
- MySQL
- 정규표현식
- JavaScript
- 블록체인
- Hackerrank
- 자바스크립트
- 프로그래머스
- 코드스테이츠
- Programmers
- node.js
- Where
- array.slice()
- 코플릿
- 코딩공부
- join
- Developer_JoyKim
- 개발자의 책장
- 알고리즘
- 개발자_조이킴
- array
- 재귀함수
- select
- for문
- 역행자
Archives
- Today
- Total
CodingSpace
[NodeJs 스터디] 1차 과제 본문
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