본문 바로가기

안드로이드

클린 아키텍처 in 안드로이드 이전에 클린 아키텍처 개념에 대해 포스팅을 작성했었는데요그렇다면 클린 아키텍처가 안드로이드에서는 어떻게 사용되는지 살펴보겠습니다   👩🏻‍💻 안드로이드에 적용한 클린 아키텍처  클린 아키텍처에서 엔터프라이즈 업무 규칙, 애플리케이션 업무 규칙, 인터페이스 어댑터, 프레임워크와 드라이버로 나눠져 있던 청사진입니다안드로이드에서는 이를 프레젠테이션 계층(Presentation Layer), 도메인 계층(Domain Layer), 데이터 계층(Data Layer) 3개의 계층으로 나누게 됩니다 클린 아키텍처 구조에서는 의존성이 무조건 바깥에서 안쪽으로 향하지만 안드로이드에서는 계층을 나누기 때문에 프레젠테이션 계층과 데이터 계층이 도메인 계층을 바라보며 의존성을 가지는 형태로 구성됩니다 그리고 각 계층에 .. 더보기
클린 아키텍처(Clean Architecture)란? 안드로이드 프로젝트를 진행하며 클린 아키텍처를 기반으로 구현을 하게 되었는데요처음엔 너무 대체 이게 뭐지..? 싶었던 클린 아키텍처를 차근차근 정리해보려고 합니다오늘은 우선 클린 아키텍처의 개념부터 정리해보겠습니다 :)   👩🏻‍💻 클린 아키텍처(Clean Architecture)란 ?클린 아키텍처란 개발자들 사이에서 유명한 책인 '클린 코드 (Clean Code)'를 저술한 로버트 마틴(Robert C.Martin)이 제안한 시스템 아키텍처로, 복잡한 소프트웨어 시스템 관리를 용이하게 하고 기존의 아키텍처들이 가지던 의존성에서 벗어나도록 하는 설계를 제공합니다. 주요 원칙클린 아키텍처의 주요 원칙은 아래와 같습니다 1. 의존성 역전 원칙 (Dependency Inversion Principle)고.. 더보기
구글 플레이스토어 첫 앱 출시기 <안뜰> IT 동아리에서 1월부터 시작해 팀원들과 꾸준히 진행한 '안뜰'이 드디어 9월 초에 구글 플레이 스토어에 배포되었다 ! 안뜰 플레이 스토어 링크 🌱https://play.google.com/store/apps/details?id=com.umc.anddeul&hl=ko  첫 앱 출시기 시작합니다 💨   🌱 안뜰 '안뜰'은 가족 간 소통을 위한 소규모 SNS 어플리케이션입니다  주요 기능은 이렇게 4가지가 있습니다1. 우리 가족만을 위한 작은 SNS 💌게시글에 사진이나 음성을 올려 서로의 일상을 공유해보세요!이모지로 게시물에 반응을 남겨보세요.2. ‘따듯한 잔소리’ 기능 내 가족에게 애정 어린 잔소리가 필요할 때!가족의 페이지에 직접 체크리스트 만들어주세요 : 상대방의 페이지에 방문해 직접 체크리스트.. 더보기
[Android] 비즈니스 로직이란? 프로젝트를 진행하며 클린 아키텍처를 도입하면서 UseCase를 사용하게 되었는데요 처음 사용하는 UseCase에 대해 찾아보는데 ..UseCase를 사용하면서 UseCase는 비즈니스 로직을 실행한다, UseCase를 설계할 때 비즈니스 로직에 기반한다.. 등등 대체 비즈니스 로직이 정확히 뭐지..?? 🤯 UseCase를 제대로 사용하기 전에 비지니스 로직에 대해 먼저 이해하기 위해 정리해보았습니다     🤔 우선, 로직 분리를 왜 해야하지 ?바로 소프트웨어 설계의 근본인 "관심사의 분리"를 위해서 ! 조금 더 쉽게 풀어서 말하면코드를 하나의 커다란 뭉텅이로 만들지 말고, 작게 쪼개서 역할을 나누자 ! 하나의 앱을 만들기 위해선 간단해보이는 작은 앱일지라도 생각보다 많은 코드가 필요합니다그렇다 보면 .. 더보기
[Android] 앱 배포하기04_ AAB 파일 만들기 🪐 AAB 파일이란 ?AAB 파일은 Android App Bundle의 줄임말로, 안드로이드 애플리케이션을 배포하기 위한 새로운 앱 패키징 형식입니다Google에서는 2021년 8월부터 배포되는 안드로이드 앱은 APK 파일이 아닌 AAB 파일로 업로드 되어야 한다고 정책을 바꾸었습니다 AAB는 APK와 달리 모든 디바이스에 동일한 파일을 제공하지 않고, 각 디바이스에 맞게 최적화된 APK를 생성해 배포합니다    🤔 여기에서 '각 디바이스에 맞게 최적화된' 이 무엇인가 하면예를 들어 앱이 여러 언어 (한국어, 영어, 일본어)를 지원한다고 가정해보겠습니다 APK 방식일 때는 모든 언어 리소스를 포함한 하나의 APK 파일을 생성해야 하며, 사용자가 필요하지 않은 언어 리소스도 함께 설치됩니다즉, 한국 사.. 더보기
[Android] 앱 배포하기03_ Proguard로 코드 난독화하기 🎲 코드 난독화가 뭐야?코드 난독화란 소스 코드의 가독성을 줄여서 코드의 분석 및 역공학을 어렵게 만드는 기술입니다 코드의 기능적 동작은 변경하지 않으면서, 코드의 구조와 내용을 복잡하게 만들어 해커나 악의적인 사용자가 코드를 이해하거나 수정하는 것을 어렵게 만들어줍니다 ! 즉, 한마디로 코드를 알아보기 어렵게 만든다는 거죠 난독화 도구로는 Proguard, R8, DexGuard 등이 있는데 저는 Proguard를 사용해서 난독화를 진행했습니다     🤔 왜 해야할까?1. 보안 강화- 애플리케이션의 내부 동작과 알고리즘을 숨겨 소스 코드의 취약점을 악용하거나 불법적으로 분석하는 것을 어렵게 만들어줍니다 2. 역공학 방지- 역컴파일러를 사용하여 원래의 소스 코드를 재구성하기 어렵게 만들어줍니다 3. .. 더보기
[Android] 앱 배포하기02_ 안드로이드 스튜디오 Release build 🚀  Release build는 왜 해야 할까 ?앱을 최종적으로 배포하기 위해 성능 최적화, 보안 강화 등을 보장하는 안정적이고 최적화된 버전을 생성하기 위해 진행을 하는데요,개발 과정에서 사용하는 디버그 빌드와 달리 릴리즈 빌드는 실제 배포를 목적으로 하며 디버그 빌드와는 여러 차이점이 있습니다     🚀 Debug Build란 ?평소에 개발할 때 사용하는 빌드주로 개발과 테스트를 위해 사용애플리케이션의 코드와 동작을 디버깅하기 쉽도록 여러 기능이 활성화 되어있음개발 환경이 갖추어진 상태에서 Debug용으로 제작되어지는 프로그램실행 파일에 디버깅 정보를 삽입하여 언제든지 디버깅을 할 수 있도록 하여 Debug 서브 폴더에 실행 파일을 만들어줌디버깅 정보가 들어가 있기 때문에 실행 파일 상태를 확인 .. 더보기
[Android] 앱 배포하기01_ 안드로이드 스튜디오에서 APK 서명 키 만들기 🔐 APK 서명 키 만들기앱을 만들고 배포하기 전에 APK 서명 키를 만들어야 하는데요,서명 키를 만드는 이유는 이 앱의 무결성과 구글 플레이스토어에서 업데이트를 할 때 필요하기 때문입니다Google Play Store에서는 동일한 서명 키로 서명된 파일만이 기존 앱을 업데이트 할 수 있도록 하기 때문에키 비밀번호를 잊지 않는게 아주 아주 중요합니다 그렇기 때문에 잘 보관해두셔야 합니다 ! 또한 배포를 위한 release build를 돌릴 때에도 필요하답니다     🔑 APK 서명 키를 만들어보자 ! 우선 Build의 Generate Signed App Bundle/APK를 선택해줍니다    그리고 아래의 APK를 선택해줍니다    그럼 이렇게 Key Store Path를 입력하는 칸과 비밀번호를 입.. 더보기