티스토리 뷰

현재 상황

국비는 수료했는데 최종 프로젝트에서 개발한 기능이

회원가입이랑 비밀번호 재설정 밖에 없어서 

이력서에 작성할 다른 기능들을 개발해야겠다는 생각이 들었다.

 

최종 프로젝트는 다른 팀원들이 이미 필요한 기능은 다 구현해놨고

계정 관련 기능을 다른 방식으로도 구현해보고 싶었지만 그러면

계정 정보를 업데이트 하는 다른 로직도 일괄적으로 수정해야 한다고 그래서

 

결국 새로운 프로젝트를 하나 하기로 했는데

그 때 옛날에 현장실습 끝나고 하다가 만 프로젝트가 떠올랐다.

 

 

그 프로젝트

 

'멸치탈출 (플러터)' 카테고리의 글 목록

앱 개발 & 코테 정리해서 올리는 블로그

tsi0511.tistory.com

 

그 프로젝트는 바로 내 옛날 운동루틴을 기반으로 한 운동일지인데

이걸 안드로이드 앱으로 만들어보면 좋은 개발 경험이 될 것 같다.

 

 

사용할 기술 스택

아키텍쳐 MVVM
제트팩 Compose, ViewModel
디자인 패턴 UiState, Repository
비동기 처리 Coroutine
의존성 주입 Hilt
파이어베이스 Auth, FireStore
로컬 데이터 SharedPreferences
형상 관리 git, github
이렇게 사용할 예정이다.

 

 

MVVM 아키텍쳐 패턴을 사용하는 이유

MVVM 패턴은 UI 코드와 비즈니스 로직을 분리하여

코드의 유지보수성과 재사용성을 늘리기 위해 사용하는 아키텍쳐 패턴이다.

 

Compoable 함수는 UI 관련된 작업에만 집중하고,

비즈니스 로직은 ViewModel과 Model에서 처리하므로,

UI 변경이나 로직 수정이 필요할 때 각 구성 요소를 독립적으로 수정할 수 있어 효율적이다.

 

 

 Compose를 사용하는 이유

기존 안드로이드 개발은 xml을 이용하여 UI를 구성하고,

코틀린 클래스 파일에서 뷰를 연결해 기능을 구현하는 방식이었다.

 

기존 방식에서는 개발을 xml 파일과 코틀린 코드를 오가며 개발을 해야했다.

하지만 Compose를 이용하면 코틀린 코드 만을 이용해 UI를 구성할 수 있기에

번거로움이 줄어들고 이는 개발 속도의 향상으로 이어진다.

 

 

Compose 장점

- UI 작성을 xml 파일보다 간단한 코드로 하는 것이 가능하다.
- Composable 함수를 통해 파라미터 설정만으로 쉽게 UI 재사용이 가능하다.
- 직접 빌드할 필요 없이 Preview를 통해 작성한 화면의 UI 동작 확인이 가능하다.
- 애니메이션 구현을 위한 여러 API를 제공해 보다 손쉬운 애니메이션 구현이 가능하다.
- 리스트를 구현할 때 구현하기 번거로운 RecyclerView를 사용할 필요 없이
  LazyList 위젯을 사용하여 구현이 가능하다. (효율성은 RecyclerView와 동일)

그 외에도 위와 같은 장점들이 존재한다.

 

 

Repository 패턴을 사용하는 이유

Repository에는 데이터 관련 로직이 포함되며 뷰모델은 레파지토리를 활용해

데이터의 출처에 상관없이 필요한 데이터를 가져올 수 있게 된다.

 

레파지토리 패턴을 적용함으로써 ViewModel의 크기를 줄일 수 있고,

데이터 관련 로직 변경 시에도 코드 수정 범위를 최소화할 수 있게 된다.

 

 

UiState를 사용하는 이유

작업 성공 여부, 로딩 상태, 에러 등의 UI 상태를 일관되게 관리할 수 있다.

상태에 따른 UI 동작을 정의해두면 UI 코드가 자연스럽게 상태별로 정리되어,

코드가 흩어지지 않고 모아져 있어 가독성이 높은 코드를 작성할 수 있게 된다.

 

 

Hilt를 사용하는 이유

Repository와 ViewModel을 사용하려면 각 구성요소의 인스턴스를

사용하기 위해 관련된 모든 클래스의 인스턴스를 생성해야 하기에

코드의 간결성이 심하게 저하되는 문제점이 발생한다.

 

이러한 의존성 주입 문제를 해결하기 위해 Hilt라는 DI 라이브러리를 사용한다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함