Skip to content
/ SSAcle Public

[SSAFY 12๊ธฐ ๊ณตํ†ต PJT] ๐Ÿ“šSSAFY์ƒ์„ ์œ„ํ•œ ์Šคํ„ฐ๋”” ๊ด€๋ฆฌ ํ†ตํ•ฉ ์•ฑ ์„œ๋น„์Šค

Notifications You must be signed in to change notification settings

hong00z/SSAcle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

๐Ÿ“š SSAcle

Samsung SWยทAI Academy For Youth 12th - ๊ณตํ†ต ํ”„๋กœ์ ํŠธ

SSAFY ์ƒ์„ ์œ„ํ•œ ์Šคํ„ฐ๋”” ๊ด€๋ฆฌ ํ†ตํ•ฉ ์•ฑ

2025.01.13 ~ 2025.02.21



SSAcle(์‹ธํด) ์€ SSAFY ๊ต์œก์ƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ˆ˜๋ฃŒ์ƒ๊นŒ์ง€, ์‹ธํ”ผ ์ถœ์‹ ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋“  ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํ„ฐ๋”” ๊ด€๋ฆฌ ํ†ตํ•ฉ ์•ฑ์ž…๋‹ˆ๋‹ค. ์•ฝ 170๋ช…์„ ๋Œ€์ƒ์œผ๋กœ โ€œSSAFY ์†Œํ†ต ์•ฑ์—์„œ ๊ฐ€์žฅ ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™์€ ๊ธฐ๋Šฅโ€์— ๋Œ€ํ•ด ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ์‹ค์‹œํ•œ ๊ฒฐ๊ณผ, ์•ฝ 46%๊ฐ€ โ€œ์Šคํ„ฐ๋”” ๊ด€๋ จ ๊ธฐ๋Šฅโ€์„ ์„ ํƒํ•˜์˜€๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ„ฐ๋”” ๋ชจ์ง‘๊ณผ ์ทจ์—… ์ค€๋น„๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์„œ๋น„์Šค

  1. ์Šคํ„ฐ๋”” ๊ฐœ์„ค
  2. ์Šคํ„ฐ๋”” ๋ฐ ์Šคํ„ฐ๋””์› ๋งค์นญ ์„œ๋น„์Šค
    • ๊ด€์‹ฌ ์ฃผ์ œ ๋ฐ ๋ชจ์ž„ ์š”์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ„ฐ๋”” ๋ฐ ์Šคํ„ฐ๋””์›์„ ์ถ”์ฒœ
  3. ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋””
    • WebRTC ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์Šคํ„ฐ๋”” ๋ชจ์ž„์„ ์›ํ™œํ•˜๊ฒŒ ์šด์˜ ๊ฐ€๋Šฅ
  4. ์Šคํ„ฐ๋”” ์ฑ„ํŒ…๋ฐฉ
    • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ํ†ตํ•œ ์Šคํ„ฐ๋””์› ๊ฐ„์˜ ์›ํ™œํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ง€์›
  5. AI ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ฒจ์‚ญ ๊ธฐ๋Šฅ
    • OpenAI API๋ฅผ ํ™œ์šฉํ•œ ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ฒจ์‚ญ ๋ฐ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต
  6. AI ๋ฉด์ ‘ ํ”ผ๋“œ๋ฐฑ ์„œ๋น„์Šค (์‹œ์„  ๋ฐ ํ‘œ์ • ๋ถ„์„)
    • ํ‘œ์ • ๊ฐ์ง€, ๋™๊ณต ๊ฐ์ง€ AI ๋ชจ๋ธ์„ ์ ์šฉํ•˜์—ฌ ๋ฉด์ ‘ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต

๊ธฐ์ˆ  ์Šคํƒ

์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

FE

KotlinAndroid Studio (LadyBug)

AI

PythonPyTorchTensorFlow, TensorFlow Lite

BE

Spring Boot(์ฃผ์š” ๋ฐฑ์—”๋“œ API), NodeJS (์‹ค์‹œ๊ฐ„ ํ†ต์‹  ๋ฐ ๋ฏธ๋””์–ด ์ฒ˜๋ฆฌ)

DB

Redis (Token ๊ด€๋ฆฌ), MongoDB (NoSQL ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ)

INFRA

JenkinsCadyAWS EC2Docker , Docker Compose

ํ˜‘์—… ๋ฐ ๊ด€๋ฆฌ ๋„๊ตฌ

Gitlba (ํ˜•์ƒ ๊ด€๋ฆฌ), NotionJira (ํ˜‘์—… ๋ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ)

ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ƒ์„ธ ์„ค๋ช…

1. ์˜จ๋ณด๋”ฉ ๋ฐ ๋ฉ”์ธ ํ™”๋ฉด

๋กœ๊ทธ์ธ ํ™”๋ฉด ์นด์นด์˜ค ๋กœ๊ทธ์ธ ํ•™์  ์ธ์ฆ ๋‹‰๋„ค์ž„ ์ค‘๋ณต ๊ฒ€์‚ฌ ์‚ฌ์šฉ์ž ์ •๋ณด ์ž…๋ ฅ
์Šค์ผˆ๋ ˆํ†ค UI ์ตœ์ดˆ ๋ฉ”์ธ ํ™”๋ฉด ๋ฉ”์ธ ํ™”๋ฉด
  • ์นด์นด์˜ค ๋กœ๊ทธ์ธ API ํ™œ์šฉํ•˜์—ฌ JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋กœ๊ทธ์ธ ๊ตฌํ˜„
  • DB์— ์žˆ๋Š” ๊ฐ€์ƒ์˜ ํ•™์ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด SSAFY ๊ต์œก์ƒ ๋ฐ ์ˆ˜๋ฃŒ์ƒ ๋ณธ์ธ ์ธ์ฆ ์ง€์›

2. ๋งค์นญ ์„œ๋น„์Šค

์Šคํ„ฐ๋””์› ๊ตฌ์ธ ์‹œ ํฌ๋ง ์Šคํ„ฐ๋”” ์„ ํƒ ์Šคํ„ฐ๋””์› ๊ตฌ์ธ ๊ฒฐ๊ณผ ์Šคํ„ฐ๋”” ์ฐพ๊ธฐ ๊ฒฐ๊ณผ
  • ํ•„ํ„ฐ๋ง ๋ฐ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ์ตœ์ ์˜ ์Šคํ„ฐ๋”” ๋ฐ ์Šคํ„ฐ๋””์› ๋งค์นญ

3. ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋””

Navbar ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ผ์ด๋ธŒ ์Šคํ„ฐ๋””
  • WebRTC ๊ธฐ๋ฐ˜ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๋ฐ ์˜์ƒ/์Œ์„ฑ ์ŠคํŠธ๋ฆฌ๋ฐ ์ง€์›
  • MediaSoup + Socket.io๋ฅผ ํ™œ์šฉํ•œ ์‹œ๊ทธ๋„๋ง ์„œ๋ฒ„ ๋ฐ ๋ฏธ๋””์–ด ์„œ๋ฒ„ ๊ตฌ์ถ•

4. ์Šคํ„ฐ๋”” ๋‹จ์ฒด ์ฑ„ํŒ…๋ฐฉ

Navbar ์ฑ„ํŒ… ์Šคํ„ฐ๋”” ์ฑ„ํŒ…๋ฐฉ
  • Socket.io + MongoDB๋ฅผ ์‚ฌ์šฉํ•œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋ฒ„ ๊ตฌํ˜„

5. AI ์ž๊ธฐ์†Œ๊ฐœ์„œ ์ฒจ์‚ญ ๊ธฐ๋Šฅ

AI ์ž์†Œ์„œ ํ”ผ๋“œ๋ฐฑ ์ž์†Œ์„œ ํ”ผ๋“œ๋ฐฑ ์ƒ์„ธ ํ”ผ๋“œ๋ฐฑ ๊ฒฐ๊ณผ
  • OpenAI API ๊ธฐ๋ฐ˜ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ์ ์šฉ
  • ํ”„๋กฌํ”„ํŠธ ์ตœ์ ํ™”(4,500์ž -> 1,500์ž)ํ•˜์—ฌ ํ† ํฐ ํšจ์œจ์„ฑ ์ฆ๋Œ€
  • ์ˆ˜์ •๋œ ๋ถ€๋ถ„์„ ์ŠคํŠธ๋ฆฌ๋ฐ UI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ‰์€์ƒ‰์œผ๋กœ ํ‘œ์‹œ ํ›„ PDF ํŒŒ์ผ๋กœ ์ €์žฅ ๊ฐ€๋Šฅ (์Šคํฌ๋žฉ ๊ธฐ๋Šฅ ์ง€์›)

6. AI ๋ฉด์ ‘ ํ”ผ๋“œ๋ฐฑ ์„œ๋น„์Šค

AI ์‹œ์„  ํ”ผ๋“œ๋ฐฑ AI ํ‘œ์ • ํ”ผ๋“œ๋ฐฑ
  • ํ‘œ์ • ๋ฐ ๋™๊ณต ๊ฐ์ง€ AI
    • Yolov8n ๋ชจ๋ธ์„ ํ™œ์šฉํ•ด ๋ชจ๋ธ ํ•™์Šต
    • ํ™”๋ฉด ์‘์‹œ ์—ฌ๋ถ€ ๋ถ„์„ ๋ฐ ๋น„์œจ ๊ณ„์‚ฐ ํ›„ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต (PNG)
  • ์˜จ๋””๋ฐ”์ด์Šค AI๋ฅผ ์œ„ํ•œ ์ตœ์ ํ™”: 9์ดˆ ์˜์ƒ ๋ถ„์„ ์‹œ 100์ดˆ โ†’ 7์ดˆ๋กœ ๊ฐ์†Œ

ํŒ€์› ๋ฐ ์—ญํ• 

image

์—ญํ•  ์ด๋ฆ„
Android ์ดํ˜ธ์ •, ์žฅํ™์ค€, ์ •์ฐฌ์šฐ
BackEnd ๊น€๋ฏผ์ฃผ, ์ด๋ฌธ๊ฒฝ
AI ๊น€์›…๊ธฐ, ์ดํ˜ธ์ •
WebRTC ์ •์ฐฌ์šฐ
Infra ์žฅํ™์ค€

์š”๊ตฌ ์‚ฌํ•ญ

์™ธ๋ถ€ API

  • ์นด์นด์˜ค ๋กœ๊ทธ์ธ API
  • OpenAI API
  • Firebase Cloud Message

๋ฐฐํฌ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

  • CI/CD: Jenkins, Docker, Docker Compose

Git ์ปจ๋ฒค์…˜

โš ๏ธํ˜•์‹์—์„œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์„ ์œ ์˜ํ•ด์ฃผ์„ธ์š”!!!

1. Issue ๋“ฑ๋ก

Jira์— ๋‹ด๋‹นํ•  ์ž‘์—…์—์„œ ๊ฐœ๋ฐœํ•ด์•ผํ•  ๋‚ด์šฉ๋“ค์„ issue ํ…œํ”Œ๋ฆฟ ํ˜•์‹์— ๋งž๊ฒŒ ๋“ฑ๋กํ•œ๋‹ค.

Issue ์ œ๋ชฉ ํ˜•์‹

[Part/Type] ์ด์Šˆ ์ œ๋ชฉ

  • (์˜ˆ์‹œ) [Android/Feat] ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ

2. branch ์ƒ์„ฑ

์ƒ์„ฑํ•œ ์ด์Šˆ์˜ ๋‚ด์šฉ๋งŒ์„ ๊ฐœ๋ฐœํ•  branch๋ฅผ ์ด๋ฆ„ ํ˜•์‹์— ๋งž์ถฐ ์ƒ์„ฑํ•œ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ๋๋‚˜๋ฉด master branch๋กœ Merge Request๋ฅผ ํ•œ๋‹ค.

branch ์ด๋ฆ„ ํ˜•์‹

type/#issue_number

  • (์˜ˆ์‹œ) feat/#3

3. commit ๋“ฑ๋ก

๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ commit ํ•  ๋•Œ, ์ œ๋ชฉ(title) ํ˜•์‹์„ ๋งž์ถฐ commitํ•œ๋‹ค.

commit์€ issue ๋“ฑ๋กํ•  ๋•Œ to-do ๋ฆฌ์ŠคํŠธ์— ์ž‘์„ฑํ•œ ๋‚ด์šฉ๋งˆ๋‹ค ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ...

commit ์ œ๋ชฉ ํ˜•์‹

branch์ด๋ฆ„ : commit ์ œ๋ชฉ

  • (์˜ˆ์‹œ) feat/#3 : example ๊ธฐ๋Šฅ ๊ตฌํ˜„

4. Merge Request ๋“ฑ๋ก

์ž‘์—…์ด ๋๋‚œ issue์— ํ•ด๋‹นํ•˜๋Š” branch๋ฅผ master branch์™€ mergeํ•˜๊ธฐ ์œ„ํ•ด, Merge Request๋ฅผ MR template ํ˜•์‹์— ๋งž์ถฐ ์ž‘์„ฑํ•˜๊ณ  ๋ณ‘ํ•ฉ์„ ์š”์ฒญํ•œ๋‹ค.

MR ์ œ๋ชฉ ํ˜•์‹

[Part/Type] MR ์ œ๋ชฉ

  • (์˜ˆ์‹œ) [BE/Fix] ๊ธฐ๋Šฅ ์ˆ˜์ •

About

[SSAFY 12๊ธฐ ๊ณตํ†ต PJT] ๐Ÿ“šSSAFY์ƒ์„ ์œ„ํ•œ ์Šคํ„ฐ๋”” ๊ด€๋ฆฌ ํ†ตํ•ฉ ์•ฑ ์„œ๋น„์Šค

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6