diff --git a/docs/step1/FunctionSpec.md b/docs/step1/FunctionSpec.md new file mode 100644 index 0000000..b940363 --- /dev/null +++ b/docs/step1/FunctionSpec.md @@ -0,0 +1,70 @@ +# STEP 1-3 +========= + + +url-shortener 기능 명세서 작성 +-------- + +*** + +## 목차🧭 + +- [개요](#개요) +- [배경](#배경) +- [명세](#기능-명세서-) + - [1. url 단축](#1-url-단축) + - [2. url 조회](#2-url-조회) +- [제한사항](#제한사항) +- [참고할 만한 자료](#참고할-만한-자료-) + - [1. 밀러의 매직 넘버7 👈](#1-밀러의-매직-넘버-7-) +*** + +## 개요📜 + +>url-shortener 서비스의 기능을 정의하고 문서화 합니다. + +*** + +## 배경🖼️ + +>버그를 수정하고, 서비스를 개선하려 했지만 기능이 정의된 명세서가 없습니다. +>명확한 기능 정의 없이 기능을 개발하거나 수정하게 되면 서비스는 엉망이 될거라 생각했습니다. + +*** + +# 기능 명세서 📜 + +## 1. url 단축🔹 +- ### 기능 개요 + - 원본 url 을 단축된 url 로 변환하는 기능을 제공합니다. + +- ### 기능 상세 + - 클라이언트로부터 원본 url 을 입력받습니다. + - 입력받은 url 을 변환하여 단축 url(key) 를 생성합니다. + - 생성된 단축 url(key) 을 클라이언트에 반환합니다. + + +## 2. url 조회🔹 +- ### 기능 개요 + - 단축된 url(key) 를 원본 url 로 변환하는 기능을 제공합니다. + +- ### 기능 상세 + - 클라이언트로부터 단축 url 을 입력받습니다. + - 입력받은 단축 url(key) 를 통해 원본 url 을 조회합니다. + - 조회된 원본 url 을 클라이언트에 반환합니다. + +*** + +# 제한사항🚫 +## 1. 중복 제한 + - 단축 url(key) 는 서비스 내에서 `고유`하며, 하나의 url 을 가르킵니다. + +## 2. 길이 제한 + - 단축 url(key) 는 `7자리` 의 길이로 표현합니다. + +## 3. 형태 제한 + - 단축 url(key) 는 `영문 대소문자`와 `숫자`로 구성됩니다. + - `특수문자` 그리고 `공백` 은 사용할 수 없습니다. + +## 참고할 만한 자료 👓 +### 1. [밀러의 매직 넘버 7](https://story.pxd.co.kr/612) 👈