Skip to content

EWSNproject/fe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ํ˜œํƒ์˜จ

ํ˜œํƒ์˜จ

๐Ÿ—ฃ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

ํ˜œํƒ์˜จ์€ ์‚ฌ์šฉ์ž ๋งž์ถคํ˜• ๋ณต์ง€ ์ถ”์ฒœ๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋ฐ˜ ์ •๋ณด ๊ณต์œ  ๊ธฐ๋Šฅ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ๋ณต์ง€ ์ •๋ณด ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ๊ธฐํš ๋ฐฐ๊ฒฝ

์ •๋ณด๊ฐ€ ๋ถ„์‚ฐ๋˜์–ด ์ ‘๊ทผ์ด ์–ด๋ ค์šด ๋ณต์ง€ ์„œ๋น„์Šค๋ฅผ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ณ ์ž ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ์ฃผ์š” ๊ธฐ๋Šฅ ์†Œ๊ฐœ

โœ… 1. ์‚ฌ์šฉ์ž ๋งž์ถค ๋ณต์ง€ ์ถ”์ฒœ

  • ์‚ฌ์šฉ์ž์˜ ์ง€์—ญ, ๊ด€์‹ฌ ํ‚ค์›Œ๋“œ, ๊ฐ€๊ตฌ ์ƒํ™ฉ ๋“ฑ์— ๊ธฐ๋ฐ˜ํ•œ ๋งž์ถคํ˜• ๋ณต์ง€ ํ˜œํƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
  • ํ•„ํ„ฐ ๊ฒ€์ƒ‰, ์ž๋™์™„์„ฑ ๊ฒ€์ƒ‰์–ด, ์ •๋ ฌ ๊ธฐ๋Šฅ ๋“ฑ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๋ณต์ง€ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ด€์‹ฌ ์žˆ๋Š” ๋ณต์ง€ ํ˜œํƒ์€ ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ €์žฅํ•˜๊ณ  ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… 2. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ

  • ์‚ฌ์šฉ์ž ๊ฐ„ ์ •๋ณด ๊ณต์œ ๋ฅผ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์งˆ๋ฌธ, ์ž์œ , ์ธ์‚ฌ ๋“ฑ ๊ฒŒ์‹œํŒ ์œ ํ˜•๋ณ„๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ฒŒ์‹œ๊ธ€์—๋Š” ์ด๋ฏธ์ง€ ์ฒจ๋ถ€, ํƒœ๊ทธ, ์ถ”์ฒœ ๊ธฐ๋Šฅ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๋Œ“๊ธ€, ๋Œ€๋Œ“๊ธ€, ๋‹ต๋ณ€ ์ฑ„ํƒ ๋“ฑ ํ™œ๋ฐœํ•œ ์†Œํ†ต์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์‹ ๊ณ  ๋ฐ ์‚ญ์ œ ๊ธฐ๋Šฅ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

โŒ› ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2024.01.07 ~ 2024.05.30

1. ๊ฐœ๋ฐœ์ž ์†Œ๊ฐœ ๐Ÿง‘โ€๐Ÿ’ป

๊ณ ๋ฒ”์„ ์žฅ์šฑ ์˜ค์ฑ„์—ฐ ๋ฐฑ์Šน์€

[๋งก์€ ์ž‘์—…]

๊ณ ๋ฒ”์„(ํŒ€์žฅ) : DB ์„ค๊ณ„ ๋ฐ ๊ด€๋ฆฌ, ๋ฐฑ์—”๋“œ ๊ตฌํ˜„
์žฅ์šฑ : ๋ฐฑ์—”๋“œ ๊ตฌํ˜„
์˜ค์ฑ„์—ฐ : UI ์„ค๊ณ„ ๋ฐ ์›น ํ”„๋ก ํŠธ ๊ตฌํ˜„
๋ฐฑ์Šน์€ : UI ์„ค๊ณ„ ๋ฐ ์›น ํ”„๋ก ํŠธ ๊ตฌํ˜„


2. ๊ธฐ์ˆ  ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๐Ÿ› ๏ธ

[๊ธฐ์ˆ  ์Šคํƒ]

React TailwindCSS Axios
Java Spring_Boot MySQL MongoDB Redis DockerHub NGINX AWS E2C AWS RDS

[๊ธฐ์ˆ  ๋„๊ตฌ]

NPM Figma Git

[ํ˜‘๋ ฅ ๋„๊ตฌ]

GitHub Notion Discord


3. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์š”์•ฝ

ํ”„๋กœ์ ํŠธ๋Š” React ๊ธฐ๋ฐ˜ ํ”„๋ก ํŠธ์—”๋“œ์™€ Spring Boot ๊ธฐ๋ฐ˜ ๋ฐฑ์—”๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.


ํ˜œํƒ์˜จ-์•„ํ‚คํ…์ฒ˜

๐Ÿ” ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์š”์•ฝ

  1. ์‚ฌ์šฉ์ž๋Š” Netlify์— ๋ฐฐํฌ๋œ React ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜์—ฌ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ, ๋ณต์ง€ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ํ”„๋ก ํŠธ๋Š” Axios(httpClient)๋ฅผ ํ†ตํ•ด Spring Boot API ์„œ๋ฒ„๋กœ HTTP ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  3. ์š”์ฒญ์€ Nginx๋ฅผ ๊ฑฐ์ณ AWS EC2์˜ Docker ์ปจํ…Œ์ด๋„ˆ(Spring Boot)๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  4. ์š”์ฒญ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฐฑ์—”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค:
๋ฐ์ดํ„ฐ ์ข…๋ฅ˜ ์ €์žฅ์†Œ/์ฒ˜๋ฆฌ ๋Œ€์ƒ
๊ฒŒ์‹œ๊ธ€, ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ ๐ŸŸฆ MySQL (AWS RDS)
์ด๋ฏธ์ง€, ํŒŒ์ผ ๋“ฑ ์ •์  ๋ฆฌ์†Œ์Šค ๐ŸŸจ AWS S3
ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ ๋ฐ์ดํ„ฐ ๐ŸŸฉ MongoDB
๋ถ๋งˆํฌ, ์„ธ์…˜ ๋“ฑ ์ž„์‹œ ๋ฐ์ดํ„ฐ ๐ŸŸฅ Redis
  1. ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋Š” JSON์œผ๋กœ ํ”„๋ก ํŠธ์— ์‘๋‹ต๋˜๋ฉฐ, React๊ฐ€ ์ด๋ฅผ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

API ๋ช…์„ธ์„œ

๐Ÿ‘ค ์œ ์ € API ๋ช…์„ธ์„œ ๋ณด๊ธฐ
API URL Method ์„ค๋ช…
/signup POST ํšŒ์›๊ฐ€์ž…
/login POST ๋กœ๊ทธ์ธ
/logout POST ๋กœ๊ทธ์•„์›ƒ
/users/me GET ๋‚ด ์ •๋ณด ์กฐํšŒ
/users/me/profile PUT ํ”„๋กœํ•„ ์ˆ˜์ •
/users/me/password PUT ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
/users/me DELETE ํšŒ์› ํƒˆํ‡ด
/users/check-duplicate GET ์•„์ด๋””/๋‹‰๋„ค์ž„ ์ค‘๋ณต ํ™•์ธ
/users/{userId} GET ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ์ •๋ณด ์กฐํšŒ
/users/me/bookmarked/posts GET ๋‚ด๊ฐ€ ๋ถ๋งˆํฌํ•œ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
/users/me/posts GET ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
/users/me/recommended/posts GET ๋‚ด๊ฐ€ ์ถ”์ฒœํ•œ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ
๐Ÿ“ ๊ฒŒ์‹œ๊ธ€/๋Œ“๊ธ€/๋‹ต๋ณ€ API ๋ช…์„ธ์„œ ๋ณด๊ธฐ
API URL Method ์„ค๋ช…
/posts POST ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ
/posts/type GET ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ์กฐํšŒ
/posts/{postId} GET ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ ์กฐํšŒ
/posts/{postId} PUT ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •
/posts/{postId}/recommend POST ๊ฒŒ์‹œ๊ธ€ ์ถ”์ฒœ
/posts/{postId}/recommend DELETE ๊ฒŒ์‹œ๊ธ€ ์ถ”์ฒœ ํ•ด์ œ
/posts/{postId}/comments POST ๋Œ“๊ธ€ ์ž‘์„ฑ
/posts/{postId}/comments GET ๋Œ“๊ธ€ ๋ชฉ๋ก ์กฐํšŒ
/posts/{postId}/comments/{commentId} DELETE ๋Œ“๊ธ€ ์‚ญ์ œ
/posts/{postId}/comments/{commentId}/replies POST ๋Œ€๋Œ“๊ธ€ ์ž‘์„ฑ
/posts/{postId}/comments/{commentId}/replies GET ๋Œ€๋Œ“๊ธ€ ๋ชฉ๋ก ์กฐํšŒ
/posts/{postId}/answers POST ๋‹ต๋ณ€ ์ž‘์„ฑ
/posts/{postId}/answers GET ๋‹ต๋ณ€ ๋ชฉ๋ก ์กฐํšŒ
/posts/{postId}/answers/{answerId}/select PUT ๋‹ต๋ณ€ ์ฑ„ํƒ
/posts/{postId}/answers/{answerId} DELETE ๋‹ต๋ณ€ ์‚ญ์ œ
/mongo/search/posts GET ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰
/mongo/search/posts?searchTerm= GET ํ†ตํ•ฉ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰
๐Ÿ’ก ๋ณต์ง€ ํ˜œํƒ API ๋ช…์„ธ์„œ ๋ณด๊ธฐ
API URL Method ์„ค๋ช…
/services GET ๋ณต์ง€ ํ•„ํ„ฐ ๊ฒ€์ƒ‰
/services/detail/{serviceId} GET ๋ณต์ง€ ์ƒ์„ธ ์กฐํšŒ
/services/{id}/bookmark POST ๋ณต์ง€ ๋ถ๋งˆํฌ ์ถ”๊ฐ€
/services/{id}/bookmark DELETE ๋ณต์ง€ ๋ถ๋งˆํฌ ์‚ญ์ œ
/services/filters GET ๋ณต์ง€ ํ•„ํ„ฐ ํ•ญ๋ชฉ ์กฐํšŒ
/services/recent GET ์ตœ๊ทผ ๋ณต์ง€ ์„œ๋น„์Šค
/services/popular GET ์ธ๊ธฐ ๋ณต์ง€ ์„œ๋น„์Šค
/mongo/search/services GET ๋ณต์ง€ ๊ฒ€์ƒ‰
/mongo/search/services/autocomplete GET ๋ณต์ง€ ์ž๋™์™„์„ฑ
/mongo/services/matched GET ๋งž์ถคํ˜• ๋ณต์ง€ ์ถ”์ฒœ
/interests GET ๊ด€์‹ฌ์‚ฌ ๋ชฉ๋ก ์กฐํšŒ
/interests/me GET ๋‚ด ๊ด€์‹ฌ์‚ฌ ์กฐํšŒ
/interests/me POST ๊ด€์‹ฌ์‚ฌ ์ €์žฅ
/search/history GET ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์กฐํšŒ
/search/history/{historyId} DELETE ๊ฒ€์ƒ‰ ๊ธฐ๋ก ๊ฐœ๋ณ„ ์‚ญ์ œ
/search/history DELETE ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์ „์ฒด ์‚ญ์ œ
๐Ÿšจ ์‹ ๊ณ  API ๋ช…์„ธ์„œ ๋ณด๊ธฐ
API URL Method ์„ค๋ช…
/users/reports POST ์‚ฌ์šฉ์ž ์‹ ๊ณ 
/admin/users/reports GET ์‹ ๊ณ  ๋‚ด์—ญ ์ „์ฒด ์กฐํšŒ
/admin/users/reports/status/{status} GET ์‹ ๊ณ  ์ƒํƒœ๋ณ„ ์กฐํšŒ
/admin/users/reports/{reportId}/resolve POST ์‹ ๊ณ  ์Šน์ธ ์ฒ˜๋ฆฌ
/admin/users/reports/{reportId}/reject POST ์‹ ๊ณ  ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌ
๐Ÿ›  ๊ด€๋ฆฌ์ž API ๋ช…์„ธ์„œ ๋ณด๊ธฐ
API URL Method ์„ค๋ช…
/admin/users GET ์ „์ฒด ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ
/admin/users/withdrawn GET ํƒˆํ‡ด ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ
/admin/users/suspended GET ์ •์ง€ ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ
/admin/users/{userId}/suspend POST ํšŒ์› ์ •์ง€
/admin/users/{userId}/unsuspend PUT ํšŒ์› ์ •์ง€ ํ•ด์ œ
๐Ÿค– ์ฑ—๋ด‡ API ๋ช…์„ธ์„œ ๋ณด๊ธฐ
API URL Method ์„ค๋ช…
/chatbot GET ์ฑ—๋ด‡ ์‘๋‹ต ์š”์ฒญ

4. ์‹ค์ œ ๋™์ž‘ํ™”๋ฉด

โœ… ์ž์ฒด ์›น์‚ฌ์ดํŠธ ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ

ํšŒ์›๊ฐ€์ž…

ํ˜œํƒ์˜จ-ํšŒ์›๊ฐ€์ž…2๋ฐฐ์†

์ฒซ๋กœ๊ทธ์ธ์ดํ›„ ํ‚ค์›Œ๋“œ ๋ชจ๋‹ฌ์ฐฝ ์„ ํƒ๊นŒ์ง€

ํ˜œํƒ์˜จ-๋กœ๊ทธ์ธ2๋ฐฐ์†_1


โœ… ๋กœ๊ทธ์ธ ์„ฑ๊ณต ํ›„ ํ‚ค์›Œ๋“œ ์„ ํƒ ์‹œ ๋ฉ”์ธํ™ˆ

ํ˜œํƒ์˜จ-๋ฉ”์ธํ™ˆ_2


โœ… ๋ณต์ง€ํ˜œํƒ ์ „์ฒด๋ณด๊ธฐ

๋ณต์ง€ํ˜œํƒ ํ•„ํ„ฐ๋กœ ๊ฒ€์ƒ‰ํ•œ ๊ฒฝ์šฐ

ํ˜œํƒ์˜จ-๋ณต์ง€์ „์ฒด-ํ•„ํ„ฐ-Clipchamp๋กœ-์ œ์ž‘

๋ณต์ง€ํ˜œํƒ ๊ฒ€์ƒ‰์ž…๋ ฅ์ฐฝ์œผ๋กœ ๊ฒ€์ƒ‰ํ•œ ๊ฒฝ์šฐ

ํ˜œํƒ์˜จ-์ „์ฒด๋ณด๊ธฐ-๊ฒ€์ƒ‰์ฐฝ-Clipchamp๋กœ-์ œ์ž‘


โœ… ํ†ตํ•ฉ๊ฒ€์ƒ‰

ํ˜œํƒ์˜จ-ํ†ตํ•ฉ๊ฒ€์ƒ‰-Clipchamp๋กœ-์ œ์ž‘


โœ… ํ˜œํƒ์˜จ ์ปค๋ฎค๋‹ˆํ‹ฐ

๊ฒŒ์‹œํŒ ์ „๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ

ํ˜œํƒ์˜จ-๊ฒŒ์‹œํŒ-์ „๋ฐ˜์ ์ธ-Clipchamp๋กœ-์ œ์ž‘

๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ

ํ˜œํƒ์˜จ-๊ธ€์“ฐ๊ธฐ-Clipchamp๋กœ-์ œ์ž‘

๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ : ์งˆ๋ฌธ๊ฒŒ์‹œํŒ-์ฑ„ํƒ๊ธฐ๋Šฅ

ํ˜œํƒ์˜จ-์ฑ„ํƒ๊ธฐ๋Šฅ-Clipchamp๋กœ-์ œ์ž‘


โœ… ๋งˆ์ดํŽ˜์ด์ง€ & ๋กœ๊ทธ์•„์›ƒ

ํ˜œํƒ์˜จ-๋งˆ์ดํŽ˜์ด์ง€-Clipchamp๋กœ-์ œ์ž‘


โœ… ๊ด€๋ฆฌ์žํŽ˜์ด์ง€ : ๊ด€๋ฆฌ์ž์ธ ๊ฒฝ์šฐ, ๊ด€๋ฆฌ์žํŽ˜์ด์ง€ ์ด๋™ํ›„ ์‹ ๊ณ ๋œ ์œ ์ €๊ด€๋ฆฌ

ํ˜œํƒ์˜จ-๊ด€๋ฆฌ์ž-Clipchamp๋กœ-์ œ์ž‘


โœ… ์ฑ—๋ด‡

-.mp4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages