taekto / MwoniMoney

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๋ชฉ์ฐจ

์†Œ๊ฐœ ๊ตฌํ˜„ ๋งˆ์น˜๋ฉฐ
๐Ÿ“– ๊ฐœ์š” ๐ŸŽฏ ์ฃผ์š” ํŽ˜์ด์ง€ ๋ฐ ๊ธฐ๋Šฅ ๐Ÿ‘ฆ ํŒ€์›
๐Ÿ’ก ํ”„๋กœ์ ํŠธ ๊ธฐํš ๐Ÿ‘€ ์‚ฐ์ถœ๋ฌผ ๐Ÿ“ฃ ์†Œ๊ฐ
๐ŸŒต ๋นŒ๋“œ ํ™˜๊ฒฝ ๐Ÿ“š ํŒŒ์ผ ๊ตฌ์กฐ๋„

์†Œ๊ฐœ

๐Ÿ“– ๊ฐœ์š”

๐Ÿ‘ SSAFY 9๊ธฐ 2ํ•™๊ธฐ ํŠนํ™” ํ”„๋กœ์ ํŠธ ๐Ÿ‘
๋ถ€๋ชจ์™€ ์•„์ด๋ฅผ ์œ„ํ•œ ๊ธˆ์œต ๊ต์œก ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด์ž

2023.08.21 ~ 2023.10.06 (7์ฃผ)


๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๐Ÿ’ก ํ”„๋กœ์ ํŠธ ๊ธฐํš

UCC

SAPIER UCC


๋ฐฐ๊ฒฝ

"์š”์ฆ˜ ์ฒญ์†Œ๋…„๋“ค์˜ ๊ธˆ์œต์ดํ•ด๋ ฅ์ด ๋งค์šฐ ๋–จ์–ด์ง„๋‹ค๋˜๋ฐ"

10๋…„์ „๋ณด๋‹ค ์ ์ˆ˜ ๋” ๋–จ์–ด์กŒ๋‹คโ€ฆ์ฒญ์†Œ๋…„ ๊ธˆ์œต์ดํ•ด๋ ฅ ํ˜•ํŽธ์—†๋‹ค๋Š”๋ฐ - ๋งค์ผ๊ฒฝ์ œ
์ฒญ๋…„์ธต ๊ธˆ์œต์ดํ•ด๋ ฅ, 60๋Œ€๋ณด๋‹ค ๋–จ์–ด์ ธโ€ฆ 34% "์ €์ถ•๋ณด๋‹ค ์†Œ๋น„" - ๋™์•„์ผ๋ณด
๋ญ๋‹ˆMoney๋Š” ์งœ๊ธˆํ†ต, ์ฑŒ๋ฆฐ์ง€, ๊ธˆ์œตํ€ด์ฆˆ ๊ธฐ๋Šฅ ๋“ฑ์„ ํ†ตํ•ด ์ด๋ฅผ ํ•ด๊ฒฐํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

"์ง€๊ธˆ ์‹œ์ค‘์— ์žˆ๋Š” ๊ธˆ์œต๊ต์œก ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•„์ด๋“ค์ด ์“ฐ๊ธฐ์—” ๋„ˆ๋ฌด ์–ด๋ ค์›Œ"

ํ˜„์žฌ ์‹œ์ค‘์— ์ถœ์‹œ๋˜์–ด์žˆ๋Š” ๊ธˆ์œต๊ต์œก ํ”Œ๋žซํผ์€ ๋Œ€๋ถ€๋ถ„ UI/UX๊ฐ€ ์•„์ด๋“ค์ด ์“ฐ๊ธฐ์—” ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.
๋ญ๋‹ˆMoney๋Š” ๋ถ€๋ชจ๊ฐ€ ๋ณด๋Š” ํ™”๋ฉด๊ณผ ์•„์ด๊ฐ€ ๋ณด๋Š” ํ™”๋ฉด์„ ๋ถ„๋ฆฌํ•ด ์ด๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.


๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๐ŸŒต ๋นŒ๋“œ ํ™˜๊ฒฝ

FrontEnd BackEnd Database Infra
react 18.2.0 Java 17 (Azul Zulu version 17.0.7) MongoDB 3.6.8 AWS EC2 (Ubuntu 20.04 LTS)
recoil 0.7.7 Spring Boot 3.0.10 Redis 7.2.2 Nginx 1.18.0
recoil-persist 5.1.0 Spring Security MariaDB GitLab CICD
qrcode.react 3.1.0 Spring Data JPA Jenkins 2.414
react-wordcloud 1.2.7 QueryDSL Docker 24.0.6
typescript 0.57.1 Komoran 3.3.4 AWS S3
Django 4.2.5


๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๊ตฌํ˜„

๐ŸŽฏ ์ฃผ์š” ํŽ˜์ด์ง€ ๋ฐ ๊ธฐ๋Šฅ

๋ฉ”์ธํŽ˜์ด์ง€

๋ถ€๋ชจ ๋ฉ”์ธํŽ˜์ด์ง€ ์ž๋…€ ๋ฉ”์ธํŽ˜์ด์ง€
๋ฉ”์ธํŽ˜์ด์ง€_๋ถ€๋ชจ ๋ฉ”์ธํŽ˜์ด์ง€_์ž๋…€
๋ถ€๋ชจ ํ™”๋ฉด์—์„œ๋Š” ์ž๋…€๋“ค์˜ ์šฉ๋ˆ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋…€ ํ™”๋ฉด์—์„œ๋Š” ๋งค์ผ๋งค์ผ
๋ฐธ๋Ÿฐ์Šค๊ฒŒ์ž„๊ณผ ๊ธˆ์œตํ€ด์ฆˆ๋ฅผ ํ†ตํ•ด ์šฉ๋ˆ์„ ๋ฒŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ฐ€์กฑ์€ํ–‰ ํŽ˜์ด์ง€

๋Œ€์ถœ ๋‚ด์—ญ ๋Œ€์ถœ ์ƒ์„ฑ ์ƒ์„ธ ๋‚ด์šฉ ์ž…๋ ฅ
๊ฐ€์กฑ์€ํ–‰1 ๊ฐ€์กฑ์€ํ–‰2 ๊ฐ€์กฑ์€ํ–‰3
์ž๋…€ํ™”๋ฉด์—์„œ๋Š”
๋ถ€๋ชจ์—๊ฒŒ ๋นŒ๋ฆฐ ๋นš์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
+๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ
๋Œ€์ถœ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด์šฉ / ๊ธฐํ•œ / ๊ธˆ์•ก๋“ฑ์„
์ ์–ด ๋Œ€์ถœ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ž๋…€ ํ™”๋ฉด ๋ถ€๋ชจ ํ™”๋ฉด
๊ฐ€์กฑ์€ํ–‰4 ๊ฐ€์กฑ์€ํ–‰5
์ž๋…€ํ™”๋ฉด์—์„œ๋Š” ๋Œ€์ถœ์˜ ์ˆ˜๋ฝ์—ฌ๋ถ€๊ฐ€ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค. ๋ถ€๋ชจํ™”๋ฉด์—์„œ๋Š” ๋Œ€์ถœ์„ ์ˆ˜๋ฝ/๊ฑฐ์ ˆ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์ถœ์ƒํ™˜(1) ๋Œ€์ถœ์ƒํ™˜(2) ๋Œ€์ถœ์ƒํ™˜(3)
๊ฐ€์กฑ์€ํ–‰6 ๊ฐ€์กฑ์€ํ–‰7 ๊ฐ€์กฑ์€ํ–‰8
์ž๋…€๊ฐ€ ๋Œ€์ถœ์„ ์ƒํ™˜ํ•˜๋ฉด
์ƒํ™˜๋œ ๋งŒํผ ์ง„ํ–‰๋ฐ”๊ฐ€ ํ™œ์„ฑํ™” ๋ฉ๋‹ˆ๋‹ค.


๊ธˆ์šฉ ์ฑ—๋ด‡

์ฑ—๋ด‡ ์งˆ๋ฌธ ์ฑ—๋ด‡ ๋‹ต๋ณ€
์ฑ—๋ด‡_์งˆ๋ฌธ ์ฑ—๋ด‡_๋‹ต๋ณ€
์ฑ—๋ด‡์—๊ฒŒ ์งˆ๋ฌธ์„ํ•˜๋ฉด
๋‹ต๋ณ€์ด LLM์„ ํ†ตํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๐Ÿ‘€ ์‚ฐ์ถœ๋ฌผ

์š”๊ตฌ์‚ฌํ•ญ๋ช…์„ธ์„œ API ๋ช…์„ธ์„œ
์š”๊ตฌ์‚ฌํ•ญ๋ช…์„ธ์„œ API๋ช…์„ธ์„œ
์™€์ด์–ด ํ”„๋ ˆ์ž„ ๋ชฉ์—… ๋””์ž์ธ ERD
์™€์ด์–ดํ”„๋ ˆ์ž„ ๋ชฉ์—…๋””์ž์ธ ERD

์ตœ์ข…๋ฐœํ‘œ ppt

์ตœ์ข…๋ฐœํ‘œppt


๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๐Ÿ“š ํŒŒ์ผ ๊ตฌ์กฐ๋„

FrontEnd

๐Ÿ“ฆfrontend-web
 โ”ฃ ๐Ÿ“‚public
 โ”ƒ โ”ฃ ๐Ÿ“‚images
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Modal
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚Quiz
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚StartPage
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚StartPage1
 โ”ฃ ๐Ÿ“‚src
 โ”ƒ โ”ฃ ๐Ÿ“‚apis
 โ”ƒ โ”ฃ ๐Ÿ“‚assests
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚image
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚faq
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚main
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚MoneyPage
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚quiz
 โ”ƒ โ”ฃ ๐Ÿ“‚components
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Chatting
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Children
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Common
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚About
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Balance
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Bank
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Challenge
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Faq
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚GoalMoney
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Main
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚MoneyPage
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚MyPage
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Quiz
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Layout
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚Parents
 โ”ƒ โ”ฃ ๐Ÿ“‚modal
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Challenge
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚GoalMoney
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Loan
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Mypage
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Quiz
 โ”ƒ โ”ฃ ๐Ÿ“‚pages
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Common
 โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚StartPage
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚Login
 โ”ƒ โ”ฃ ๐Ÿ“‚states
 โ”ƒ โ”ฃ ๐Ÿ“‚Styles

BackEnd

๐Ÿ“ฆbackend
 โ”ฃ ๐Ÿ“‚src
 โ”ƒ โ”ฃ ๐Ÿ“‚main
 โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚java
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚com
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚ntt
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚mwonimoney
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚domain
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚account
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚request
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚response
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚v1
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚v2
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚entity
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚dto
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚dtoV2
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚repository
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚v1
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚v2
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚challenge
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚request
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚response
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚entity
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚dto
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚repository
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚game
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚request
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚entity
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚exception
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚dto
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚vo
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚repository
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚member
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚request
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚entity
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚dto
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚vo
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚repository
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚util
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚quiz
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚request
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚entity
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚dto
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚repository
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚global
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚common
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚entity
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚config
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚exception
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚fcm
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚api
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚request
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚schedulerservice
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚security
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚jwt
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚exception
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚oauth
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚exception
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚handler
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚info
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚inpl
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚model
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚vo
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚repository
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚service
 โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“‚util
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚resources

๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๋งˆ์น˜๋ฉฐ

๐Ÿ‘ฆ ํŒ€์›

Tech Rocky Light Izzy J Silver
Tech Rocky Light Izzy J Silver
ํŒ€์žฅ
Front-end
Back-end
BE Lead Back-end
Security
Back-end
Front-end
Design
FE Lead
Design
BackEnd
Infra
Design

ํŒ€์› ์—ญํ•  ์ƒ์„ธ

Tech

  • ๋กœ๊ทธ์ธ ํ™”๋ฉด ๊ตฌํ˜„
  • ๋ฐธ๋Ÿฐ์Šค๊ฒŒ์ž„ ๋ฐ ํ€ด์ฆˆ ํ™”๋ฉด ๊ตฌํ˜„

Rocky

BE

  • Spring Boot ์™€ JPA๋ฅผ ์ด์šฉํ•˜์—ฌ Rest API ๊ตฌํ˜„
    • ๋ฉค๋ฒ„์ •๋ณด ๊ด€๋ จ API
    • ๋ถ€๋ชจ-์ž์‹ ๋งคํ•‘ ๊ด€๋ จ API
    • ํ€ด์ฆˆ ๊ธฐ๋Šฅ ๊ด€๋ จ API
    • ๋ฐธ๋Ÿฐ์Šค๊ฒŒ์ž„ ๊ด€๋ จ API
    • ์งœ๊ธˆํ†ต ๊ด€๋ จ API
  • Spring WebFlux๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฑ„ํŒ…๊ธฐ๋Šฅ ๊ตฌํ˜„
  • Komoran ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์›Œ๋“œํด๋ผ์šฐ๋“œ ๊ตฌํ˜„
  • S3 ๊ตฌ์ถ• ๋ฐ ์—ฐ๋™

FE

  • ์ฑ„ํŒ… ๋ฐ ์›Œ๋“œํด๋ผ์šฐ๋“œ ํ™”๋ฉด ๊ตฌํ˜„

Light

BE

  • Spring Security๋ฅผ ์ด์šฉํ•œ ๋ฉค๋ฒ„๊ถŒํ•œ๋ณ„ ์ธ์ฆ/์ธ๊ฐ€ ์ฒ˜๋ฆฌ
  • Spring Security์™€ Oauth2.0์„ ์ด์šฉํ•œ ์†Œ์…œ๋กœ๊ทธ์ธ ๊ตฌํ˜„
    • ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ตฌํ˜„
    • ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ตฌํ˜„
    • JWT ํ† ํฐ ๋ฐœํ–‰ ๋ฐ ์ปค์Šคํ…€ ์ธ์ฆํ•„ํ„ฐ ๊ตฌํ˜„
  • Swagger ๊ตฌ์ถ•
  • OpenAI API๋ฅผ ํ™œ์šฉํ•œ ์ฑ—๋ด‡ ๊ตฌํ˜„
  • Spring Scheduler๋ฅผ ํ™œ์šฉํ•œ ์ •๊ธฐ์šฉ๋ˆ API ๊ตฌํ˜„

FE

  • ์ฑ—๋ด‡ ํ™”๋ฉด ๊ตฌํ˜„

Izzy

BE

  • Spring Boot์™€ JPA๋ฅผ ์ด์šฉํ•˜์—ฌ Rest API ๊ตฌํ˜„
    • ์ฑŒ๋ฆฐ์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„

FE

  • React๋ฅผ ํ™œ์šฉํ•œ ๋ถ€๋ชจ/์ž์‹ ์ฑŒ๋ฆฐ์ง€ ํ™”๋ฉด ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„

J

  • ์งœ๊ธˆํ†ต ํ™”๋ฉด ๊ตฌํ˜„
  • ๋ถ€๋ชจ์€ํ–‰ ํ™”๋ฉด ๊ตฌํ˜„
  • ์ •๊ธฐ์šฉ๋ˆ , ํŠน๋ณ„์šฉ๋ˆ ํ™”๋ฉด ๊ตฌํ˜„

Silver

  • AWS EC2, Ubuntu, Docker, Jenkins๋ฅผ ํ™œ์šฉํ•œ CI/CD๊ตฌ์ถ•
  • Django๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐธ๋Ÿฐ์Šค๊ฒŒ์ž„ ๋ฐ ํ€ด์ฆˆ ๊ด€๋ฆฌ์žํ™”๋ฉด ๊ตฌํ˜„
  • NH Open API ๋ช…์„ธ์— ๋”ฐ๋ฅธ ๊ธˆ์œต๊ณ„์ขŒ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ API ๊ตฌํ˜„
  • ๊ฐ€์กฑ๊ณ„์ขŒ ๋ฐ ์งœ๊ธˆํ†ต ๊ด€๋ จ Rest API ๊ตฌํ˜„

๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ


๐Ÿ“ฃ ์†Œ๊ฐ

Tech(๋ฐ•๊ธฐํƒ)

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

Rocky(์กฐ์„ฑ๋ฝ)

JPA๋ฅผ ์ˆ˜๊ฐ•ํ•œ ๊ฑฐ์˜ ๋ชจ๋“ ๊ฑธ ์ ์šฉํ•ด๋ด์„œ ๊ธฐ์ˆ ์  ์„ฑ์žฅ์„ ์ด๋ฃฌ๊ฑฐ ๊ฐ™์•„ ์žฌ๋ฐŒ์—ˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ๋ฒˆ์—๋Š” Spring Security์— ๋Œ€ํ•ด์„œ๋„ ์ œ๋Œ€๋กœ ํŒŒ๊ณ ๋“ค์–ด ๊ตฌํ˜„ํ•ด๋ณด๊ณ ์‹ถ์Šต๋‹ˆ๋‹ค.

Light(์œค๋ฏผ์žฌ)

Spring Security๋ฅผ ์‚ฌ์šฉํ•ด์„œ OAuth์™€ JWT๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ OAuth์˜ ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
ํ•˜์ง€๋งŒ error ์ฒ˜๋ฆฌ๋ฅผ ์ œ๋Œ€๋กœ ํ•˜์ง€ ๋ชปํ•ด api ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ๋•Œ ์—ฌ๋Ÿฌ ์—๋Ÿฌ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๋ ค์ฃผ์ง€ ๋ชปํ•œ ์ ์ด ์•„์‰ฝ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ถ€ํ„ฐ๋Š” ์—ฌ๋Ÿฌ error์— ๋Œ€ํ•œ exception๊ณผ ๋ชจ๋“  error์— ๋Œ€ํ•œ exception handler๋ฅผ ๋งŒ๋“ค์–ด
ํ•ด๋‹น ์—๋Ÿฌ์— ๋Œ€ํ•ด ์„ค๋ช…์„ ๋˜์ ธ์ค˜ ๋” ์›ํ™œํ•˜๊ฒŒ ํ”„๋ก ํŠธ ํŒ€์›๋ถ„๋“ค๊ณผ ์†Œํ†ต ํ• ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.
๊ทธ๋ฆฌ๊ณ  open AI์˜ GPT ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์ฑ—๋ด‡์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ฒ˜์Œ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ ์ด ์•„์‰ฌ์šด ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ์—๋„ ์ฑ—๋ด‡์„ ๋งŒ๋“ค ๊ธฐํšŒ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด, ๋ณด๋‹ค ๋” ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์™€ vector DB๋ฅผ ๋งŒ๋“ค์–ด
์ฑ—๋ด‡์— ์ ์šฉํ•˜๊ณ  ์ข€ ๋” ์ž์„ธํžˆ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด ๋ณด๊ณ  ์‹ถ๋‹ค.

Izzy(์ด์ง€ํ˜„)

๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ ๋ชจ๋‘์— ์ฐธ์—ฌํ•˜๋ฉฐ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ดํ•ดํ•˜๋Š” ๊ฒฝํ—˜์€ ๋งค์šฐ ์œ ์ตํ–ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ์— JPA๋ฅผ ํ™œ์šฉํ•˜๋ฉด์„œ ํ”„๋ก์‹œ์™€ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.
์‹ค์ œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๋ฉฐ ํ”„๋ก์‹œ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ํ™•์‹คํžˆ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.
์ €๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” CSS ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์ด๋ฒˆ์—๋Š” styled component๋ฅผ ๋„์ž…ํ–ˆ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•  ๋•Œ๋งˆ๋‹ค ์• ๋ฅผ ๋จน์–ด์„œ ํž˜๋“ค๊ธด ํ–ˆ์ง€๋งŒ, ๊ทธ๋งŒํผ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์–ด์„œ ์˜๋ฏธ๊ฐ€ ๊นŠ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

J(๊น€์žฌ์ด)

ํ”„๋ก ํŠธ๊ฐœ๋ฐœ์ž๋กœ์„œ ์‚ฌ์šฉ์ž ํŽธ๋ฆฌ์„ฑ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋œ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.
์•„๋™์ด๋ผ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•˜์—ฌ ์ฃผ์š” ๊ธฐ๋Šฅ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฉ”์ธํ™”๋ฉด์— ๋ฐฐ์น˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๊ณผ์ •๋“ค์„ ํ†ตํ•˜์—ฌ ๊ธฐ์ˆ ์  ๋ถ€๋ถ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๋ฅผ ์ƒใ„ฑ๊ฐ€ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

Silver(์ตœ๋ฏธ์€)

์–ด๋ฆฐ์ด๋ฅผ ์œ„ํ•œ ๊ธˆ์œต ๊ต์œก ํ”Œ๋žซํผ์„ ๊ฐœ๋ฐœํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์„ ์Œ“์„ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
๋””์ž์ธ๋ถ€ํ„ฐ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ, ๋ฐฐํฌ๋ฅผ ํ•˜๋ฉด์„œ ํ”„๋กœ์ ํŠธ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์–ด ์ „์ฒด์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํŠนํžˆ Jenkins๋ฅผ ํ™œ์šฉํ•œ CI, CD๊ตฌ์ถ•์„ ํ†ตํ•ด ์ง€์†์ ์ธ ํ†ตํ•ฉ๊ณผ ๋ฐฐํฌ์— ๋Œ€ํ•œ ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”ผ ๋ชฉ์ฐจ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

About


Languages

Language:TypeScript 35.3%Language:Java 33.7%Language:JavaScript 12.9%Language:CSS 11.1%Language:PowerShell 3.0%Language:Python 1.3%Language:C++ 0.8%Language:Objective-C++ 0.4%Language:Objective-C 0.3%Language:Starlark 0.2%Language:HTML 0.2%Language:Makefile 0.2%Language:Batchfile 0.2%Language:Ruby 0.2%Language:Dockerfile 0.1%Language:Shell 0.0%