분류 전체보기260 [Android] MVVM 패턴 MVVM 패턴이 필요한 이유예를 들어 메모장 앱을 개발했고 동작에 필요한 모든 코드를 Activity에 때려박았다고 생각해보자. 이 때 사용자로부터 한가지 요청을 받는다.👩 : 민감한 메모에 비밀번호도 설정할 수 있게 해주세요요청을 받고 코드를 수정하다보면 이런 생각이 든다.아니... 이거 추가하다보니 이것도 고쳐야 되고... 이건 어떻게 수정해야 될지 모르겠고...위의 방식으로는 코드간의 결합도가 너무 높아져 유지보수가 어려워진다. 따라서 유지보수와 확장을 용이하게 하기 위해 관심사를 분리해 코드의 결합도를 낮춰야 한다.그러기 위해 채택한 디자인 패턴이 MVVM 패턴이다. MVVM 패턴MVVM 패턴은 Model + View + ViewModel 을 합친 용어이다.Model실제 데이터에 접근하는 데이터.. 2023. 9. 19. [Android] ViewModel 이란? 들어가기전에,,,ViewModel에는 MVVM 패턴 에서 언급되는 ViewModel과,테스트와 유지보수가 쉬운 앱을 만들 수 있도록 도와주는 AAC(Android Architecture Components) ViewModel, 두가지가 있다.MVVM 패턴의 ViewModelView와 Model 사이의 매개체 역할을 하고 View에 보여지게 되는 데이터를 가공하는 역할을 한다.AAC의 ViewModel앱의 Lifecycle을 고려하여 UI 관련 데이터를 저장하고 관리하는 역할을 한다.구글에서는 MVVM 패턴을 사용하여 앱을 만들 것을 권장하고 있고 MVVM의 ViewModel을 구현할 때 AAC ViewModel을 사용해서 구현하는 것이 좋다.이전 포스팅에서 언급한 LiveData와 함께 사용되는 View.. 2023. 9. 19. GitHub Actions이란 GitHub Actions 란? GitHub에서 제공하는 CI/CD 플랫폼이다.(CI/CD에 대한 개념이 궁금하다면 여기를 참고 하자.) Pull Request가 생성되면 해당 코드에 대한 테스트와 빌드를 자동으로 실행하거나, Merge된 PR에 대한 배포를 자동화할 수 있다. 이런 DevOps 작업을 넘어, 단순히 Issue가 생성되었을 때 적절한 label을 등록하는 등의 단순한 워크플로우도 작성해볼 수 있다. Jenkins, Travis CI, Circle CI 등 여러 CI/CD를 위한 제품이 많이 출시되어 있지만, GitHub Actions는 GitHub 자체에서 지원하므로 GitHub과 함께 사용할 때 그 사용성이 매우 매끄럽다. 또한, 물론 어느정도 제한이 있지만 컴퓨팅 리소스를 GitHub.. 2023. 9. 19. CI/CD란? - 지속적 통합(Continuous Integration) / 지속적 배포(Continuous Deployment) 매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요가 된다. 하지만 git에 코드를 올리는 것만으로도 누군가가 빌드와 테스트, 배포까지 해준다면, 쓸데없는 시간을 단축시키고 개발에 더 많은 시간을 투자할 수 있을 것이다. CI, CD의 개념에 대해 알아보자. CI란? CI는 간단히 요약하자면 빌드/테스트 자동화 과정 과정입니다. CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 .. 2023. 9. 19. [Android] Jetpack Compose란 Jetpack Compose는 구글에서 개발한 모던한 안드로이드 개발을 위한 선언형 UI Toolkit이다.2021년 8월에 1.0.0 스테이블 버전이 정식 출시되었으며, 공식적으로 프로덕션에 적용 가능하게 되었다.원래 안드로이드 개발에서는 앱의 레이아웃(UI)을 표현하기 위해 xml을 사용해왔다. xml로 레이아웃을 먼저 작성한 뒤, 자바/코틀린 코드에서 레이아웃의 구성 요소(View)들을 호출해서 소통하는 방식이다. 하지만 이러한 방식에는 몇몇 근본적인 문제점이 존재했다.Java/Kotlin 코드와 높은 의존성을 가짐이미 완성된 앱에서 버튼을 하나 빼고 싶다고 하자. 단순히 xml을 수정해서 버튼을 지우면 될 것 같지만, 해당 버튼과 연결된 Java/Kotlin 코드를 함께 삭제하지 않으면 오류가 발.. 2023. 9. 18. 명령형 프로그래밍 vs 선언형 프로그래밍 우선, 두 프로그래밍 패러다임의 차이점을 이해하기 전에 각각의 프로그래밍에 대한 개념을 이해하고자 한다. 명령형 프로그래밍 (Imparative Programming) 컴퓨터 과학에서 명령형 프로그래밍(命令型 프로그래밍, 영어: imperative programming)은 선언형 프로그래밍과 반대되는 개념으로, 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임의 일종이다. 자연 언어에서의 명령법이 어떤 동작을 할 것인지를 명령으로 표현하듯이, 명령형 프로그램은 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것이다. 글들을 읽다보면, 이해가 갈법하면서도, 잘가지 않는다. 가장 이해하기 쉽게 생각하면, 명령형 프로그래밍은 "HOW"를 제시한다. 우선 예시 코드를 보자. /.. 2023. 9. 18. 이전 1 ··· 21 22 23 24 25 26 27 ··· 44 다음