Skip to content

imkhkim/inbuddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation


โœˆ InBuddy

  1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
  2. Abstract
  3. UCC
  4. ์ฃผ์š” ๊ธฐ๋Šฅ ์†Œ๊ฐœ
  5. ๊ธฐ์ˆ  ์†Œ๊ฐœ
  6. ๊ธฐ๋Œ€ํšจ๊ณผ
  7. ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜
  8. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
  9. ํŒ€์†Œ๊ฐœ

โœจํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ


๐Ÿ˜– ๊ดœํžˆ ํ•ด์™ธ์—ฌํ–‰ ๊ฐ€๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋‘๊ณ  ์™”์„ ๊ฑฐ ๊ฐ™์• .
๐Ÿ˜ซ ์ธ์ฒœ ๊ณตํ•ญ์— ๋„์ฐฉํ–ˆ๋Š”๋ฐ ์—ฌ๊ถŒ์„ ๋‘๊ณ  ์˜ค๋‹ค๋‹ˆ..!
๐Ÿคจ ์˜ค๋Š˜ ๋‚ ์”จ๊ฐ€ ๋ณ„๋กœ์ธ๋ฐ ๋น„ํ–‰๊ธฐ๊ฐ€ ๋œฐ๊นŒ?
๋‹น์‹ ์˜ ์—ฌ์ •์— ์ฐจ์งˆ์ด ์—†๋„๋ก InBuddy

โœจAbstract


๐Ÿ˜– I think I left something I needed before I went abroad for no reason.
๐Ÿ˜ซ I just arrived at the Incheon International airport and I can't believe I left my passport behind...!
๐Ÿคจ The weather is not good today. Will the plane fly?
So that there's no disruption to your journey InBuddy

๐Ÿ“ผUCC


์ด๋ฏธ์ง€ ํ…์ŠคํŠธ

์œ„์˜ ์‚ฌ์ง„์„ ํด๋ฆญํ•˜๋ฉด ์˜์ƒ ๋งํฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.


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

๋กœ๊ทธ์ธ

๋กœ๊ทธ์ธ

์—ฌ์ • ๋ฐ ํ•ญ๊ณต๊ถŒ ๋“ฑ๋ก

์—ฌ์ • ๋ฐ ํ•ญ๊ณต๊ถŒ ๋“ฑ๋ก

์ค€๋น„๋ฌผ ๋ฆฌ์ŠคํŠธ

์ค€๋น„๋ฌผ ๋ฆฌ์ŠคํŠธ

์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ - ์—ฌ๊ถŒ ๋ฐ ํƒ‘์Šน

์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ1

์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ - ํ™˜์ „ ๋ฐ ๋กœ๋ฐ

์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ2

ํ•ญ๊ณต๊ถŒ ๋ฐ”์ฝ”๋“œ๋กœ ์ขŒ์„ ๋“ฑ๋ก

์ขŒ์„ ๋“ฑ๋ก

ํ•ญ๊ณตํŽธ ์‚ฌ์œ  ํ™•์ธ

ํ•ญ๊ณตํŽธ ์‚ฌ์œ  ํ™•์ธ


image

  1. ์—ฌ์ •์„ ๋“ฑ๋กํ•˜๊ณ  ๊ด€๋ฆฌ

  2. ์—ฌ์ •๋ณ„ ์ค€๋น„๋ฌผ ๋ฆฌ์ŠคํŠธ ๋“ฑ๋ก ๋ฐ ์ฒดํฌ

  3. ์—ฌ์ •๋ณ„ ์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ ๋“ฑ๋ก ๋ฐ ์ฒดํฌ

  4. ์ด์Šˆ ๋ฐœ์ƒ ์‹œ ๋Œ€์ฒ˜ ๋ฐฉ๋ฒ• ์•ˆ๋‚ด ๋ฐ ์ธ์ฒœ๊ตญ์ œ๊ณตํ•ญ ๋‚ด ๋Œ€์ฒ˜ ์žฅ์†Œ ํ™•์ธ

  5. ์—ฌ์ •๋ณ„ ํ•ญ๊ณตํŽธ ๋“ฑ๋ก ๋ฐ ํ•ญ๊ณตํŽธ ํ˜„ํ™ฉ ํ™•์ธ

  6. ์ธ์ฒœ๊ตญ์ œ๊ณตํ•ญ, ๋„์ฐฉ ๊ณตํ•ญ ๋‚ ์”จ ์‹ค์‹œ๊ฐ„ ํ™•์ธ

  7. ์ฒดํฌ์ธ ์นด์šดํ„ฐ ํ™•์ธ ๋ฐ ํ„ฐ๋ฏธ๋„ ๊ฐ„ ์ด๋™ ๋ฐฉ๋ฒ• ์•ˆ๋‚ด

  8. ํ•ญ๊ณตํŽธ ์ง€์—ฐ, ํšŒํ™ฉ, ์ทจ์†Œ ์‹œ ์‚ฌ์œ  ํ™•์ธ

  9. ๋‚ ์”จ์— ์˜ํ•œ ์ง€์—ฐ์‹œ ์ง€์—ฐ ์˜ˆ์ธก


๐Ÿ› ๊ธฐ์ˆ  ์†Œ๊ฐœ


  1. Hadoop, Spark, Kafka๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ๊ณตํŽธ ๋น…๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์ €์žฅ ๋ฐ ์ฝ๊ธฐ

  2. ๋จธ์‹ ๋Ÿฌ๋‹์„ ์ด์šฉํ•˜์—ฌ ๋‚ ์”จ์— ๋”ฐ๋ฅธ ํ•ญ๊ณตํŽธ ์ง€์—ฐ ์˜ˆ์ธก

  3. Redis๋ฅผ ์ด์šฉํ•˜์—ฌ Refresh ํ† ํฐ๊ณผ ์˜ค๋Š˜ ์ดํ›„์˜ ํ•ญ๊ณตํŽธ๊ณผ ๋‚ ์”จ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ์ ‘๊ทผ ๋ฐ ํšจ์œจ์„ฑ ์ฆ๋Œ€

  4. PWA(ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์›น ์•ฑ)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ฑ๊ณผ ์œ ์‚ฌํ•œ ๊ฒฝํ—˜์„ ์›น์—์„œ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Lasso ๋ชจ๋ธ

Lasso(Least Absolute Shrinkage and Selection Operator) ๋ชจ๋ธ์€ ํšŒ๊ท€ ๋ถ„์„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ, ๊ณผ์ ํ•ฉ์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ ๋ณ€์ˆ˜ ์„ ํƒ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ์†์‹ค ํ•จ์ˆ˜์— ์ ˆ๋Œ€๊ฐ’ ๊ธฐ๋ฐ˜์˜ ๊ทœ์ œ ํ•ญ(L1 ๊ทœ์ œ)์„ ์ถ”๊ฐ€ํ•˜์—ฌ, ์ผ๋ถ€ ํšŒ๊ท€ ๊ณ„์ˆ˜๋ฅผ ์ •ํ™•ํžˆ 0์œผ๋กœ ๋งŒ๋“ค์–ด ๋ถˆํ•„์š”ํ•œ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋ธ์˜ ๋ณต์žก๋„๋ฅผ ์ค„์ด๋ฉด์„œ๋„ ์ค‘์š”ํ•œ ๋ณ€์ˆ˜๋งŒ์„ ์„ ํƒํ•˜์—ฌ ํ•ด์„๋ ฅ์ด ๋†’์€ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Lasso๋Š” ํŠนํžˆ ๋ณ€์ˆ˜๊ฐ€ ๋งŽ์€ ๋ฐ์ดํ„ฐ์…‹์— ์œ ์šฉํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

InBuddy์˜ ๊ฒฝ์šฐ ๋น„ํ–‰๊ธฐ ์ง€์—ฐ ์˜ˆ์ธกํ•  ๋•Œ ํ•ญ๊ณตํŽธ๋ช…, ํ•ญ๊ณต์‚ฌ ๋“ฑ ๋ฒ”์ฃผํ˜• ๋ฐ์ดํ„ฐ๋“ค์— ๋Œ€ํ•ด one-hot ์ธ์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์ด ๋„ˆ๋ฌด ๋งŽ์•„์ ธ ๊ณผ์ ํ•ฉ์ด ๋  ์šฐ๋ ค๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ๋‹ค์ค‘ ์„ ํ˜• ํšŒ๊ท€ ๋ชจ๋ธ ์ค‘ ์ •๊ทœํ™”๋ฅผ ํฌํ•จํ•œ Lasso ๋ชจ๋ธ์„ ์„ ํƒํ–ˆ๊ณ , ์ •๊ทœํ™” ์ž‘์—…๊ณผ ๊ต์ฐจ๊ฒ€์ฆ ์ž‘์—…์„ ํ†ตํ•ด ๊ณผ์ ํ•ฉ์„ ๋ฐฉ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค.


โœจ๊ธฐ๋Œ€ํšจ๊ณผ


  1. ์ฒด๊ณ„์ ์ธ ์—ฌํ–‰ ์ค€๋น„
  2. ์‹ ์†ํ•œ ๋ฌธ์ œ ๋Œ€์ฒ˜
  3. ์‹œ๊ฐ„ ์ ˆ์•ฝ

๐Ÿ’ก์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜


image


โš™๊ฐœ๋ฐœ ํ™˜๊ฒฝ


Back End

Java: 17

IntelliJ 2023.3.2

Springboot: 3.2.2

JVM: 17.0.9

Fast API: 0.110.0

Database

Redis : 7.2.4

MySQL: 8.0.34

Front End

VS Code: 1.85.1

React: 18.2.0

Tailwind CSS: 3.4.1

Vite: 5.1.6

Node.js: 20.10.0

Redux Toolkit: 2.2.2

TanStack: 5.28.8

Query v5

shadcn/ui

Big Data

Hadoop: 3.4.0

Spark: 3.5.1

Kafka: 0.10.2

Infra

AWS EC2 Ubuntu 20.04.6 LTS

Docker

Jenkins


๐Ÿ“‚ ๊ธฐํš ๋ฐ ์„ค๊ณ„ ์‚ฐ์ถœ๋ฌผ


์š”๊ตฌ์‚ฌํ•ญ ์ •์˜, ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ

image

์šฉ์–ด ์ •๋ฆฌ
  • ์—ฌ์ • ์ปฌ๋ ‰์…˜: ์‚ฌ์šฉ์ž์˜ ์ง€๋‚œ ์—ฌ์ •๋ถ€ํ„ฐ ์˜ˆ์ •๋œ ์—ฌ์ •๊นŒ์ง€ ๋ชจ๋“  ์—ฌ์ •์ด ๋‹ด๊ฒจ์žˆ๋Š” ์ปฌ๋ ‰์…˜์ž…๋‹ˆ๋‹ค.
  • ์ค€๋น„๋ฌผ ๋ฆฌ์ŠคํŠธ: ์‚ฌ์šฉ์ž๊ฐ€ ๊ณตํ•ญ์— ๋„์ฐฉํ•˜๊ธฐ ์ „ ์ฑ™๊ฒจ์•ผ ํ•  ์ค€๋น„๋ฌผ(ITEM) ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.
    • ์—ฌ๊ถŒ, ์ง€๊ฐ‘ ๋“ฑ ํ•„์ˆ˜์ ์œผ๋กœ ์ค€๋น„ํ•ด์•ผ ํ•˜๋Š” ์ค€๋น„๋ฌผ์€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋กœ ์ค€๋น„ํ•  ์ค€๋น„๋ฌผ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋“ฑ๋ก๋œ ๋ชจ๋“  ์ค€๋น„๋ฌผ์„ ์ค€๋น„ํ–ˆ๋‹ค๊ณ  ํ‘œ์‹œํ•˜๋ฉด, ์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ์˜ ์ค€๋น„๋ฌผ ์ ๊ฒ€ ์‚ฌํ•ญ์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ: ์‚ฌ์šฉ์ž๊ฐ€ ์ถœ๊ตญ ์ „ ๊ณตํ•ญ์—์„œ ์™„๋ฃŒํ•ด์•ผ ํ•  ์ ๊ฒ€(TASK) ๋ฆฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.
    • ์ค€๋น„๋ฌผ ์ ๊ฒ€, ๋ฐœ๊ถŒ ๋“ฑ ํ•„์ˆ˜์ ์œผ๋กœ ์™„๋ฃŒํ•ด์•ผ ํ•˜๋Š” ์ ๊ฒ€ ์‚ฌํ•ญ์€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ์ ๊ฒ€ ์‚ฌํ•ญ์€ ๋Œ๋ฐœ ์ƒํ™ฉ ์‹œ ๋Œ€์ฒ˜ํ•  ์š”๋ น ๋˜ํ•œ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ถ”๊ฐ€๋กœ ์™„๋ฃŒํ•ด์•ผํ•  ์ ๊ฒ€ ์‚ฌํ•ญ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ถ”๊ฐ€ํ•œ ์ ๊ฒ€ ์‚ฌํ•ญ์—๋Š” ๋Œ€์ฒ˜ ์š”๋ น์€ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ์ ๊ฒ€ ์‚ฌํ•ญ์„ ์™„๋ฃŒํ•˜๋ฉด, ์ตœ์ข… ์™„๋ฃŒ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
    • ์ตœ์ข… ์™„๋ฃŒ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ญ๊ณตํŽธ์˜ ์šดํ•ญ ํ˜„ํ™ฉ์— ๋”ฐ๋ผ ์ •์ƒ ์šดํ•ญ ํŽ˜์ด์ง€ ๋˜๋Š” ๋น„์ •์ƒ ์šดํ•ญ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.
ERD

image

์™€์ด์–ด ํ”„๋ ˆ์ž„

image


๐Ÿ’ปํŒ€์†Œ๊ฐœ


  • ๊น€๊ธˆํ™˜ ํŒ€์žฅ
    • BE, ๋ฐœํ‘œ
    • ERD ์„ค๊ณ„
    • Hadoop, Spark Cluster ๊ตฌ์ถ•
    • Spark์—์„œ Kafka๋กœ๋ถ€ํ„ฐ ๊ณผ๊ฑฐ ํ•ญ๊ณตํŽธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ Hadoop HDFS์— ๋ˆ„์  ์ ์žฌ
    • Redis์— ์ €์žฅ๋œ ํ•ญ๊ณต ๋ฐ์ดํ„ฐ Spring Boot์™€ ์—ฐ๋™
  • ๊น€์„ฑ๋ฏผ
    • FE
    • ํ”ผ๊ทธ๋งˆ ์™€์ด์–ด ํ”„๋ ˆ์ž„ ์„ค๊ณ„
    • PWA
    • ์—ฌ์ • ๋ฆฌ์ŠคํŠธ, ์—ฌ๊ถŒ, ๋กœ๋ฐ, ํ™˜์ „ ๋Œ€์ฒ˜ ํŽ˜์ด์ง€ ๊ตฌํ˜„
    • Adobe illustrator ์„ ์‚ฌ์šฉํ•œ ์ธ์ฒœ๊ณตํ•ญ ๋‚ด๋ถ€ ์ง€๋„ ๋ฐ ์ฃผ์š” ํŽธ์˜์‹œ์„ค ๋งˆ์ปค๊ฐ€ ํฌํ•จ๋œ svg ํŒŒ์ผ ์ œ์ž‘
    • react-panning-zoom libary๋ฅผ ์‚ฌ์šฉํ•œ ์ธ์ฒœ๊ณตํ•ญ ๋‚ด๋ถ€ ์ง€๋„ ์คŒ, ๋“œ๋ž˜๊ทธ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์šฐ์ฐฌ๋ช…
    • FE
    • ํ”ผ๊ทธ๋งˆ ์™€์ด์–ด ํ”„๋ ˆ์ž„ ์„ค๊ณ„
    • PWA
    • tanstack query
    • redux toolkit ์Šค์ผˆ๋ ˆํ†ค ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ ๊ตฌํ˜„
    • ์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ, ์ค€๋น„๋ฌผ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„
  • ์ž„์„œ์ •
    • BE, FE
    • oauth2, jwt, spring security ํ™œ์šฉํ•œ ์†Œ์…œ ๋กœ๊ทธ์ธ
    • ํ•ญ๊ณต, ๋‚ ์”จ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
    • zxing library ํ™œ์šฉํ•œ ํ•ญ๊ณตํŽธ ์ •๋ณด ์ถ”์ถœ ๋ฐ ๊ฐ€๊ณต
    • UCC ํŽธ์ง‘
  • ์˜ค์ƒํ›ˆ
    • Infra, BE, ML
    • ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘
    • ๋ฐฐํฌ ์ž๋™ํ™”
    • ํ…Œ์ŠคํŠธ์„œ๋ฒ„ ๊ตฌ์ถ•
    • ๋ฐ์ดํ„ฐ ์Šค์ผ€์ค„๋Ÿฌ ์ œ์ž‘
    • Kafka Cluster ๊ตฌ์ถ•
  • ์ด์˜ˆ์ง„
    • BE
    • API ๋ช…์„ธ์„œ ์ž‘์„ฑ
    • ์—ฌ์ • ์ปฌ๋ ‰์…˜ CRUD ๊ตฌํ˜„ (JPA)
    • ์ ๊ฒ€ ๋ฆฌ์ŠคํŠธ CRUD ๊ตฌํ˜„ (JPA)
    • ์ค€๋น„๋ฌผ ๋ฆฌ์ŠคํŠธ CRUD ๊ตฌํ˜„ (JPA)
    • ํ•ญ๊ณตํŽธ ์ •๋ณด CRUD ๊ตฌํ˜„ (JPA)
    • Swagger

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published