Skip to content
ujin999Public

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

166 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”น NOTI - ๋งํ•˜๋Š” ์ˆœ๊ฐ„, ํšŒ์˜๋ก์ด ์™„์„ฑ๋œ๋‹ค


AI ๊ธฐ๋ฐ˜ ์Œ์„ฑ ๊ธฐ๋ก ๋ฐ ํšŒ์˜๋ก ์ž๋™ํ™” ์„œ๋น„์Šค

๐Ÿ“– ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

NOTI๋Š” AI ๊ธฐ์ˆ ๊ณผ Spring Boot ๋ฐฑ์—”๋“œ์™€ Android ์•ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์Œ์„ฑ ๊ธฐ๋ก ๋ฐ ์š”์•ฝ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ํ•ต์‹ฌ ๊ฐ€์น˜

  • ๋…น์Œ์„ ์ง„ํ–‰ํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ…์ŠคํŠธ ๋ณ€ํ™˜ ๋ฐ ์š”์•ฝ ์ œ๊ณต
  • AI ๊ธฐ๋ฐ˜ ๋Œ€ํ™”ํ˜• ์งˆ์˜์‘๋‹ต์œผ๋กœ ํšŒ์˜ ๋‚ด์šฉ ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„

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


๐Ÿ“ฝ๏ธ ๋ฐ๋ชจ ๋ฐ ๊ฒฐ๊ณผ๋ฌผ

[์—ฌ๊ธฐ์— ๋ฐ๋ชจ ์˜์ƒ์ด๋‚˜ ์Šคํฌ๋ฆฐ์ƒท์ด ์ถ”๊ฐ€ํ•˜๊ธฐ]

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

๐ŸŽ™๏ธ ์Œ์„ฑ ์ฒ˜๋ฆฌ

  • ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ๋…น์Œ: ์•ฑ ๋‚ด์—์„œ ์ง์ ‘ ํšŒ์˜ ๋…น์Œ ๊ฐ€๋Šฅ
  • STT ๋ณ€ํ™˜: ๋…น์Œ ํŒŒ์ผ์„ Text๋กœ ์ „ํ™˜ํ•˜๋Š” Speech-to-Text ๊ธฐ๋Šฅ

๐Ÿง  AI ๊ธฐ๋ฐ˜ ๋ถ„์„

  • ์Šค๋งˆํŠธ ์š”์•ฝ: AI ๊ธฐ๋ฐ˜ ํšŒ์˜ ๋‚ด์šฉ ์ž๋™ ์š”์•ฝ
  • ๋Œ€ํ™”ํ˜• ์ฑ—๋ด‡: ํšŒ์˜ ๋‚ด์šฉ ๊ธฐ๋ฐ˜ ์งˆ์˜์‘๋‹ต ์‹œ์Šคํ…œ

๐Ÿ“ฑ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜

  • ์ง๊ด€์ ์ธ Android UI: ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ชจ๋ฐ”์ผ ์ธํ„ฐํŽ˜์ด์Šค

๐Ÿ—‚๏ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

  • ํด๋ผ์šฐ๋“œ ์ €์žฅ: ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋ณด๊ด€ ํ˜น์€ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๊ธฐ ๋กœ์ปฌ์— ๋ณด๊ด€ ๊ฐ€๋Šฅ
  • ํŒŒ์ผ ๊ด€๋ฆฌ: ์Œ์„ฑ ํŒŒ์ผ ์ด๋ฆ„ ์ˆ˜์ •, ์‚ญ์ œ ๊ธฐ๋Šฅ
  • ์‚ฌ์šฉ์ž ์ธ์ฆ: JWT ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ์‹œ์Šคํ…œ

๐Ÿ›  ๊ธฐ์ˆ  ์Šคํƒ

๐Ÿ–ฅ๏ธ Backend

  • Java 17: Java
  • Spring Boot 3.4.4: Spring Boot
  • Spring Data JPA: Spring Data JPA
  • Spring Security: Spring Security
  • MySQL 8.0: MySQL
  • RESTful API: RESTful API

๐Ÿ“ฑ Android Frontend

  • Kotlin: Kotlin
  • Android SDK (API 28-35): Android SDK
  • Jetpack Compose: Jetpack Compose
  • View Binding: View Binding
  • OkHttp: OkHttp
  • Glide: Glide

๐ŸŽจ UI/UX

  • Material Design: Material Design
  • Custom Animations: Custom Animations
  • Responsive Layout: Responsive Layout
  • Figma: Figma

๐Ÿ”ง ๊ฐœ๋ฐœ ๋„๊ตฌ ๋ฐ API

  • Google Speech-to-Text API: Google Speech-to-Text API
  • Google Gemini AI: Google Gemini AI
  • JWT (JSON Web Token): JWT
  • Postman: Postman
  • Gradle: Gradle

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

NotiApp/
โ”œโ”€โ”€ ๐Ÿ“ฑ android/                 # Android ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
โ”‚   โ”œโ”€โ”€ app/src/main/
โ”‚   โ”‚   โ”œโ”€โ”€ java/com/example/notiapp/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ  DashBoardActivity.kt      # ๋ฉ”์ธ ๋Œ€์‹œ๋ณด๋“œ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐ŸŽ™๏ธ RecordActivity.kt          # ๋…น์Œ ๊ธฐ๋Šฅ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ’ฌ ChatbotActivity.kt         # AI ์ฑ—๋ด‡
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ” SignInActivity.kt          # ๋กœ๊ทธ์ธ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“ RecordingDetailActivity.kt # ๋…น์Œ ์ƒ์„ธ
โ”‚   โ”‚   โ””โ”€โ”€ res/                           # ๋ฆฌ์†Œ์Šค ํŒŒ์ผ
โ”‚   โ””โ”€โ”€ build.gradle.kts                   # Android ๋นŒ๋“œ ์„ค์ •
โ”‚
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ noty/                    # Spring Boot ๋ฐฑ์—”๋“œ
โ”‚   โ”œโ”€โ”€ src/main/java/com/expert/project/noty/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐ŸŽ›๏ธ controller/                 # REST API ์ปจํŠธ๋กค๋Ÿฌ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ai/              # AI ๊ด€๋ จ API
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth/            # ์ธ์ฆ API  
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ file/            # ํŒŒ์ผ ๊ด€๋ฆฌ API
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿง  service/                    # ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ai/              # AI ์„œ๋น„์Šค
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth/            # ์ธ์ฆ ์„œ๋น„์Šค
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ file/            # ํŒŒ์ผ ์„œ๋น„์Šค
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š entity/                     # ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”ํ‹ฐํ‹ฐ
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ—ƒ๏ธ repository/                 # ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ณ„์ธต
โ”‚   โ”‚   โ””โ”€โ”€ โš™๏ธ config/                     # ์„ค์ • ํŒŒ์ผ
โ”‚   โ””โ”€โ”€ build.gradle                       # ๋ฐฑ์—”๋“œ ๋นŒ๋“œ ์„ค์ •
โ”‚
โ””โ”€โ”€ ๐Ÿ“‹ document/                # ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ
    โ”œโ”€โ”€ agile/                  # ์• ์ž์ผ ๊ฐœ๋ฐœ ๋ฌธ์„œ
    โ””โ”€โ”€ ํ™œ๋™์ผ์ง€ ๋ฐ ์ฃผ์ฐจ๋ณ„ ์Šคํฌ๋Ÿผ/   # ๊ฐœ๋ฐœ ์ผ์ง€
graph TB
    A[๐Ÿ“ฑ Android ์•ฑ<br/>Kotlin + Material Design] 
    A --> B[๐ŸŒ Spring Boot ๋ฐฑ์—”๋“œ<br/>Java 17 + JWT ๋ณด์•ˆ]
    B --> C[๐Ÿ—„๏ธ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค<br/>์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ + ํŒŒ์ผ]
    B --> D[๐Ÿง  AI ์„œ๋น„์Šค]
    D --> E[๐ŸŽค Google Speech-to-Text]
    D --> F[๐Ÿ’ก Google Gemini AI]

    %% ํด๋ž˜์Šค ์ •์˜
    classDef client fill:#ccf5e1,stroke:#00bf63,stroke-width:2px;
    classDef backend fill:#e6f9f0,stroke:#009e53,stroke-width:2px;
    classDef database fill:#fff5cc,stroke:#c9a000,stroke-width:2px;
    classDef ai fill:#f5e6ff,stroke:#9c4dcc,stroke-width:2px;
    classDef external fill:#f2f2f2,stroke:#666666,stroke-width:2px;

    %% ํด๋ž˜์Šค ์ ์šฉ
    class A client;
    class B backend;
    class C database;
    class D ai;
    class E,F external;
Loading

๐Ÿ“ฑ Android ์•ฑ ํ™”๋ฉด ํ”Œ๋กœ์šฐ

graph TB
    A[๐Ÿš€ SplashActivity<br/>์•ฑ ์‹œ์ž‘ ํ™”๋ฉด] --> B[๐Ÿ” SignInActivity<br/>๋กœ๊ทธ์ธ]
    B --> C[๐Ÿ  DashBoardActivity<br/>๋ฉ”์ธ ๋Œ€์‹œ๋ณด๋“œ]
    B --> D[โœ๏ธ SignUpActivity<br/>ํšŒ์›๊ฐ€์ž…]
    D --> B
    C --> E[๐ŸŽ™๏ธ RecordActivity<br/>์Œ์„ฑ ๋…น์Œ]
    C --> F[๐Ÿ“„ RecordingDetailActivity<br/>๋…น์Œ ์ƒ์„ธ๋ณด๊ธฐ]
    C --> G[๐Ÿ‘ค UserInfoActivity<br/>์‚ฌ์šฉ์ž ์ •๋ณด]
    F --> H[๐Ÿ’ฌ ChatbotActivity<br/>AI ์ฑ—๋ด‡ ๋Œ€ํ™”]

    %% ํด๋ž˜์Šค ์ •์˜
    classDef auth fill:#ccf5e1,stroke:#00bf63,stroke-width:2px;
    classDef dashboard fill:#e6f9f0,stroke:#009e53,stroke-width:2px;
    classDef record fill:#fff5cc,stroke:#c9a000,stroke-width:2px;
    classDef user fill:#f2f2f2,stroke:#666666,stroke-width:2px;
    classDef ai fill:#ffdfdf,stroke:#bf4040,stroke-width:2px;

    %% ํด๋ž˜์Šค ์ ์šฉ
    class A,B,D auth;
    class C dashboard;
    class E,F record;
    class G user;
    class H ai;
Loading

๐Ÿ”„ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค ํ๋ฆ„

graph TB
    A[๐Ÿ“ฑ Android ํด๋ผ์ด์–ธํŠธ] --> B[๐ŸŽ›๏ธ REST Controllers]
    B --> C[๐Ÿ” AuthController<br/>์ธ์ฆ ์„œ๋น„์Šค]
    B --> D[๐Ÿ“ FileController<br/>ํŒŒ์ผ ์—…๋กœ๋“œ]
    B --> E[๐Ÿง  AI Controllers<br/>STT/Chat/Summary]

    C --> F[๐Ÿ—ƒ๏ธ UserRepository]
    D --> G[๐Ÿ—ƒ๏ธ AudioFileRepository]
    E --> H[๐Ÿ—ƒ๏ธ SummationRepository]
    E --> I[๐Ÿ—ƒ๏ธ ChatSessionRepository]

    F --> J[๐Ÿ—„๏ธ MySQL Database]
    G --> J
    H --> J
    I --> J

    E --> K[๐ŸŽค Google STT API]
    E --> L[๐Ÿง  Gemini AI API]

    %% ํด๋ž˜์Šค ์ •์˜
    classDef client fill:#ccf5e1,stroke:#00bf63,stroke-width:2px;
    classDef controller fill:#e6f9f0,stroke:#009e53,stroke-width:2px;
    classDef repository fill:#fff5cc,stroke:#c9a000,stroke-width:2px;
    classDef database fill:#ffdfdf,stroke:#bf4040,stroke-width:2px;
    classDef external fill:#f2f2f2,stroke:#666666,stroke-width:2px;

    %% ํด๋ž˜์Šค ์ ์šฉ
    class A client;
    class B,C,D,E controller;
    class F,G,H,I repository;
    class J database;
    class K,L external;
Loading

๐Ÿš€ ์‹คํ–‰ ๋ฐฉ๋ฒ•

1๏ธโƒฃ ์‚ฌ์ „ ์ค€๋น„

# ํ•„์ˆ˜ ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜
- Java 17 ์ด์ƒ
- Android Studio (์ตœ์‹  ๋ฒ„์ „)
- MySQL 8.0
- Git

2๏ธโƒฃ ๋ฐฑ์—”๋“œ ์‹คํ–‰ (Spring Boot)

# ํ”„๋กœ์ ํŠธ ํด๋ก 
git clone [repository-url]
cd NotiApp/noty

# ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • (application.properties ํŒŒ์ผ ์ˆ˜์ •)
# MySQL ์—ฐ๊ฒฐ ์ •๋ณด, API ํ‚ค ๋“ฑ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

# ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰
./gradlew bootRun

# ๋˜๋Š” IDE์—์„œ NotyApplication.java ์‹คํ–‰

3๏ธโƒฃ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ์‹คํ–‰

# Android Studio์—์„œ android/ ํด๋” ์—ด๊ธฐ
cd NotiApp/android

# Gradle ๋™๊ธฐํ™” ํ›„ ๋นŒ๋“œ
# Run 'app' ๋˜๋Š” Shift + F10

# ์—๋ฎฌ๋ ˆ์ดํ„ฐ ๋˜๋Š” ์‹ค์ œ ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰

4๏ธโƒฃ ํ™˜๊ฒฝ ์„ค์ •

# noty/src/main/resources/application.properties
# ๋‹ค์Œ ํ•ญ๋ชฉ๋“ค์„ ์‹ค์ œ ๊ฐ’์œผ๋กœ ์„ค์ •:

# ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ
spring.datasource.url=jdbc:mysql://localhost:3306/noti_db
spring.datasource.username=your_username
spring.datasource.password=your_password

# Google API ํ‚ค
google.api.key=your_google_api_key

# JWT ์‹œํฌ๋ฆฟ
jwt.secret=your_jwt_secret

๐Ÿ“‹ API ๋ฌธ์„œ

๐Ÿ” ์ธ์ฆ API

Method Endpoint ์„ค๋ช…
POST /auth/register ํšŒ์›๊ฐ€์ž…
POST /auth/login ๋กœ๊ทธ์ธ
PUT /auth/modify ์‚ฌ์šฉ์ž ์ •๋ณด ์ˆ˜์ •
GET /auth/user-info ์‚ฌ์šฉ์ž ์ •๋ณด ์กฐํšŒ

๐Ÿ“ ํŒŒ์ผ ๊ด€๋ฆฌ API

Method Endpoint ์„ค๋ช…
POST /file/upload ์Œ์„ฑ ํŒŒ์ผ ์—…๋กœ๋“œ
GET /file/list ํŒŒ์ผ ๋ชฉ๋ก ์กฐํšŒ
GET /file/{fileId} ํŒŒ์ผ ์ •๋ณด ์กฐํšŒ
PUT /file/{fileId}/name ํŒŒ์ผ๋ช… ์ˆ˜์ •
DELETE /file/{fileId} ํŒŒ์ผ ์‚ญ์ œ

๐Ÿค– AI ์„œ๋น„์Šค API

Method Endpoint ์„ค๋ช…
POST /ai/stt ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜
POST /ai/summary ํ…์ŠคํŠธ ์š”์•ฝ
POST /ai/chat AI ์ฑ—๋ด‡ ๋Œ€ํ™”
GET /ai/sessions ์ฑ—๋ด‡ ์„ธ์…˜ ๋ชฉ๋ก
POST /ai/sessions ์ƒˆ ์ฑ—๋ด‡ ์„ธ์…˜ ์ƒ์„ฑ

๐Ÿ“Š ์‘๋‹ต ์˜ˆ์‹œ

{
  "success": true,
  "message": "์„ฑ๊ณต์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค",
  "data": {
    "fileId": "uuid-string",
    "fileName": "meeting_record.mp3",
    "transcription": "ํšŒ์˜ ๋‚ด์šฉ ํ…์ŠคํŠธ...",
    "summary": "ํšŒ์˜ ์š”์•ฝ ๋‚ด์šฉ..."
  }
}

๐Ÿ—„๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ

์ฃผ์š” ํ…Œ์ด๋ธ”

-- ์‚ฌ์šฉ์ž ์ •๋ณด
CREATE TABLE users (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) UNIQUE NOT NULL,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- ์˜ค๋””์˜ค ํŒŒ์ผ ์ •๋ณด
CREATE TABLE audio_files (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT NOT NULL,
    original_filename VARCHAR(255),
    stored_filename VARCHAR(255),
    file_path VARCHAR(500),
    file_size BIGINT,
    upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);

-- ์ฑ—๋ด‡ ์„ธ์…˜
CREATE TABLE chatbot_sessions (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT NOT NULL,
    audio_file_id BIGINT,
    session_name VARCHAR(255),
    status VARCHAR(20) DEFAULT 'ACTIVE',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (audio_file_id) REFERENCES audio_files(id)
);

-- ์ฑ„ํŒ… ๋Œ€ํ™” ๊ธฐ๋ก
CREATE TABLE chat_conversations (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    session_id BIGINT NOT NULL,
    user_message TEXT,
    ai_response TEXT,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (session_id) REFERENCES chatbot_sessions(id)
);

๐Ÿ”ง ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

ํ•„์ˆ˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜

# Google API ์„ค์ •
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
GOOGLE_API_KEY=your_google_api_key

# ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •
DB_URL=jdbc:mysql://localhost:3306/noti_db
DB_USERNAME=your_username
DB_PASSWORD=your_password

# JWT ์„ค์ •
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRATION=86400000

# ์„œ๋ฒ„ ์„ค์ •
SERVER_PORT=8080

๐Ÿงช ํ…Œ์ŠคํŠธ ์‹คํ–‰

# ๋ฐฑ์—”๋“œ ํ…Œ์ŠคํŠธ
cd noty
./gradlew test

# Android ํ…Œ์ŠคํŠธ
cd android
./gradlew test
./gradlew connectedAndroidTest  # ๊ธฐ๊ธฐ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ ์‹คํ–‰

๐Ÿค ๊ธฐ์—ฌ ๋ฐฉ๋ฒ•

๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ

  1. ์ด์Šˆ ๋“ฑ๋ก: ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋‚˜ ๊ธฐ๋Šฅ ์ œ์•ˆ์„ GitHub Issues์— ๋“ฑ๋ก
  2. ํฌํฌ & ๋ธŒ๋žœ์น˜: ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํฌํฌํ•˜๊ณ  ์ƒˆ ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ
  3. ๊ฐœ๋ฐœ: ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ค€์ˆ˜ํ•˜์—ฌ ๊ฐœ๋ฐœ
  4. ํ…Œ์ŠคํŠธ: ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ๋ฐ ์‹คํ–‰
  5. Pull Request: ์ƒ์„ธํ•œ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ PR ์ƒ์„ฑ

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

  • Java/Kotlin: Google Java Style Guide ์ค€์ˆ˜
  • ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€: feat:, fix:, docs: ๋“ฑ์˜ ์ ‘๋‘์‚ฌ ์‚ฌ์šฉ
  • ๋ธŒ๋žœ์น˜ ๋ช…๋ช…: feature/๊ธฐ๋Šฅ๋ช…, bugfix/์ด์Šˆ๋ฒˆํ˜ธ ํ˜•์‹

๊ฐœ๋ฐœ ํŒ€

  • ํ”„๋ก ํŠธ์—”๋“œ: Android ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐœ๋ฐœ
  • ๋ฐฑ์—”๋“œ: Spring Boot REST API ๊ฐœ๋ฐœ
  • AI/ML: ์Œ์„ฑ ์ธ์‹ ๋ฐ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ
  • UI/UX: ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋””์ž์ธ

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” Apache License 2.0 ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ, ์ˆ˜์ •, ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒ์—…์  ๋ชฉ์ ์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด์„ ์Šค๋Š” ๊ธฐ์—ฌ์ž๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠนํ—ˆ๊ถŒ์„ ๋ช…์‹œ์ ์œผ๋กœ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ๋ผ์ด์„ ์Šค ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages