From 6e7f5c37a97a16ddad61b43ab040ea1c3b7d983a Mon Sep 17 00:00:00 2001 From: Kyu hyunSung Date: Tue, 11 Mar 2025 12:42:33 +0900 Subject: [PATCH 1/5] [CHORE/#16] Add README.md with Tech stack --- README.md | 142 +++++++++++++++--- .../java/com/example/barrion/MainActivity.kt | 2 - 2 files changed, 125 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index da94f0e..60baabc 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,84 @@ +1월 둘째주 + +01/07 +- [ ] 15시 - XML selector 배우기 +- [ ] 기획 정리 및 PPT로 변환 +- [ ] 안드로이드 3강까지 듣고 정리하기 +- [ ] 알고리즘 공부 +- [ ] JAVA -> 객체지향 공부 +- [ ] 복싱 +- [ ] 블로그 작성 후, 파일정리(작업물들) + + +01/09 +- [ ] IOS ch 1 +- [ ] 창업동아리 공지 보고 어케할지 생각하기. +- [ ] 일자리 플러스 센터 정보 얻어가기 +- [ ] 1~3월까지 캡스톤 팀원 일정들 체크 + + + +5049* + +할수있는거 할수없는거 명확하게 + + +금,토 + + + +Recycle view , item이 필요하다 +Item XML - > adapter 연결 + +1. 데이터랑 item 1ㄷ1 연결 +2. List 랑 기능이랑 연결 -> 어댑터 + + +# API 연결 예제 코드 + +1. Recycler View + +UMC init 설정 + + + +시험 11시 + +공학관 411호 + +다익스트라, 플로이드 신장트리 이후 + + + +https://apis.data.go.kr/ +B551011/PhotoGalleryService1/galleryList1?numOfRows=10&pageNo=1&MobileOS=AND&MobileApp=app&arrange=A&_type=_json&serviceKey=KVLNantZhhbecolXsyBcwYgdnmPDo0poEXjIFRJLMG4adbgyavxDN9aKnwgKfeRsvG46veAKSktHS1e8mI%2FyKQ%3D%3D + + +https://apis.data.go.kr/ +galleryList1?pageNo=10&numOfRows=1&MobileOS=AND&MobileApp=app&arrange=A&_type=_json&serviceKey=KVLNantZhhbecolXsyBcwYgdnmPDo0poEXjIFRJLMG4adbgyavxDN9aKnwgKfeRsvG46veAKSktHS1e8mI%2FyKQ%3D%3D} + +하루 일정 트래킹 앱 +코틀린 멀티플랫폼(and ios) +좀 더 나은 기능들 간펀 추적및 커스텀 + +배포 및 출시 목표 +디자인 - figma +서버 - firebase(or Ktor) +프론트 - 코틀린 멀티플랫폼(and ios) +(compose) + ## Barrion

엘더케어

## 목차 - - [개요](#개요) - - [내용](#내용) - - [화면](#화면) - - [개발 환경](#개발환경) - - [인프라 구조](#인프라구조) - - [기술 스택](#기술스택) +- [개요](#개요) +- [내용](#내용) +- [화면](#화면) +- [개발 환경](#개발환경) +- [인프라 구조](#인프라구조) +- [기술 스택](#기술스택) ## 개요 - 프로젝트 이름: 배리어프리 스마트 키오스크 솔루션: 베리온(Barion) @@ -20,26 +89,65 @@ ## 개발 환경

- +

## 인프라 구조

- +

## 화면

- +

## 기술스택 -### **🤖** 안드로이드 -| **Category** | **TechStack** | -| --- | --- | -| Network | Retrofit, OkHttp, Gson | -| Service | Service | -| Asynchronous | Coroutines | -| Jetpack | DataBinding, Navigation | -| Image | Glide | +# 기술 스택 (Tech Stack) + +본 자영업자 키오스크 관리 애플리케이션은 다음과 같은 최신 기술 스택을 활용하여 개발되었습니다. + +## 아키텍처 & 디자인 패턴 + +| 기술 | 설명 | +|------|------| +| **Clean Architecture** | 비즈니스 로직과 UI를 명확히 분리하여 코드의 유지보수성과 테스트 용이성을 높입니다. 데이터, 도메인, 프레젠테이션 계층으로 구분하여 각 계층의 책임을 명확히 합니다. | +| **MVI with Orbit** | Model-View-Intent 패턴을 Orbit 라이브러리로 구현하여 단방향 데이터 흐름을 통해 UI 상태를 예측 가능하게 관리합니다. 복잡한 상태 변화를 효율적으로 처리하고 디버깅을 용이하게 합니다. | +| **멀티모듈 구조** | 앱을 기능별 모듈로 분리하여 개발 효율성과 빌드 속도를 향상시킵니다. 각 모듈은 독립적으로 개발 및 테스트가 가능하며, 코드 재사용성과 유지보수성이 향상됩니다. | + +## UI/UX + +| 기술 | 설명 | +|------|------| +| **Jetpack Compose** | 선언적 UI 툴킷을 사용하여 간결하고 직관적인 UI 개발이 가능합니다. 컴포넌트 기반 접근 방식으로 UI 요소 재사용성이 높아집니다. | +| **Glassmorphism 디자인** | 투명도와 흐림 효과를 활용한 현대적인 디자인 스타일을 적용하여 직관적이고 시각적으로 매력적인 사용자 경험을 제공합니다. | + +## 핵심 기술 + +| 카테고리 | 기술 | 설명 | +|---------|------|------| +| **언어** | Kotlin | 간결한 문법과 널 안전성, 확장 함수 등 현대적 기능을 제공하는 안드로이드 공식 언어입니다. | +| **의존성 주입** | Hilt | Dagger 기반의 의존성 주입 라이브러리로, 컴포넌트 간 결합도를 낮추고 테스트 용이성을 높입니다. | +| **네트워크** | Retrofit, OkHttp | REST API 통신을 위한 타입 안전한 HTTP 클라이언트를 제공하며, 인터셉터와 로깅 기능으로 네트워크 요청 관리를 용이하게 합니다. | +| **비동기 처리** | Coroutines, Flow | 비동기 작업을 직관적으로 처리하고, 반응형 데이터 스트림을 통해 실시간 데이터 변화를 효율적으로 UI에 반영합니다. | +| **이미지 처리** | Coil | Kotlin Coroutines 기반 이미지 로딩 라이브러리로, 메모리 효율성과 빠른 이미지 로딩을 제공합니다. | + +## 개발 프로세스 & 인프라 + +| 카테고리 | 기술 | 설명 | +|---------|------|------| +| **개발 전략** | Git Flow | 체계적인 브랜치 관리 전략을 통해 안정적인 릴리스 관리와 효율적인 팀 협업을 가능하게 합니다. | +| **CI/CD** | GitHub Actions | 자동화된 빌드, 테스트, 배포 파이프라인을 구축하여 코드 품질을 지속적으로 관리하고 개발 효율성을 높입니다. | + +## 데이터 관리 + +| 기술 | 설명 | +|------|------| +| **Room Database** | 로컬 데이터 저장을 위한 SQLite 추상화 라이브러리로, 오프라인 모드에서도 안정적인 데이터 접근을 제공합니다. | +| **DataStore** | 키-값 쌍 및 타입 안전한 데이터 저장을 위한 현대적인 솔루션으로, 사용자 환경설정 저장에 활용됩니다. | + +이러한 기술 스택의 조합을 통해 확장 가능하고, 유지보수가 용이하며, 사용자 경험이 뛰어난 자영업자 키오스크 관리 애플리케이션을 구현했습니다. + +
+ diff --git a/app/src/main/java/com/example/barrion/MainActivity.kt b/app/src/main/java/com/example/barrion/MainActivity.kt index b7ab155..fe0aff2 100644 --- a/app/src/main/java/com/example/barrion/MainActivity.kt +++ b/app/src/main/java/com/example/barrion/MainActivity.kt @@ -13,8 +13,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import com.example.barrion.ui.theme.BarrionTheme -// test plz - class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) From 7dada460aaf4e3a21c56da7baab8dda551ae0942 Mon Sep 17 00:00:00 2001 From: Kyu hyunSung Date: Sat, 10 May 2025 21:37:08 +0900 Subject: [PATCH 2/5] [CHORE/#16] Multi Module with Clean Architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 레이어 분리 (클린 아키텍처) 클린 아키텍처의 주요 레이어가 모두 존재합니다: Domain Layer (독립적인 비즈니스 로직) domain 모듈 Data Layer (데이터 소스 및 저장소) data 모듈 Presentation Layer (UI 및 뷰모델) presentation 모듈 각 기능별 모듈들 (feature/*) 2. 모듈 구조 (멀티모듈) 모듈 구조도 잘 구성되어 있습니다: 앱 모듈 앱의 진입점 (MainActivity, Application 클래스 등) 코어 모듈 core/common - 공통 유틸리티 및 기능 core/ui - UI 공통 요소 기능 모듈 feature/auth - 인증 기능 feature/menu - 메뉴 관리 feature/onboarding - 온보딩 플로우 feature/order - 주문 관리 feature/sales - 매출 관리 feature/staff - 직원 관리 --- .idea/compiler.xml | 2 +- .idea/gradle.xml | 13 ++++++ .idea/misc.xml | 2 +- build.gradle.kts | 2 + core/common/.gitignore | 1 + core/common/build.gradle.kts | 15 +++++++ .../main/java/com/example/common/MyClass.kt | 4 ++ core/ui/.gitignore | 1 + core/ui/build.gradle.kts | 43 +++++++++++++++++++ core/ui/consumer-rules.pro | 0 core/ui/proguard-rules.pro | 21 +++++++++ .../com/example/ui/ExampleInstrumentedTest.kt | 24 +++++++++++ core/ui/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/ui/ExampleUnitTest.kt | 17 ++++++++ data/.gitignore | 1 + data/build.gradle.kts | 43 +++++++++++++++++++ data/consumer-rules.pro | 0 data/proguard-rules.pro | 21 +++++++++ .../example/data/ExampleInstrumentedTest.kt | 24 +++++++++++ data/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/data/ExampleUnitTest.kt | 17 ++++++++ domain/.gitignore | 1 + domain/build.gradle.kts | 15 +++++++ .../main/java/com/example/domain/MyClass.kt | 4 ++ feature/auth/.gitignore | 1 + feature/auth/build.gradle.kts | 43 +++++++++++++++++++ feature/auth/consumer-rules.pro | 0 feature/auth/proguard-rules.pro | 21 +++++++++ .../example/auth/ExampleInstrumentedTest.kt | 24 +++++++++++ feature/auth/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/auth/ExampleUnitTest.kt | 17 ++++++++ feature/menu/.gitignore | 1 + feature/menu/build.gradle.kts | 43 +++++++++++++++++++ feature/menu/consumer-rules.pro | 0 feature/menu/proguard-rules.pro | 21 +++++++++ .../example/menu/ExampleInstrumentedTest.kt | 24 +++++++++++ feature/menu/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/menu/ExampleUnitTest.kt | 17 ++++++++ feature/onboarding/.gitignore | 1 + feature/onboarding/build.gradle.kts | 43 +++++++++++++++++++ feature/onboarding/consumer-rules.pro | 0 feature/onboarding/proguard-rules.pro | 21 +++++++++ .../onboarding/ExampleInstrumentedTest.kt | 24 +++++++++++ .../onboarding/src/main/AndroidManifest.xml | 4 ++ .../com/example/onboarding/ExampleUnitTest.kt | 17 ++++++++ feature/order/.gitignore | 1 + feature/order/build.gradle.kts | 43 +++++++++++++++++++ feature/order/consumer-rules.pro | 0 feature/order/proguard-rules.pro | 21 +++++++++ .../example/order/ExampleInstrumentedTest.kt | 24 +++++++++++ feature/order/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/order/ExampleUnitTest.kt | 17 ++++++++ feature/sales/.gitignore | 1 + feature/sales/build.gradle.kts | 43 +++++++++++++++++++ feature/sales/consumer-rules.pro | 0 feature/sales/proguard-rules.pro | 21 +++++++++ .../example/sales/ExampleInstrumentedTest.kt | 24 +++++++++++ feature/sales/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/sales/ExampleUnitTest.kt | 17 ++++++++ feature/staff/.gitignore | 1 + feature/staff/build.gradle.kts | 43 +++++++++++++++++++ feature/staff/consumer-rules.pro | 0 feature/staff/proguard-rules.pro | 21 +++++++++ .../example/staff/ExampleInstrumentedTest.kt | 24 +++++++++++ feature/staff/src/main/AndroidManifest.xml | 4 ++ .../java/com/example/staff/ExampleUnitTest.kt | 17 ++++++++ gradle/libs.versions.toml | 3 ++ presentation/.gitignore | 1 + presentation/build.gradle.kts | 43 +++++++++++++++++++ presentation/consumer-rules.pro | 0 presentation/proguard-rules.pro | 21 +++++++++ .../presentation/ExampleInstrumentedTest.kt | 24 +++++++++++ presentation/src/main/AndroidManifest.xml | 4 ++ .../example/presentation/ExampleUnitTest.kt | 17 ++++++++ settings.gradle.kts | 11 +++++ 75 files changed, 1061 insertions(+), 2 deletions(-) create mode 100644 core/common/.gitignore create mode 100644 core/common/build.gradle.kts create mode 100644 core/common/src/main/java/com/example/common/MyClass.kt create mode 100644 core/ui/.gitignore create mode 100644 core/ui/build.gradle.kts create mode 100644 core/ui/consumer-rules.pro create mode 100644 core/ui/proguard-rules.pro create mode 100644 core/ui/src/androidTest/java/com/example/ui/ExampleInstrumentedTest.kt create mode 100644 core/ui/src/main/AndroidManifest.xml create mode 100644 core/ui/src/test/java/com/example/ui/ExampleUnitTest.kt create mode 100644 data/.gitignore create mode 100644 data/build.gradle.kts create mode 100644 data/consumer-rules.pro create mode 100644 data/proguard-rules.pro create mode 100644 data/src/androidTest/java/com/example/data/ExampleInstrumentedTest.kt create mode 100644 data/src/main/AndroidManifest.xml create mode 100644 data/src/test/java/com/example/data/ExampleUnitTest.kt create mode 100644 domain/.gitignore create mode 100644 domain/build.gradle.kts create mode 100644 domain/src/main/java/com/example/domain/MyClass.kt create mode 100644 feature/auth/.gitignore create mode 100644 feature/auth/build.gradle.kts create mode 100644 feature/auth/consumer-rules.pro create mode 100644 feature/auth/proguard-rules.pro create mode 100644 feature/auth/src/androidTest/java/com/example/auth/ExampleInstrumentedTest.kt create mode 100644 feature/auth/src/main/AndroidManifest.xml create mode 100644 feature/auth/src/test/java/com/example/auth/ExampleUnitTest.kt create mode 100644 feature/menu/.gitignore create mode 100644 feature/menu/build.gradle.kts create mode 100644 feature/menu/consumer-rules.pro create mode 100644 feature/menu/proguard-rules.pro create mode 100644 feature/menu/src/androidTest/java/com/example/menu/ExampleInstrumentedTest.kt create mode 100644 feature/menu/src/main/AndroidManifest.xml create mode 100644 feature/menu/src/test/java/com/example/menu/ExampleUnitTest.kt create mode 100644 feature/onboarding/.gitignore create mode 100644 feature/onboarding/build.gradle.kts create mode 100644 feature/onboarding/consumer-rules.pro create mode 100644 feature/onboarding/proguard-rules.pro create mode 100644 feature/onboarding/src/androidTest/java/com/example/onboarding/ExampleInstrumentedTest.kt create mode 100644 feature/onboarding/src/main/AndroidManifest.xml create mode 100644 feature/onboarding/src/test/java/com/example/onboarding/ExampleUnitTest.kt create mode 100644 feature/order/.gitignore create mode 100644 feature/order/build.gradle.kts create mode 100644 feature/order/consumer-rules.pro create mode 100644 feature/order/proguard-rules.pro create mode 100644 feature/order/src/androidTest/java/com/example/order/ExampleInstrumentedTest.kt create mode 100644 feature/order/src/main/AndroidManifest.xml create mode 100644 feature/order/src/test/java/com/example/order/ExampleUnitTest.kt create mode 100644 feature/sales/.gitignore create mode 100644 feature/sales/build.gradle.kts create mode 100644 feature/sales/consumer-rules.pro create mode 100644 feature/sales/proguard-rules.pro create mode 100644 feature/sales/src/androidTest/java/com/example/sales/ExampleInstrumentedTest.kt create mode 100644 feature/sales/src/main/AndroidManifest.xml create mode 100644 feature/sales/src/test/java/com/example/sales/ExampleUnitTest.kt create mode 100644 feature/staff/.gitignore create mode 100644 feature/staff/build.gradle.kts create mode 100644 feature/staff/consumer-rules.pro create mode 100644 feature/staff/proguard-rules.pro create mode 100644 feature/staff/src/androidTest/java/com/example/staff/ExampleInstrumentedTest.kt create mode 100644 feature/staff/src/main/AndroidManifest.xml create mode 100644 feature/staff/src/test/java/com/example/staff/ExampleUnitTest.kt create mode 100644 presentation/.gitignore create mode 100644 presentation/build.gradle.kts create mode 100644 presentation/consumer-rules.pro create mode 100644 presentation/proguard-rules.pro create mode 100644 presentation/src/androidTest/java/com/example/presentation/ExampleInstrumentedTest.kt create mode 100644 presentation/src/main/AndroidManifest.xml create mode 100644 presentation/src/test/java/com/example/presentation/ExampleUnitTest.kt diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b86273d..fb7f4a8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 7b3006b..bab6435 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -11,6 +11,19 @@