Skip to content

Latest commit

ย 

History

History
379 lines (321 loc) ยท 13.4 KB

README.md

File metadata and controls

379 lines (321 loc) ยท 13.4 KB

๐ŸŽ™๏ธ 404_Found - SSAFY 9๊ธฐ ํŠนํ™”ํ”„๋กœ์ ํŠธ

0๏ธโƒฃ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๐ŸŽˆ ํ”„๋กœ์ ํŠธ๋ช… : ์‹ฑํฌ๋กœ(SingChro)

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ์ปจ์…‰ : ์ƒ์„ฑํ˜• AI๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ๋ชฉ์†Œ๋ฆฌ๋กœ ์ปค๋ฒ„์†ก ๋งŒ๋“œ๋Š” ๋ชจ๋ฐ”์ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜

๐Ÿ›  ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ : 23.08.28 ~ 2310.06 (6์ฃผ)

๐Ÿง‘๐Ÿป ํŒ€์› : ์†์„ธ์ด, ๋ฅ˜๋ณ‘๋ฏผ, ํ•˜์ œ์šฐ, ๊น€ํ•œ์ฃผ, ์ฑ„๋ฌธํฌ

๐Ÿ’ป ์‚ฌ์šฉ ๊ธฐ์ˆ ์Šคํƒ : Django, React-Native, AWS + (4. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ์ฐธ๊ณ )


1๏ธโƒฃ ํŒ€์› ์ •๋ณด ๋ฐ ์—…๋ฌด ๋ถ„๋‹ด ๋‚ด์—ญ

์ด๋ฆ„ ์—ญํ•  ์„ค๋ช…
์†์„ธ์ด (ํŒ€์žฅ) AI vocalRemover ์ฝ”๋“œ ๊ตฌํ˜„(์›๋ณธ ์Œ์›์˜ voice์™€ mr ๋ถ„๋ฆฌ)
์ตœ์ข… ์ปค๋ฒ„์†ก ๋งŒ๋“œ๋Š” inference ์ฝ”๋“œ๋ฅผ ๊ตฌ์กฐ์— ๋งž๊ฒŒ ์ˆ˜์ • ๋ฐ ๊ตฌํ˜„
๋ฅ˜๋ณ‘๋ฏผ AI & CI/CD AI ๋ชจ๋ธ ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
CI/CD ์„ค์ • ๋ฐ ๊ด€๋ฆฌ
ํ•˜์ œ์šฐ AI & CI/CD ์  ํ‚จ์Šค ์„ค์ • ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ
Jupyter ์„œ๋ฒ„์™€ EC2 ์„œ๋ฒ„๊ฐ„ ํ†ต์‹ 
๋ฐœํ‘œ
๊น€ํ•œ์ฃผ Frontend React-Native๋ฅผ ํ†ตํ•œ ๋ชจ๋ฐ”์ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
Recoil์„ ํ†ตํ•œ ์ƒํƒœ๊ด€๋ฆฌ
Firebase๋ฅผ ํ†ตํ•œ ๋ชจ๋ฐ”์ผ ํ‘ธ์‰ฌ ์•Œ๋žŒ ๊ตฌํ˜„
์Œ์•… ํ”Œ๋ ˆ์ด์–ด ๊ธฐ๋Šฅ ๊ตฌํ˜„
์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „์— ๋”ฐ๋ฅธ ๊ถŒํ•œ ํ—ˆ์šฉ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ
์ฑ„๋ฌธํฌ Backend & CI/CD Django Rest Framwork๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ
DockerFile, Docker-ComposeFile ์ž‘์„ฑ

2๏ธโƒฃ ์„œ๋น„์Šค ๋Œ€ํ‘œ ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ ์„ธ๋ถ€๊ธฐ๋Šฅ
ํšŒ์›๊ธฐ๋Šฅ ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํ†ตํ•œ ํšŒ์›๊ฐ€์ž…, ํšŒ์›์ •๋ณด ๋ณ€๊ฒฝ, ํšŒ์› ํƒˆํ‡ด
์‚ฌ์šฉ์ž ๋ชฉ์†Œ๋ฆฌ ํ•™์Šต ์‚ฌ์šฉ์ž์˜ ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋…น์Œ ํ›„, ๋…น์Œ ํŒŒ์ผ์„ ํ†ตํ•ด ๋ชฉ์†Œ๋ฆฌ ๋ชจ๋ธ ์ƒ์„ฑ
์ปค๋ฒ„์†ก ์ƒ์„ฑ ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ mp3 ํŒŒ์ผ๊ณผ ์ƒ์„ฑ๋œ ๋ชฉ์†Œ๋ฆฌ ๋ชจ๋ธ๋กœ ์ปค๋ฒ„์†ก ์ƒ์„ฑ
์ปค๋ฒ„์†ก ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ํƒ€ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•œ ์ปค๋ฒ„์†ก ์ œ๋ชฉ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
์ปค๋ฒ„์†ก ์š”์ฒญ ํƒ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋…ธ๋ž˜ ์ปค๋ฒ„ ์š”์ฒญ ๊ฐ€๋Šฅ
์ปค๋ฒ„์†ก ์ข‹์•„์š” ์ปค๋ฒ„์†ก์— ์ข‹์•„์š”๋ฅผ ๋ˆŒ๋Ÿฌ ์ข‹์•„์š” ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
์Œ์•… ํ”Œ๋ ˆ์ด์–ด ์ƒ์„ฑํ•œ ์ปค๋ฒ„์†ก์„ ์•ฑ ๋‚ด์—์„œ ์žฌ์ƒ ๊ฐ€๋Šฅ
์žฌ์ƒ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ๋‚ด๊ฐ€ ์ƒ์„ฑํ•œ ์ปค๋ฒ„์†ก์ด๋‚˜ ์ข‹์•„์š” ๋ˆ„๋ฅธ ๋…ธ๋ž˜๋กœ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ตฌ์„ฑ๋จ
์ด์ „ ๊ณก, ๋‹ค์Œ๊ณก, ๋ฐ˜๋ณต ์˜ต์…˜, ๋ฆฌ์ŠคํŠธ ์…”ํ”Œ ๊ฐ€๋Šฅ
ํ‘ธ์‰ฌ ์•Œ๋žŒ ๋ชจ๋ธ ์ƒ์„ฑ ์™„๋ฃŒ, ์ปค๋ฒ„์†ก ์ƒ์„ฑ ์™„๋ฃŒ, ์ปค๋ฒ„ ์š”์ฒญ ์ˆ˜๋ฝ ๋ฐ ๊ฑฐ์ ˆ ์•Œ๋žŒ ๊ธฐ๋Šฅ
๋ชฉ์†Œ๋ฆฌ ๋ชจ๋ธ ๊ด€๋ฆฌ ์ƒ์„ฑ๋œ ๋ชฉ์†Œ๋ฆฌ AI ๋ชจ๋ธ ํ™œ์„ฑํ™” ๋ฐ ์‚ญ์ œ
์ปค๋ฒ„์†ก ๊ด€๋ฆฌ ์ƒ์„ฑ๋œ ์ปค๋ฒ„์†ก ์‚ญ์ œ

3๏ธโƒฃ ์„œ๋น„์Šค ํ™”๋ฉด

๋ชจ๋ธ ๋งŒ๋“ค๊ธฐ

make model

์ปค๋ฒ„์†ก ๋งŒ๋“ค๊ธฐ

make cover

์ปค๋ฒ„์†ก ๋“ฃ๊ธฐ

play

์ปค๋ฒ„์†ก ๊ฒ€์ƒ‰

search

์ปค๋ฒ„์†ก ์š”์ฒญ

cover request

ํ‘ธ์‰ฌ ์•Œ๋žŒ

alarm


4๏ธโƒฃ ERD

erd


5๏ธโƒฃ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ณ

system_architecture


6๏ธโƒฃ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

๐ŸŒ ๊ณตํ†ต

์ƒ์„ธ ๋‚ด์šฉ
GitLab ํ˜•์ƒ ๊ด€๋ฆฌ
Jira ์ผ์ • ๋ฐ ์ด์Šˆ ๊ด€๋ฆฌ
Mattermost ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜
Confluence ์ผ์ • ๋ฐ ๋ฌธ์„œ ๊ด€๋ฆฌ
Figma ๋””์ž์ธ
Premiere pro UCC ์ œ์ž‘
Visual Studio Code IDE

๐Ÿ“ฑ FrontEnd

์ƒ์„ธ ๋ฒ„์ „
Node.js 18.17.0
React-Native 0.76.7
TypeScript 5.1.6
Android SDK 21~
Java 11.0
Kotlin 1.9.0
Recoil 0.7.7
react-native-audio-recorder-player 3.5.4
react-native-firebase 18.4.0

๐Ÿ’พ BackEnd Server

์ƒ์„ธ ๋ฒ„์ „
AWS S3
AWS EC2 Ubuntu 20.04 LTS
Docker 24.0.6
NGINX 1.25.2
django 4.2.5
MariaDB 11.1.2
certbot 2.7.0
uwsgi 2.0.22
Jenkins 2.141.1
Docker-compose 2.20.2
PyCharm 2023.2.1

๐Ÿค– AI Learning Server

์ƒ์„ธ ๋ฒ„์ „
AWS EC2 Ubuntu 20.04 LTS
Python 3.9.7
CUDA 12.1
pytorch 2.0.0+cu118
pytorch-lightning 2.0.9
vim 8.1.3741

7๏ธโƒฃ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

Front

SingChro
โ”œโ”€โ”€ App.tsx
...
โ””โ”€โ”€ src
    โ”œโ”€โ”€ assets
    โ”‚ย ย  โ”œโ”€โ”€ icon
            โ””โ”€โ”€...
    โ”‚ย ย  โ””โ”€โ”€ images
            โ””โ”€โ”€...
    โ”œโ”€โ”€ components
    โ”‚ย ย  โ”œโ”€โ”€ Auth
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ AuthSide.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Cover
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ NewSongList.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ NewSongModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ OldSongList.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ OldSongModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ PickedSongItem.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ PickedVoiceItem.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ VoiceList.tsx
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ VoiceModal.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Footer
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ BottomBar.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Header
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ AlarmListItem.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ AlarmModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ NameHeader.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ RequestListItem.tsx
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ RequestModal.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Home
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ FilterBtn.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Player
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ BtnBox.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ImgBox.tsx
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ PlayController.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Profile
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ChangeNameModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ChangePwModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ CoverManageList.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ CoverManageModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ DeleteUserModal.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ VoiceManageList.tsx
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ VoiceManageModal.tsx
    โ”‚ย ย  โ”œโ”€โ”€ Record
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ GuideBox.tsx
    โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ PlayBox.tsx
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ RecordBox.tsx
    โ”‚ย ย  โ””โ”€โ”€ shared
    โ”‚ย ย      โ”œโ”€โ”€ AuthInput.tsx
    โ”‚ย ย      โ”œโ”€โ”€ Badge.tsx
    โ”‚ย ย      โ”œโ”€โ”€ CommonModal.tsx
    โ”‚ย ย      โ”œโ”€โ”€ CoverItem.tsx
    โ”‚ย ย      โ”œโ”€โ”€ FunctionBtn.tsx
    โ”‚ย ย      โ”œโ”€โ”€ Loading.tsx
    โ”‚ย ย      โ”œโ”€โ”€ MascotBg.tsx
    โ”‚ย ย      โ”œโ”€โ”€ MascotBottom.tsx
    โ”‚ย ย      โ”œโ”€โ”€ RectangleBtn.tsx
    โ”‚ย ย      โ”œโ”€โ”€ RoundBtn.tsx
    โ”‚ย ย      โ”œโ”€โ”€ SearchInput.tsx
    โ”‚ย ย      โ”œโ”€โ”€ TitleBox.tsx
    โ”‚ย ย      โ”œโ”€โ”€ WhiteBtn.tsx
    โ”‚ย ย      โ””โ”€โ”€ WithIconBtn.tsx
    โ”œโ”€โ”€ constants
    โ”‚ย ย  โ”œโ”€โ”€ featureTypes.tsx
    โ”‚ย ย  โ””โ”€โ”€ modelTypes.tsx
    โ”œโ”€โ”€ functions
    โ”‚ย ย  โ”œโ”€โ”€ alarmFunc.tsx
    โ”‚ย ย  โ”œโ”€โ”€ authFunc.tsx
    โ”‚ย ย  โ”œโ”€โ”€ axiosFunc.tsx
    โ”‚ย ย  โ”œโ”€โ”€ hooksFunc.tsx
    โ”‚ย ย  โ”œโ”€โ”€ permissionFunc.tsx
    โ”‚ย ย  โ”œโ”€โ”€ test.tsx
    โ”‚ย ย  โ””โ”€โ”€ validationFunc.tsx
    โ”œโ”€โ”€ states
    โ”‚ย ย  โ”œโ”€โ”€ featureState.tsx
    โ”‚ย ย  โ””โ”€โ”€ modelState.tsx
    โ”œโ”€โ”€ styles
    โ”‚ย ย  โ”œโ”€โ”€ coverStyles.tsx
    โ”‚ย ย  โ”œโ”€โ”€ homeStyles.tsx
    โ”‚ย ย  โ”œโ”€โ”€ loginStyles.tsx
    โ”‚ย ย  โ”œโ”€โ”€ playerStyles.tsx
    โ”‚ย ย  โ”œโ”€โ”€ profileStyles.tsx
    โ”‚ย ย  โ”œโ”€โ”€ recordStlyes.tsx
    โ”‚ย ย  โ”œโ”€โ”€ searchStyles.tsx
    โ”‚ย ย  โ”œโ”€โ”€ shadowStyles.tsx
    โ”‚ย ย  โ””โ”€โ”€ startStyles.tsx
    โ””โ”€โ”€ views
        โ”œโ”€โ”€ Auth
        โ”‚ย ย  โ”œโ”€โ”€ EmailVerifyView.tsx
        โ”‚ย ย  โ”œโ”€โ”€ LoginView.tsx
        โ”‚ย ย  โ””โ”€โ”€ SignupView.tsx
        โ”œโ”€โ”€ Cover
        โ”‚ย ย  โ”œโ”€โ”€ CoverConfirmView.tsx
        โ”‚ย ย  โ”œโ”€โ”€ CoverDoneView.tsx
        โ”‚ย ย  โ”œโ”€โ”€ SongPickView.tsx
        โ”‚ย ย  โ””โ”€โ”€ VoicePickView.tsx
        โ”œโ”€โ”€ Home
        โ”‚ย ย  โ”œโ”€โ”€ HomeView.tsx
        โ”‚ย ย  โ””โ”€โ”€ OtherHomeView.tsx
        โ”œโ”€โ”€ Player
        โ”‚ย ย  โ””โ”€โ”€ MusicPlayerView.tsx
        โ”œโ”€โ”€ Profile
        โ”‚ย ย  โ””โ”€โ”€ ProfileView.tsx
        โ”œโ”€โ”€ Record
        โ”‚ย ย  โ”œโ”€โ”€ RecordDoingView.tsx
        โ”‚ย ย  โ”œโ”€โ”€ RecordDoneView.tsx
        โ”‚ย ย  โ”œโ”€โ”€ RecordRequestView.tsx
        โ”‚ย ย  โ””โ”€โ”€ RecordStartView.tsx
        โ”œโ”€โ”€ Search
        โ”‚ย ย  โ””โ”€โ”€ SearchCoverView.tsx
        โ””โ”€โ”€ Start
            โ””โ”€โ”€ StartView.tsx

Back

โ””โ”€โ”€ singchro
    โ”œโ”€โ”€ Dockerfile
    โ”œโ”€โ”€ accounts
    โ”‚ย ย  โ”œโ”€โ”€ __init__.py
    โ”‚ย ย  โ”œโ”€โ”€ admin.py
    โ”‚ย ย  โ”œโ”€โ”€ apps.py
    โ”‚ย ย  โ”œโ”€โ”€ migrations
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ __init__.py
    โ”‚ย ย  โ”œโ”€โ”€ models.py
    โ”‚ย ย  โ”œโ”€โ”€ serializers.py
    โ”‚ย ย  โ”œโ”€โ”€ templates
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ confirmation_email.txt
    โ”‚ย ย  โ”œโ”€โ”€ tests.py
    โ”‚ย ย  โ”œโ”€โ”€ urls.py
    โ”‚ย ย  โ”œโ”€โ”€ utils.py
    โ”‚ย ย  โ””โ”€โ”€ views.py
    โ”œโ”€โ”€ db.sqlite3
    โ”œโ”€โ”€ manage.py
    โ”œโ”€โ”€ requirements.txt
    โ”œโ”€โ”€ restapi
    โ”‚ย ย  โ”œโ”€โ”€ __init__.py
    โ”‚ย ย  โ”œโ”€โ”€ admin.py
    โ”‚ย ย  โ”œโ”€โ”€ apps.py
    โ”‚ย ย  โ”œโ”€โ”€ fcm.py
    โ”‚ย ย  โ”œโ”€โ”€ migrations
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ __init__.py
    โ”‚ย ย  โ”œโ”€โ”€ models.py
    โ”‚ย ย  โ”œโ”€โ”€ serializers.py
    โ”‚ย ย  โ”œโ”€โ”€ tests.py
    โ”‚ย ย  โ”œโ”€โ”€ urls.py
    โ”‚ย ย  โ””โ”€โ”€ views.py
    โ”œโ”€โ”€ singchro
    โ”‚ย ย  โ”œโ”€โ”€ __init__.py
    โ”‚ย ย  โ”œโ”€โ”€ asgi.py
    โ”‚ย ย  โ”œโ”€โ”€ key
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ a404-singchro-1a28e631aa61.json
    โ”‚ย ย  โ”œโ”€โ”€ settings.py
    โ”‚ย ย  โ”œโ”€โ”€ urls.py
    โ”‚ย ย  โ””โ”€โ”€ wsgi.py
    โ”œโ”€โ”€ uwsgi
    โ”‚ย ย  โ”œโ”€โ”€ uwsgi.ini
    โ”‚ย ย  โ””โ”€โ”€ uwsgi.service
    โ””โ”€โ”€ wait-for-it.sh

AI

โ”œโ”€โ”€ MultiProcessingTest.py
โ”œโ”€โ”€ UVR
โ”‚ย ย  โ””โ”€โ”€ ...
โ”œโ”€โ”€ data_inference
โ”œโ”€โ”€ data_train
โ”œโ”€โ”€ handleCoveredSong.py
โ”œโ”€โ”€ handleVoiceModel.py
โ”œโ”€โ”€ multiProcessing.py
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ slicer2.py
โ”œโ”€โ”€ so-vits-svc-5.0
โ”‚ย ย  โ”œโ”€โ”€ ...
โ”œโ”€โ”€ user_inference
โ”‚ย ย  โ”œโ”€โ”€ ...
โ””โ”€โ”€ voicefile_path

8๏ธโƒฃ Covention

๐Ÿค™ Jira

๊ตฌ์„ฑ ์š”์†Œ ์—ญํ•  ๋น„๊ณ 
Component ํŒŒํŠธ ๋‹จ์œ„ ์•ฑ, ๋ฐฑ์—”๋“œ, AI, ๋ฐœํ‘œ ๋“ฑ
Epic ํฐ ์ž‘์—… ๋‹จ์œ„ ๋ ˆ์ด์•„์›ƒ, ๊ธฐ๋Šฅ๊ตฌํ˜„, CI/CD ๋“ฑ
Story ์„ธ๋ถ€์ž‘์—…(๊ฐœ์ธ) ๊ธฐ๋Šฅ๋ณ„ ์„ธ๋ถ€ ์ž‘์—… ๋‚ด์šฉ

๐Ÿค™ Git Commit

Type ์„ค๋ช…
Add ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ถ”๊ฐ€
Update ์ฝ”๋“œ ์ˆ˜์ •(๊ฐœ๋ฐœ ์ค‘)
Fix ๋ฒ„๊ทธ ์ˆ˜์ •
Refactor ์ฝ”๋“œ ๊ฐœ์„ ( + ์œ ์ง€๋ณด์ˆ˜)
Log log ๊ธฐ๋ก
  • Commit message format

[Type] Jira: {Issue number}, message

๐Ÿค™ Git Flow

master
โ”” develop
  โ”œ front
  โ”œ back
  โ”œ AI
  โ”” log
  • master : ์šด์˜ ์„œ๋ฒ„๋กœ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜
  • develop : ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜
    • front : ๋ชจ๋ฐ”์ผ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊ฐœ๋ฐœ
    • back : ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœ
    • AI : AI ๋ชจ๋ธ ํ•™์Šต ํ…Œ์ŠคํŠธ, AI ํ•™์Šต ์„œ๋ฒ„ ๊ฐœ๋ฐœ
    • log : ๊ธฐ๋ก ๋ฐ ๊ธฐํƒ€

9๏ธโƒฃ ํšŒ๊ณ 

์ด๋ฆ„ ๋‚ด์šฉ
์†์„ธ์ด
๐Ÿ˜„
์š”์ฆ˜ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ƒ์„ฑํ˜• AI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ๋ชฉ์†Œ๋ฆฌ ์ปค๋ฒ„๋ผ๋Š” singing voice๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋‹ˆ
์‹ค์ œ๋กœ ๋ชจ๋ธ์ด ๋Œ์•„๊ฐ€๊ณ  ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์„ ํ•™์Šตํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
ํ˜ผ์ž ํ•˜๋ฉด ์–ด๋ ค์› ์„ ๋ถ€๋ถ„๋“ค์„ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ๋ถ„์—…ํ•˜๋‹ˆ ๋ฌด์‚ฌํžˆ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฅ˜๋ณ‘๋ฏผ
๐Ÿ˜˜
์ฒ˜์Œ๋ถ€ํ„ฐ ์žฌ๋ฐŒ๊ฒŒ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋ฅผ ์ •ํ•˜๊ฒŒ ๋˜์–ด ์ฆ๊ฒ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค
์ฒด๊ณ„์ ์œผ๋กœ ์ง„ํ–‰๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ๋งŽ์ง€๋งŒ, ์™„์„ฑํ•  ์ˆ˜ ์žˆ์–ด ๋‹คํ–‰์ž…๋‹ˆ๋‹ค
์กฐ๊ธˆ์ด์ง€๋งŒ ๋ฐฑ์—”๋“œ๋„ ์ƒˆ๋กญ๊ฒŒ ๊ฒฝํ—˜ํ•ด๋ณด๊ฒŒ ๋˜์–ด ์ข‹์€ ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์œผ๋ฉฐ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค
๊ณ ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค ๋ชจ๋‘
ํ•˜์ œ์šฐ
๐Ÿ‘น
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ์ฒ˜์Œ ์ ‘ํ•ด๋ณด๋Š” ๋ถ„์•ผ์˜€์ง€๋งŒ ๋ฌด์‚ฌํžˆ ์ž˜ ๋˜์–ด์„œ ๋‹คํ–‰์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋„ ํ™”์ดํŒ….
๊น€ํ•œ์ฃผ
๐Ÿ˜Ž
์ฃผ์ œ ์ž์ฒด๋„ ์‹ ์„ ํ•ด์„œ ๊ต‰์žฅํžˆ ์žฌ๋ฐŒ๊ฒŒ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ํ‘ธ์‰ฌ์•Œ๋žŒ, ๊ถŒํ•œ ์š”์ฒญ ๋“ฑ ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ์˜ ์ƒˆ๋กœ์šด ์ž‘์—…๋“ค์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ฒ˜์Œ ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ  ์Šคํƒ์ด๋‹ค ๋ณด๋‹ˆ ๋” ๋ฐฐ์›Œ์•ผํ•  ๋Š๋‚Œ์€ ์ง€์šธ ์ˆ˜๊ฐ€ ์—†๋„ค์š”.
๋ถ„์œ„๊ธฐ ์ข‹์€ ํŒ€์—์„œ ์ฆ๊ฑฐ์šด ํ”Œ์ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ๊ณ ๋ง™๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!
์ฑ„๋ฌธํฌ
๐Ÿ˜‹
ํ‰์†Œ์— ์žฌ๋ฏธ์žˆ๊ฒŒ ๋ดค๋˜ AI ์ปค๋ฒ„์†ก์„ ์ง์ ‘ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋‹ˆ ์ฆ๊ฒ๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
์ฒ˜์Œ ๋ฐฑ์—”๋“œ ์—ญํ• ์„ ๋งก์œผ๋ฉด์„œ ํ”„๋ก ํŠธ ๋งŽ์ด ๊ณ ์ƒ์‹œํ‚ค๊ณ  CI/CD๋ฅผ ๋งŽ์ด ๋„์™€์ฃผ์‹ 
์šฐ๋ฆฌ ํŒ€์›๋“ค์ด ์žˆ์–ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„œ๋น„์Šคํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค~!! ์šฐ๋ฆฌ 404Found ํŒ€!