Skip to content

πŸ™‹ Requirements Specification

J064_κΉ€ν•˜μ • edited this page Oct 28, 2021 · 1 revision

✨ κ°œμš”

  • 퍼즐 λ§žμΆ”κΈ° ( 사진 μ—…λ‘œλ“œ κ°„λ‹¨ν•œ κ²Œμž„ )

    • 둜그인 / λ§ˆμ΄νŽ˜μ΄μ§€ (기둝확인 λ“±)

    • 퍼즐 λ§Œλ“€κΈ° (사진 μ—…λ‘œλ“œ, λ‚œμ΄λ„ 별 ν”ΌμŠ€ 수 λ‹€λ₯΄κ²Œ 생성, νƒœκ·Έ)

    • λ‚œμ΄λ„ 쑰절 (맞좘 퍼즐에 따라 λ‚œμ΄λ„ 올라감)

      • λ³΄μ΄μŠ€λ‚˜ ν™”μƒμ±„νŒ…
    • 퍼즐 μ™„μ„± - κ³΅μœ κ°€λŠ₯


πŸ‘©β€πŸ’» κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­

  1. μ‹œμž‘ νŽ˜μ΄μ§€

    • 둜그인 λ²„νŠΌλ§Œ 좜λ ₯λœλ‹€.

    • Oauth + ꡬ글 λ‘œκ·ΈμΈμ„ ν•  수 μžˆλ‹€.

    • λ‘œκ·ΈμΈμ„ ν•˜λ©΄ 2. λ©”μΈνŽ˜μ΄μ§€ 으둜 μ΄λ™ν•œλ‹€.

  2. λ©”μΈνŽ˜μ΄μ§€

    • 전체 퍼즐 λͺ©λ‘

      • λ©”μΈνŽ˜μ΄μ§€λŠ” api둜 전체 퍼즐 검색 μš”μ²­μ„ λ³΄λ‚΄μ„œ 전체 퍼즐을 ν•œλ²ˆμ— 10κ°œμ”© 보여쀀닀.

      • 10κ°œμ”© 좜λ ₯된 μƒνƒœμ—μ„œ μŠ€ν¬λ‘€μ„ 더 λ‚΄λ¦°λ‹€λ©΄ λ‹€λ₯Έ 퍼즐 10개λ₯Ό 좜λ ₯ν•œλ‹€.

      • λͺ¨λ“  퍼즐을 좜λ ₯ν•˜μ˜€λ‹€λ©΄ 처음의 퍼즐 λͺ©λ‘ 10개λ₯Ό λ‹€μ‹œ 좜λ ₯ν•˜κ³  이λ₯Ό λ°˜λ³΅ν•œλ‹€.

      • λ””ν΄νŠΈ μ •λ ¬ μƒνƒœλŠ” ν”Œλ ˆμ΄ νšŸμˆ˜μˆœμ΄λ‹€.

      • μ²΄ν¬λ°•μŠ€ 선택을 톡해 λ‚œμ΄λ„λ³„ λͺ©λ‘μ„ 필터링할 수 μžˆλ‹€.

    • 검색바

      • 검색바에 검색 ν‚€μ›Œλ“œλ₯Ό μž…λ ₯ν•˜λ©΄, api둜 μš”μ²­μ„ 보내 ν•΄λ‹Ή ν‚€μ›Œλ“œλ₯Ό 가진 퍼즐 정보λ₯Ό 전체 퍼즐 λͺ©λ‘μ— κ°€μ Έμ˜¨λ‹€.
    • 헀더

      • λ§ˆμ΄νŽ˜μ΄μ§€ λ²„νŠΌκ³Ό λž­ν‚Ή λ²„νŠΌμ΄ 좜λ ₯λœλ‹€
  3. ν”Œλ ˆμ΄λ£Έ

    • ν”Œλ ˆμ΄λ£Έ μž…μž₯

      • λ©€ν‹°λͺ¨λ“œλ₯Ό 기본으둜 ν•˜λ©° 링크 등을 톡해 ν”Œλ ˆμ΄λ£Έμ— μž…μž₯ μ΄ˆλŒ€

      • μ΄ˆλŒ€ 받은 μ‚¬λžŒμ€ μ‹œμž‘ νŽ˜μ΄μ§€λ‘œ μš°μ„  μž…μž₯

    • λ©€ν‹° ν”Œλ ˆμ΄

      • μ±„νŒ…μœΌλ‘œ 같은 ν”Œλ ˆμ΄λ£Έ μ•ˆμ˜ μ‚¬λžŒλ“€κ³Ό μ†Œν†΅

      • ν•œ μ‚¬λžŒμ΄ μž‘μ€ 퍼즐은 λ†“μ„λ•ŒκΉŒμ§€ λ‹€λ₯Έ μ‚¬λžŒμ΄ μž‘μ„ 수 μ—†λ‹€.

      • ν”Œλ ˆμ΄λ£Έμ— μž…μž₯ν•œ μœ μ €λ“€μ€ 퍼즐과 νΌμ¦νŒμ„ κ³΅μœ ν•œλ‹€.

      • ν”Œλ ˆμ΄λ£Έμ— μž…μž₯ν•œ μœ μ €λ“€μ˜ μ»€μ„œλ₯Ό μ„œλ‘œ λ³Ό 수 μžˆλ‹€.

      • 우츑 ν•˜λ‹¨μ˜ 이미지 λ²„νŠΌμ— 마우슀λ₯Ό 올리면 힌트λ₯Ό λ³Ό 수 μžˆλ‹€.

  4. λ§ˆμ΄νŽ˜μ΄μ§€

    • λͺ…μ˜ˆμ˜ μ „λ‹Ήμ—μ„œ μ™„μ„±ν•œ νΌμ¦λ“€μ˜ 사진과 ν”Œλ ˆμ΄ νƒ€μž„μ„ μ‘°νšŒν•  수 μžˆλ‹€.

    • 퍼즐저μž₯μ†Œμ—μ„œ μžμ‹ μ΄ λ§Œλ“  νΌμ¦λ“€μ˜ λͺ©λ‘μ„ μ‘°νšŒν•˜κ³  ν”Œλ ˆμ΄λ£Έμ„ λ§Œλ“€ 수 μžˆλ‹€.

  5. λž­ν‚ΉνŽ˜μ΄μ§€

    • λž­ν‚Ήμ—μ„œ κ°€μž₯ 많이 퍼즐을 μ™„μ„±ν•œ μ‚¬λžŒκ³Ό λ§Œλ“  μ‚¬λžŒμ„ 확인할 수 μžˆλ‹€.
  6. 퍼즐 생성

    • λ‚œμ΄λ„ 쑰정은 ν”ΌμŠ€ 수λ₯Ό κΈ°μ€€μœΌλ‘œ ν•œλ‹€.

    • 퍼즐 생성 ν›„ λ§ˆμ΄νŽ˜μ΄μ§€μ˜ 퍼즐 μ €μž₯μ†Œμ— 사진 url, ν”ΌμŠ€ 정보 μžλ™ μ €μž₯λœλ‹€.


βœ”οΈ λΉ„κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­

  1. ν’ˆμ§ˆ μš”κ΅¬μ‚¬ν•­

    • μ‹ λ’°μ„±: μƒμ„±λœ 퍼즐은 μ™„μ„±ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

    • μ‹œκ°„ νš¨μœ¨μ„±: 웹이 2초 이내에 λ°˜μ‘ν•˜λ„λ‘ ν•œλ‹€. λ§Œμ•½ 이λ₯Ό μ΄ˆκ³Όν•œλ‹€λ©΄ λ‘œλ”©ν™”λ©΄μ΄ 좜λ ₯λ˜μ–΄μ•Ό ν•œλ‹€.

    • μ‚¬μš©μ„±: λΆˆν•„μš”ν•œ κΈ°λŠ₯은 μ œμ™Έν•œλ‹€.

    • 이식성: chrome, microsoft edge λ“± λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ λ¬Έμ œμ—†μ΄ κ°€λ™λ˜μ–΄μ•Ό ν•œλ‹€.

    • μ •λ°€μ„±/μ •ν™•μ„±: λ©€ν‹°λͺ¨λ“œμ—μ„œ λͺ¨λ“  μ‚¬μš©μžκ°€ 같은 화면을 λ³Ό 수 μžˆλ„λ‘ ν•΄μ•Ό ν•œλ‹€.

    • λ³΄μ•ˆμ„±: μ‚¬μš©μžμ˜ μ •λ³΄λ‚˜ μ‚¬μš©μžκ°€ μ—…λ‘œλ“œν•œ 사진을 타인이 μ—΄λžŒν•  수 μ—†μ–΄μ•Ό ν•œλ‹€.

  2. 데이터 μš”κ΅¬μ‚¬ν•­

    • db λ°μ΄ν„°νƒ€μž…

      • user table은 νšŒμ›μ˜ ꡬ글ID, 퍼즐을 μ™„μ„±ν•œ 횟수, 퍼즐은 μƒμ„±ν•œ 횟수둜 κ΅¬μ„±λœλ‹€.

      • puzzle table은 퍼즐ID, 퍼즐 사진, 쑰회 수,곡개 μ—¬λΆ€, λ‚œμ΄λ„, μž‘μ„±μž, νƒœκ·Έ(필터링이 κ°€λŠ₯ν•œ) 둜 κ΅¬μ„±λœλ‹€.

  3. μ œμ•½ 사항(κΈ°λŠ₯μš°μ„ μˆœμœ„, κ°œλ°œν™˜κ²½ μ œμ•½ λ“±)

    • 상업 및 기타 λΌμ΄μ„ μŠ€κ°€ 자유둜운 μ΄λ―Έμ§€λ‘œ λ§Œλ“  퍼즐만 검색할 수 μžˆλ‹€.

    • 개인이 μ—…λ‘œλ“œν•œ 사진은 μ—…λ‘œλ“œν•œ λŒ€μƒλ§Œμ΄ μ‚¬μš©ν•œλ‹€.

  4. κ°œλ°œν™˜κ²½

    • Node.js, express, React, TypeScriptλ₯Ό μ‚¬μš©ν•˜μ—¬ κ°œλ°œν•œλ‹€.

    • db μ’…λ₯˜ - mysql(λ°°ν¬ν•˜μ—¬ ν•˜λ‚˜λ‘œ μ‚¬μš©)

    • Paper.js

    • ν˜‘μ—… 툴둜 Githubλ₯Ό μ‚¬μš©ν•œλ‹€.

    • git branch μ „λž΅μ€ Git flowλ₯Ό ν™œμš©ν•œλ‹€.

    • naver cloud와 NGINX둜 λ°°ν¬ν•œλ‹€.