https://busy-apple-85c.notion.site/README_ProWikiQ-fbf6c549ae734f57a4fe8aa3cbc67e8f?pvs=4
0. ๊ฐ์ ๐
Province Wiki Q- Encyclopedia
Swagger๊ฐ์ Project doc API
์ง๋ฐฉ๊ด๋ฆฌ๋ค์ ๋น ๋ฅธ ์ง๋ น ๋ฐฑ๊ณผ์ฌ์
๊ฐ๋ฐํ๊ฒฝ
OS : Mac OS
IDE : IntelliJ
JAVA Version : JDK 11
SpringBoot Version : 2.6.16-SNAPSHOT
DataBase : PostgreSQL
Build Tool : Gradle 7.3
Gradle DSL : Kotlin
Manage Tool : GitHub
Git Client : Fork
API tool : Postman
Dependencies
Spring Data JPA
Spring Security
Swagger
Lombok
Spring Web
๊ธฐ์ ์คํ
Backend
Framework : Spring Boot 2.6.16-SNAPSHOT
Spring Data JPA
DB
PostgreSQL
(Option)Frontend
1.๊ธฐ๋ฅ ๐พ
๊ณ์
ํ์๊ฐ์
- ํ์๊ฐ์ ์ prj ๊ด๋ฆฌ์๋ก User ์์ฑ. ๊ฐ์ธ ํ์๊ฐ์
- (Option) Batch ๋ค๋ ํ์๊ฐ์ ๊ณ์ Test
๋ก๊ทธ์ธ
- ์ผ๋ฐ ๋ก๊ทธ์ธ
(Option) sns, google, kakao, naver ๊ธฐ๋ฐ ํ์๊ฐ์
sns ๊ณ์ ์ผ๋ก ๊ฐ์ ์ ์คํ๋ผ์ธ ์ฌ์ฉํ๋๋ผ๋ โLo_โ๊ฐ ๋ถ์ง ์์.
๊ถํ๋ถ์ฌ
(Option) ์ ์ฒด ๊ด๋ฆฌ์, ๊ฐ Prj ๊ด๋ฆฌ์, Prj๋ณ ํ์ฅ(ํ ๋ด ๋ฆฌ๋ ํ์ ์ถ๊ฐ๊ตฌ์ฑ ๊ฐ๋ฅ), Prj ํ์
- ์ต๊ณ ๊ถํ(๋ฃจํธ)์ ๊ฐ์ง ๊ณ์ ๋ ๋ฒจ ์์คํ ์๋ ๊ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ์, ํ ๊ด๋ฆฌ์, ํ์์ด ์์ต๋๋ค.
- ์ต๊ณ ๊ถํ(๋ฃจํธ)์ ๊ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ ์ ์๊ณ , ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ์์ ์ ํ๋ก์ ํธ์ ๊ฐ ํ ๊ด๋ฆฌ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
- ๊ด๋ฆฌ์๋ ๊ด๋ฆฌ์์ ํ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค. ๊ถํ์ ๋ฐ์ ๊ด๋ฆฌ์๋ ์์ ๊ด๋ฆฌ์๊ฐ ํ๊ฐํ ํ์ผ์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
- ํ์์ ๊ด๋ฆฌ์์ ํ๊ฐ๋ฅผ ๋ฐ์ ํ์ผ ์์น์์๋ง ํ์ผ์ ์ ๊ทผํ ์ ์์ต๋๋ค
Prj ID By Account & ๋ ์ง,์๊ฐ
์จ๋ผ์ธ ๊ธฐ๋ฐ์ ์์ ์์ฌ๋ก ์ค๋ณต์ฌ๋ถ๋ง ํ์
์คํ๋ผ์ธ (๋ก์ปฌ) ๊ธฐ๋ฐ์ โLo_โ์ด ์์ผ๋ก ํํ ๋ค์ด๊ฐ (ID ๊ฐ์๋ ์จ๋ผ์ธ๊ณผ ๊ตฌ๋ถ์ง์ ID ๊ฐ์ด ๋ค์ด๊ฐ. ํด๋น ๊ณ์ ์ ์จ๋ผ์ธ์ผ๋ก ๋ฐ๊ฟ ์
folder, file์ ๊ทผ๊ถํ (read,write)
์กฐํ
์ ์ฒด์กฐํ list
ํน์ ์ธ ์กฐํ detail
์ ๊ฑฐ
์ ์ฒด ์ ๊ฑฐ
ํน์ user ์ ๊ฑฐ
์์ฒญ
(Option) count up down Category
๋ ๋ฒจ ์์คํ ์ ๊ฐ์ ธ์ ๊ฐ ๊ณ์ ์ด ๊ฒฝํ์น๋ฅผ ์์๋๊ฐ๋๋ก ๋ถ์ฌ
์ ๋์ ๊ฒฝํ์น์ ์๋์ ๊ฒฝํ์น๊ฐ ์์ ์ ์๊ธฐ๋๋ฌธ์
๋ ๋ฒจ ์์คํ ๋ฆฌ๊ทธ๋ฅผ ๋๋๋ค. (์จ๋ผ์ธ๊ณผ ์คํ๋ผ์ธ)
Project Browser
(Option) ๋ฐ์คํฌํ ๋ด file folder List๋ฅผ import.
import java.nio.file.* ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉ. Java Folder Path Import (๊ธฐ๋ณธ)
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js" integrity="sha512-7Z9J3l1+EYfeaPKcGXu3MS/7T+w19WtKQY/n+xzmw4hZhJ9tyYmcUS+4QqAlzhicE5LAfMQSF3iFTK9bQdTxXg==" crossorigin="anonymous" referrerPolicy="no-referrer"></script>
mport java.nio.file.* ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ฉ. Entity ์ ์ ์ฅ
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js" integrity="sha512-7Z9J3l1+EYfeaPKcGXu3MS/7T+w19WtKQY/n+xzmw4hZhJ9tyYmcUS+4QqAlzhicE5LAfMQSF3iFTK9bQdTxXg==" crossorigin="anonymous" referrerPolicy="no-referrer"></script>
์ ์ฅ๋ path ๋ฅผ๊ธฐ๋ฐ์ผ๋ก List ์์ฑ
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js" integrity="sha512-7Z9J3l1+EYfeaPKcGXu3MS/7T+w19WtKQY/n+xzmw4hZhJ9tyYmcUS+4QqAlzhicE5LAfMQSF3iFTK9bQdTxXg==" crossorigin="anonymous" referrerPolicy="no-referrer"></script>public List<File> findAllFilesInDirectory(String directoryPath) { return entityManager.createQuery("SELECT f FROM File f WHERE f.fileLocation LIKE :path AND f.isDirectory = false", File.class) .setParameter("path", directoryPath + "%") .getResultList(); }
import ํน์ ์๋ก ์์ฑํ BrowserList D.B์ ์ ์ฅ
- (Entity)
๋ง๋ค์ด์ง ๋ชฉ๋ก์ ๋์ํ์ฌ WikiPage ๋ชจ๋ ์์ฑ.
ํ์ผ RW (Read, Write)
- Description Page ์์ฑ (Write),
- ํ์ผ ์ด๋,
- ํ์ผ๋ช ๋ณ๊ฒฝ,
- ํ์ผ ์ญ์ ,
- ํ์ผ ๋ด๋ถ ๋ฐ์ดํฐ ๊ฐ ๊ฐ ๋ณ๊ฒฝ & ์ญ์ , ์ถ๊ฐ(date,location, category,...)
- ํ์ฌ database ๋ด ํ์ผ,ํด๋ ๊ฒฝ๋ก Listup & ์กฐํ(Read)
(Option) ํ์ผ ๊ฒฝ๋ก ์ต์ ์ผ๋ก ๋๊ธฐํ
- Project Browser๊ธฐ๋ฐ์ผ๋ก OS ํ์ผ ๊ฒฝ๋ก ๋๊ธฐํ (Export)
- OS๊ธฐ๋ฐ์ผ๋ก Project Browser ํ์ผ ๊ฒฝ๋ก ๋๊ธฐํ (Import)
(Option) ๋์๋ณด๋ (FE)
DB๊ฐ ๋น์ด์์ผ๋ฉด ๊ฐ์ด๋ฐ import ๋ฒํผ์ผ๋ก folder list(import java.nio.file.*) ๊ฐ์ ธ์ค๊ธฐ
- import java.nio.file.*
- (Option) ๊ฐ์ฅ Update ๋ ์ง ๋งจ์์ ํ๊ธฐ (FE)
- (Option) json,cvsํ์ผ ๊ฐ์ ธ์ค๊ธฐ
File,Folder description page ์์ฑ์ ๋ค์ด๊ฐ๋ D.B
ํ์ฌ ์์น ์ถ๊ฐํ ์ง ์ฌ๋ถ ํ์ธ ํ ์์น ๊ฐ์ ธ์ค๊ธฐ
date ๊ฐ์ ธ์ค๊ธฐ
description markdown base.
- (Option) file link ์ฒจ๋ถ (App ์ฐ๊ฒฐํด์ openํ๋๋ก)
- (Option) to do list
- (Option) League
- (Option) Priority choice
ํ๋ก์ ํธ ๋ธ๋ผ์ฐ์ (๊ธฐ๋ณธ, ํด๋ ๊ธฐ๋ฐ)
Sorted by name (default)
Sorted by date
Sorted by Category
Sorted by Location
ํ์ผ,ํด๋ ํด๋ฆญ์ file description page ์์ฑ
ํ์ผ ์ด๋
ํ์ผ๋ช ๋ณ๊ฒฝ
ํ์ผ ์ญ์
- ๋ฐ์ดํฐ ์ ๋ ฌ ์งํฉ์ ๋ฐ๋ผ ์ ๋ ฌ๋ ๋ธ๋ผ์ฐ์ ํ์ผ ๋ชฉ๋ก์ ๋ณผ ์ ์์ต๋๋ค.
- ํ๋ก์ ํธ ์ค๋ช ํ์ผ์๋ ๋ฐ์ดํฐ ์ ๋ ฌ ์งํฉ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ํ์ผ ๋ธ๋ผ์ฐ์ ๋ชฉ๋ก์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์คํฌํ์ ํด๋ ๋ชฉ๋ก๊ณผ ํ์ผ ๋ชฉ๋ก์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค.
ํ๋ก์ ํธ ๋ธ๋ผ์ฐ์ (๋ ์ง, ์นดํ ๊ณ ๋ฆฌ,์์น, ์ํ๋ form ๊ธฐ๋ฐ์ผ๋ก ์ ๋ ฌ)
ํ๋ก์ ํธ ํ์ผ ํด๋ฆญ์ ๋งํฌ๋ค์ด ๊ธฐ๋ฐ ๊ธ description
AI ์์ฝ (ex; api doc์ฒ๋ผ ์๋์ผ๋ก ํด๋น ํ๋ก์ ํธ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ์์ฝ ์์ฑ)
comment ๋ง๋ถ์ด๊ธฐ
- (Option) Sorted by To do date
- (Option) Sorted by League
- (Option) Sorted by Priority
์ง๋ ๊ธฐ๋ฐ ๋์๋ณด๋
google map web dashboard page ์ ๊ฐ์ ธ์ค๊ธฐ (BE)
google map ํ๊ธฐ(FE)
ํน์ ์์น์ ์ ์ผ๋ก DB์ฐ๊ฒฐ ํด๋ฆญ์ ์ฐฝ ์ด๋ฆฌ๋๋ก
์์น๊ธฐ๋ฐ api ์ฐ๋
โข ์์น ๊ธฐ๋ฐ์ Google MAP์ ์ฌ์ฉํ๋ฉฐ, ์์น๋ Google์ MAP API ํ ์ด๋ธ์ ์ํด ๊ธฐ๋ก๋ฉ๋๋ค.
์บ๋ฆฐ๋ ๊ธฐ๋ฐ ๋์๋ณด๋
google calendar web dashboard page ์ ๊ฐ์ ธ์ค๊ธฐ (BE)
google calendar ํ๊ธฐ(FE)
ํ๊ฒ ๋ฐ์ด
ํ๋ก์ ํธ to do ํ ์ผ ํ๊ฒ ๋ฐ์ด ๋ฐ์๋ณด๋์ ํํ.
โข ๋ ์ง ๋ฐ ์๊ฐ์ UTC ๊ธฐ์ค์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์๊ฐ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์์ ์๊ฐ๋๋ก ์ ํํฉ๋๋ค.
(Option) to do ์ฒดํฌ ๊ธฐ๋ฐ ๋์๋ณด๋
๊ด๋ฆฌ์๊ฐ ์์ฒญํ๊ณ ์ปจํํด์ผ ์ฒดํฌ์๋ฃ
- ๊ด๋ฆฌ์๊ฐ ์์ฒญํ๋ ๋ฌธ์ ์ ๋ํ return๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฐ๊ด์ or ์ฃผ๊ด์ demand๊ฑฐ๋
- ์์ ํ์์ demand ๋ณด๊ณ ์ ํ์ผ
- ๊ด๋ฆฌ์๋ ์์๊ฐ์ด ํ์์ ์์ ์์ฌ๋ก ์ ํด์ ์์ฒญํ ์ ์๊ณ , ํด๋น ์์ฒญ์ ๋ํด member๋ ์ ์ถ์ ํด์ผํ๋ค. member๋ผ๋ฆฌ ๋ณธ์ธ ๊ฒ ์ ์ธ ํฌํ๊ฐ ๊ฐ๋ฅ.
- (์ต์ )์ ์ถ๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋ฐ์๋ ์ ๋น๊ต๊ฐ์ ๋ณด์ฌ์ค ์ ์๋๋ก ์๊ฐํ ํ๋ ๊ธฐ๋ฅ๋ ์ฐจํ ์ถ๊ฐ.
(Option) League, Level, ๊ฒฝํ์น ๊ธฐ๋ฐ ๋์๋ณด๋
Level ์์ผ๋ก ๊ณ์ ๋์ด
๊ฒฝํ์น ์์ผ๋ก ํ์คํธ ๋์ด
- ๋ฆฌ๊ทธ ๋์๋ณด๋๋ ์ฌ์ฉ์(๊ด๋ฆฌ์, ํ์)์ ํ๋ก์ ํธ์ ๋ฆฌ๊ทธ, ๋ ๋ฒจ, ๊ฒฝํ์ ํ์ํฉ๋๋ค.
- ์์ผ๋ก ์จ๋ผ์ธ๊ณผ ์คํ๋ผ์ธ์ผ๋ก ๊ตฌ๋ถ๋ ์์ ์ ๋๋ค.
(Option) ์ฐ์ ์์, ํฌํ ๊ธฐ๋ฐ ๋์๋ณด๋
์ฐ์ ์์๋
- ํฌํ์๊ฐ ๊ฐ์ฅ ๋ง์๊ฒ ์ฐ์ ์์ ๋๋๋ก
- ๋์ ๊ด๋ฆฌ์๊ฐ ๋ง๋ prj๊ฐ ๋๋๋ก ์ค์
- ์ฐ์ ์์ ๋์๋ณด๋์๋ ํฌํ ์์คํ ์ด ์์ต๋๋ค.
- ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ํ๋ก์ ํธ์ ์ฐ์ ์์๋ฅผ ์์ ํ ์ ์์ง๋ง ๊ธฐ๋ณธ ์ฐ์ ์์๋ ํฌํ ์์์ ๊ถํ ์์์ ๋๋ค.
(์ฐจํ) ์๋ฆผ, ๋ชจ๋ํฐ๋ง
๋ ์ง ๊ธฐ๋ฐ to do ์๋ฆผ ๋ณด๋ด๊ธฐ
(์ฐจํ) ๋ฐ์ดํฐ๋ฒ ์ด์ค AI
๋ฐ์ดํฐ ๊ธฐ๋ฐ ๋ฆฌ์คํธ๋ค์ ๋ฐ์์ ์ด๋ค ํํ์ form์ด ์ข์์ง ๋์ค์ ์ถ์ฒ๊ฐ๋ฅํ๋๋ก
๋ฐ์ดํฐ๋ค์ ๋ชจ์๋ค.
(์ฐจํ) ์ธ๊ธฐ๋, ๊ด์ฌ๋ ์นดํ ๊ณ ๋ฆฌ ์ถ๊ฐ
2. ์๋๋ฆฌ์ค (Ver 1.0) ๐
1. ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ & ์ ์ ๋ค ์กฐํ & ์ ์ ๋ค ์ญ์ ๊ธฐ๋ฅ
2. ๋ก๊ทธ์ธํ ์ ์ ์ ํน์ ๊ฐ์ธ ํด๋์ ๊ฐ์ด Project Browser List ์์ฑ
- (Option)
3. Project Browser List ๊ธฐ๋ฐ ๋ชจ๋ Folder,File์ ๋์ํ๋ ๋น Description Page ์์ฑ
- (์ ์ฅ์์น๋ ๋ณ๊ฐ)
(Option) (FE) ์ฐจํ ๊ตฌํ
4. (Option) (FE) ์์ฑ๋ Folder, File Browser List๋ฅผ ์๊ฐํ
5. (Option) (FE) ์๊ฐํ ๋ File,Folderํด๋ฆญ ์ ํด๋น ๊ฒฝ๋ก ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก Description Page ๋ณด์ฌ์ฃผ๊ธฐ
7. (Option) (FE) Board ์์ฑ ๋ฒํผ ํด๋ฆญ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค๊ธฐ
9.(Option) (FE) Board Table ์๊ฐํ (๊ฐ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๋ค๋ฆ)
6. ์์ฑ๋ Description Page์ ๊ฐ์ ๋ฃ์ด ์ ์ฅ.
8. (BE) Board ์์ฑ ๋ฒํผ โ Description Page์ ๊ธฐ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Board Table ์์ฑ
- ์ฒซ๋ฒ์งธ Board Table์ Project Browser List (Default Board)
- (Option) ๋๋ฒ์งธ Board Table์ To do List
(Option)
- ์ ์ ๋ณ ๊ถํ ๋ค์ํ (Ver 2.0)
- To do List ๊ตฌํ (Team Leader, Member๊ฐ ์์ฒญ)
- ์๋ ๊ตฌํ (To do ๋ฅผ ํ ์ฌ๋์๊ฒ, ๋ฐ๋์ฌ๋์๊ฒ, ์๋ฃ ํ ํ์ธ ๋ฒํผ๊น์ง)
- ์นดํ ๊ณ ๋ฆฌ ๋ค์ํ (MAP, Calendar) (Ver 3.0)
- OPEN API - chat gpt ํ์ฉํ์ฌ Browser List ์ถ์ฒ ์์ฑ ๋ฑโฆ ํ์ฉ
- ํ๋ก์ ํธ ์ข ๋ฃ ์ ์ต์ข Ver์์ SNS ๊ณ์ API๋ฅผ ํตํด ํ์๊ฐ์ & ๋ก๊ทธ์ธ ๊ตฌํ
- Ver 1.0์ผ๋ก ๊ตฌํํด๋ณด๊ธฐ