본문 바로가기

프로그래밍/Clean Architecture8

네이티브 vs 크로스 플랫폼: 앱 개발의 선택 많은 기업들이 iOS 및 Android 앱을 개발하기 위해 각각의 전용 개발팀을 운영하고 있습니다. 하지만 흥미로운 점은 두 팀이 같은 앱을 개발한다 해도, 두 앱은 내부적으로는 완전히 다른 프로젝트로 간주된다는 것입니다. 두 앱의 화면이나 기능이 비슷하더라도, 내부 소스 코드는 완전히 다르기 때문입니다. 그렇기 때문에 각 앱의 품질과 발생하는 이슈나 유지 보수 비용, 그리고 기능 확장의 용이성이 다릅니다. 이는 일반적으로 개발 및 품질 보증(QA) 비용이 두 배 이상 필요할 수 있음을 의미합니다. 이러한 어려움을 극복하기 위해 많은 기업들이 '크로스 플랫폼 개발 프레임워크'인 플러터나 리액트 네이티브를 채택하고 있습니다. 비록 이러한 프레임워크를 사용하는 것이 라이브러리나 UI 컴포넌트의 부족으로 인한.. 2024. 3. 29.
Clean Architecture의 힘 현재 다니고 있는 회사의 자금사정이 급격히 악화되어 구조조정이 6개월 간격으로 두 번 진행되었고, 100명 이상이던 직원은 20명으로 줄어 들었다. 회사는 추가 투자가 절실한 상태였는데, 다행히 MWC라는 전시회에 회사를 소개할 수 있는 소중한 기회를 얻었다. 그 결과 다음과 같은 신규 프로젝트가 생성되었다. 프로젝트 개요 개발 기간 : 2개월 iOS, Android 앱을 App Store 및 Google Play에 출시 기획자 없음 PM 없음 디자이너 없음 앱 개발자 1명 : 기획, PM, 1차 디자인, 앱 개발을 모두 담당해야 함 백 엔드 서버 개발자 1명 개발 항목 사용자가 개인 영상을 업로드하고 영상을 공개할 수 있는 서비스 서버에 존재하는 영상의 재생 및 화면 확대&축소&이동 기능 세 개의 영상.. 2024. 3. 14.
Android에 Clean Architecture 도입하기 [도입 순서] 패지지 정리 프로젝트의 소스가 패키지별로 잘 정리되어 있지 않다면 가장 먼저 기능별로 패키지로 모으는 패키지 정리작업을 가장 먼저해야 합니다. 패키지는 일반적으로 MVVM 패턴에 따라 정리하면 됩니다. Clean Arcitecture에서 강조하는 Domain 계층은 처음에는 필요하지 않습니다. UI(View, ViewModel), Data(Repository, DataSource) 계층으로만 나누어도 충분합니다. 그 이후에 Domain 계층을 추가한 다음 Usecase를 도출하면 됩니다. 패키지를 모듈로 전환 패키지 정리가 완료 되었으면, 그 패키지들을 각각의 모듈로 하나씩 전환합니다. 모듈로 전환할 때 Util 패키지와 같이 모든 패키지들이 참조하는 패키지부터 모듈로 분리하는 것이 좋습니.. 2023. 8. 29.
Clean Architecture에 대한 개인적인 생각 클린아키텍처를 도입 하면서 든 생각들을 아래와 같이 정리해 보았습니다. 저의 경우에는 클린아키텍처라는 개념을 동료에게 처음 들었고, 구글링으로 그 개념을 익혔습니다. 그 이후 로버트 C. 마틴의 책 “클린 아키텍처”를 읽었으며, 그 때에야 비로서 클린아키텍처를 왜 도입해야 하는지 이해할 수 있었습니다. 우리가 회사에서 개발하는 대부분의 앱들은 개발 범위와 복잡성이 일반적으로 크다고 할 수 있습니다. 그래서 우리는 항상 앱의 품질, 유지보수성, 확장 가능성등에 대해 고려하면서 개발하고 있습니다. 그런데 이런 부분들을 모두 고려 하기란 결코 쉽지 않죠. 클린아키텍처는 이런 고민들을 해결하는 방법에 대한 얘기들 이라고 생각됩니다. 그 방법에 대한 내용은 이전의 “Clean Architecture의 정의(htt.. 2023. 8. 29.