오늘한 일
- A·아이 프로젝트를 진행하였다
- 블로그 TIL을 작성하였다
- 1일 1커밋을 하였다
느낌 점
이번에 새로 알게 된 SAA를 도입해서 기존에 액티비티로 구현되어 있는 로그인 및 회원가입, 비밀번호 재설정 화면을 프래그먼트로 다시 구현해야겠다고 마음 먹었다 이번에 하는 프로젝트는 첫 대회이면서 API라던지 SAA라던지 새로운 것들을 많이 도전해보는 프로젝트인 것 같다
배운 점
Android SAA (Single Activity Architecture)
Single Activity Architecture 줄여서 SAA란 2018 구글 I/O에서 언급한 개념으로 기존 액티비티 기반의 화면 구성이 아닌 소수의 액티비티와 다수의 프래그먼트를 이용해 화면을 구성하는 구조로 jetpack navigation과 함께 소개되었다
이는 기존에 없던 개념을 구글이 처음 제시한 내용은 아니고 그 전부터 토론되어 왔던 내용을 구글이 jetpack navigation과 함께 엮어 더욱 편리하게 하나의 액티비티에서 다수의 프래그먼트를 다룰 수 있도록 작성한 것이다
위 방식에 장점은 아래와 같은데
- 간단한 UI 관리: 하나의 액티비티로 모든 화면을 관리하므로 액티비티 간의 전환에 대한 복잡성이 줄어든다
- 앱 성능 향상: 액티비티 간의 전환보다 프래그먼트 간의 전환은 메모리 사용량이 적으며 빠르게 처리될 수 있다
- 다중 창 모드 지원: Android Nougat 이상에서 다중 창 모드를 지원하는 데 도움이 된다
하지만 Single Activity을 사용할 때 고려해야 할 몇 가지 단점도 있다
- 구현 복잡성: 앱의 규모가 크거나 복잡한 UI를 가지는 경우 구현이 복잡해질 수 있다
- 유지 보수 어려움: 하나의 액티비티에서 모든 화면과 상태를 관리하므로 유지 보수에 어려움이 있을 수 있다
- 이전 버전 호환성: Android 버전 호환성 문제가 있을 수 있다
그렇기에 SAA를 사용할 때는 위와 같은 점들을 잘 살펴보고 선택해야 한다
이번에 A·아이 프로젝트를 진행하면서 로그인, 회원가입, 비밀번호 재설정을 각각 액티비티로 구현해야 하나 아님 프레그먼트로 해야하나 고민하다가 찾아보던 중 요즘 대세라는 SAA에 대해 알게 되어 해당 내용을 정리해봤다
내일 계획
내일은 A·아이 프로젝트를 진행해야겠다