seoyoung059 / Ownbang

SSAFY 11๊ธฐ ๊ณตํ†ต ํ”„๋กœ์ ํŠธ - ๋น„๋Œ€๋ฉด ๋งค๋ฌผ ๊ตฌ๊ฒฝ ๋ถ€๋™์‚ฐ ์„œ๋น„์Šค Ownbang
0 stars 1 forks source link

๐Ÿ  ์˜จ:๋ฐฉ (์˜จ๋ผ์ธ ๋ถ€๋™์‚ฐ ๊ฑฐ๋ž˜ ์„œ๋น„์Šค)

๐Ÿ‘‡์˜จ๋ฐฉ ์†Œ๊ฐœ ๋ฐ ์‹œ์—ฐ ์˜์ƒ๐Ÿ‘‡

Video Label

์š”์•ฝ

ํƒ€ ์ง€์—ญ์— ์ง‘์„ ๊ตฌํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋น ๋ฅด๊ฒŒ ์ง‘์„ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๋‹น์‹ !
์ง์ ‘ ๋งค๋ฌผ์„ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ์–ด๋ ค์›Œ ์ง‘์„ ๊ตฌํ•˜๋Š” ๊ณผ์ •์ด ํž˜๋“ค์—ˆ๋‚˜์š”?
์˜จ๋ฐฉ ์ด ์ œ๊ณตํ•˜๋Š” ํ™”์ƒํ†ตํ™”๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งค๋ฌผ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”!

๐Ÿ’ป ์˜จ๋ฐฉ ์„œ๋น„์Šค ํ™”๋ฉด

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

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

๋งค๋ฌผ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€

๊ฒ€์ƒ‰ํŽ˜์ด์ง€

๋งค๋ฌผ ์ •๋ณด / ์˜ˆ์•ฝ ์‹ ์ฒญ ํŽ˜์ด์ง€

๋งค๋ฌผ์ •๋ณด/์˜ˆ์•ฝํŽ˜์ด์ง€

๋งค๋ฌผ ๋“ฑ๋ก ํŽ˜์ด์ง€

๋งค๋ฌผ๋“ฑ๋ก

๋งˆ์ดํŽ˜์ด์ง€ - ์ผ๋ฐ˜ ์œ ์ €

์ผ๋ฐ˜์œ ์ €๋งˆ์ดํŽ˜์ด์ง€

๋งˆ์ดํŽ˜์ด์ง€ - ์ค‘๊ฐœ์ธ ์œ ์ €

์ค‘๊ฐœ์ธ์œ ์ €๋งˆ์ดํŽ˜์ด์ง€

์ค‘๊ฐœ์ธ ์ „ํ™˜ ์‹ ์ฒญ ํŽ˜์ด์ง€

์ค‘๊ฐœ์ธ์ „ํ™˜์‹ ์ฒญํŽ˜์ด์ง€

ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ

ํšŒ์›๊ฐ€์ž… ๋กœ๊ทธ์ธ

๋…นํ™” ๋‹ค์‹œ๋ณด๊ธฐ ํŽ˜์ด์ง€

๋‹ค์‹œ๋ณด๊ธฐ

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

๐Ÿ”Ž ๊ฐœ๋ฐœ ํ™˜๊ฒฝ


๐Ÿ’ป BackEnd

๐Ÿ’ป FrontEnd

๐Ÿ’ป Web RTC

๐Ÿ’ป CI/CD

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง ํ˜‘์—… ํˆด


๐Ÿ›๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜


alt text

โœจJenkins๋ฅผ ์ด์šฉํ•œ CD ๊ตฌ์ถ• ๋ฐ SSL ์ธ์ฆ์„œ ์ ์šฉ


โœจ๊ธฐ์ˆ  ํŠน์ด์ 


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

๋žญํ‚น ๊ธฐ๋Šฅ์— ๋“ค์–ด๊ฐ€๋Š” ๋žญํ‚น ์ •๋ณด๋Š” ์ž์ •๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์ •๋ณด์—ฌ์„œ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ์˜ ์ •๋ณด์ด๊ณ , ๋ฐ˜๋ณต์ ์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ์ œ๊ณต๋˜๊ณ , ์ตœ์‹ ํ™”๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ •๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์œผ๋กœ ์บ์‹ฑ์„ ์ ์šฉํ•˜๊ธฐ์— ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ–ˆ๊ณ , Redis์— ๋žญํ‚น ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์—ฌ DB๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์งˆ ๋•Œ ๋ฐฑ์—”๋“œ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ , ์ •๋ณด ์กฐํšŒ ์†๋„๋ฅผ ๋†’์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ €ํฌ๋Š” Spring Scurity์™€ JWT๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜์˜€๋Š”๋ฐ, Redis๋ฅผ ์ด์šฉํ•ด ๋กœ๊ทธ์•„์›ƒ์‹œํ‚จ ํ† ํฐ๋“ค์„ ๋งŒ๋ฃŒ์ฒ˜๋ฆฌํ•˜์—ฌ ํ•ด๋‹น ํ† ํฐ์œผ๋กœ๋Š” ๋‹ค์‹œ ์ธ์ฆํ•  ์ˆ˜ ์—†๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌํ˜„์‹œ์—๋Š” React์™€ redux-toolkit์„ ์ด์šฉํ•˜์—ฌ Ducks Pattern ๊ธฐ๋ฐ˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋„์ปค, Nginx, Jenkins๋ฅผ ์ด์šฉํ•œ ์ž๋™ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐฐํฌํ•˜์˜€๊ณ , ํ”„๋ก ํŠธ๋กœ Nginx์™€ ํ•จ๊ป˜ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฐฐํฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐ŸŽจ ํ™”๋ฉด ์„ค๊ณ„์„œ


ํ”ผ๊ทธ๋งˆ1 ํ”ผ๊ทธ๋งˆ2 ํ”ผ๊ทธ๋งˆ3 ํ”ผ๊ทธ๋งˆ4

โœจ์ฝ”๋“œ ์ปจ๋ฒค์…˜



โœจGit ์ปจ๋ฒค์…˜


๊นƒ๋ชจ์ง€ ์ปค๋ฐ‹ ์œ ํ˜• ์˜๋ฏธ
โœจ Feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
๐Ÿ› Fix ๋ฒ„๊ทธ ์ˆ˜์ •
๐Ÿ“ Docs ๋ฌธ์„œ ์ˆ˜์ •
๐Ÿ’„ Style ์ฝ”๋“œ formatting, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ์ž์ฒด์˜ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ
โ™ป๏ธ Refractor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
โœ… Test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
๐Ÿ™ˆ Chore ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •, ๊ทธ ์™ธ ๊ธฐํƒ€ ์ˆ˜์ • ex) .gitignore
๐Ÿ“ฑ Design CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
๐Ÿ’ก Comment ํ•„์š”ํ•œ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
๐Ÿšš Rename ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
๐Ÿ”ฅ Remove ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
๐Ÿš‘๏ธ !HOTFIX ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •, ๊ทธ ์™ธ ๊ธฐํƒ€ ์ˆ˜์ • ex) .gitignore
๐Ÿ”ง Config CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ

๐Ÿ’กGithub Flow ๋ธŒ๋žœ์น˜ ์ „๋žต


๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Jira


ํ˜‘์—… ๋ฐ ์—…๋ฌด ๊ด€๋ฆฌ, ์—…๋ฌด ๊ณต์œ ๋ฅผ ์œ„ํ•ด Jira๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋งค์ฃผ ์›”์š”์ผ ํ•œ ์ฃผ๋™์•ˆ ์ง„ํ–‰๋˜์–ด์•ผ ํ•  ์ฃผ ๋‹จ์œ„์˜ ๊ณ„ํš์„ ๊ตฌ์„ฑํ•˜๊ณ , ๋งค์ผ ์•„์นจ ๋‹น์ผ์— ํ•  ์ด์Šˆ๋“ค์„ ์Šคํ”„๋ฆฐํŠธ์— ๋“ฑ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์Šคํ”„๋ฆฐํŠธ๋Š” ์ผ์ฃผ์ผ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Notion


ํŒ€ ์ „์ฒด์—์„œ ๊ณต์œ ๋˜์–ด์•ผ ํ•  ๋‚ด์šฉ๊ณผ, ๊ณต์ง€๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์„ ๋ชจ์•„ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ปจ๋ฒค์…˜ ๊ทœ์น™, ๋ธŒ๋žœ์น˜ ์ „๋žต ๋“ฑ์„ ๋…ธ์…˜์— ๊ธฐ๋กํ•˜์—ฌ ํ•„์š”ํ•  ๋•Œ ์–ธ์ œ๋“  ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ํšŒ์˜์™€ ํ”ผ๋“œ๋ฐฑ์„ ํŽ˜์ด์ง€๋กœ ์ƒ์„ฑํ•˜์—ฌ ๋‹ค์‹œ ์ฐพ์•„๋ณด๊ธฐ ์šฉ์ดํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Scrum


๋งค์ผ ์•„์นจ 9์‹œ์— ์–ด์ œ ์™„์„ฑํ•œ task์™€ ์˜ค๋Š˜ ํ•  task๋ฅผ ๊ฐ์ž ์ •๋ฆฌํ•ด์„œ 5~10๋ถ„ ๋™์•ˆ ์„œ๋กœ ๊ณต์œ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค.
์งง์ง€๋งŒ ๋งค์ผ ๊ณต์œ ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง์œผ๋กœ์จ ํŒ€์›๋“ค์˜ ํ˜„์žฌ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ž์„ธํžˆ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜์—ฌ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„์€ ์„œ๋กœ ๋„์™€๊ฐ€๋ฉฐ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โœจ ER Diagram


alt text

โœจ EC2 ํฌํŠธ ์ •๋ฆฌ


PORT ์ด๋ฆ„
443 HTTPS
80 HTTP - HTTPS๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ(ํ”„๋ก ํŠธ ํŽ˜์ด์ง€์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)
8443 Openvidu
8379 Redis
3306 MySQL
8081 Jenkins
8080 Spring boot Docker Container
3000 React, NginX Docker Container

๐Ÿ˜ƒ ํŒ€์› ์—ญํ• 


๊น€์ค€์˜ ๊น€์„œ์˜ ๊น€์ผํƒœ ์„œ์ •ํฌ ์˜ค์œ ์ง„ ์ด์†Œํฌ
ํŒ€์žฅ / BE BE FE BE BE FE


์˜จ๋ฐฉ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋‚œ ํ›„์˜ ํšŒ๊ณ