본문 바로가기

분류 전체보기96

[안드로이드] Activity와 Fragment Activity 개요 안드로이드 앱이 실행이 되면 화면이 등장하고 UI가 화면 위에 나타난다. 버튼을 터치하거나 스크롤 등 여러 가지 활동이 가능하다. 이러한 전반적인 활동을 담당하는 구성요소이다. 또한 안드로이드의 4대 구성요소 중 하나이기도 하다. main() 메서드를 사용하여 앱을 실행하는 일반적인 프로그래밍 패러다임과는 달리 수명 주기의 특정 단계에 해당하는 특정 콜백 메서드(ex : onCreate)를 호출하여 Activity의 인스턴스 코드를 시작한다. 개념 모바일 앱 환경은 사용자와 앱의 상호작용이 항상 동일한 위치에서 시작되는 것이아니다 (데스크톱 앱 환경과의 차이점). 사용자는 흔히 비결정론적으로 시작시킨다. 이게 무슨소리인지 모르겠다면, 인스타그램으로 예를 들어보자. 우리가 홈화면에서 .. 2022. 6. 7.
[안드로이드] 클린 아키텍처 정리 오늘 알아볼 것은 클린 아키텍처이다. 요즘 책을 읽으면서 공부 중인데 클린 아키텍처에 대한 이야기도 있어서 내가 정리할 겸 글도 쓴다. 아직까지 응용 부분은 힘든 점이 있어서 이번 글에 응용까지 담기는 어려울 것 같고 다음 글에 클린 아키텍처를 도입하여 다시 한번 설명해 주겠다. 클린 아키텍처 클린 아키텍처는 로버트 C. 마틴에 의해 만들어진 철학으로, 소프트웨어의 관심사를 계층별로 분리하는 소프트웨어 디자인 철학이다. 이 클린 아키텍처의 주요 원칙은 코드의 종속성이 외부로부터 내부로 의존한다는 것이다. 내부 계층의 코드는 외부 계층의 기능을 알 수 없다. 외부 계층에 존재하는 변수, 함수 및 클래스( 모든 엔티티 )는 안쪽 계층에서 다시 등장이 불가능하다. 데이터 형식도 계층 간에 별도로 유지하는 것이.. 2022. 5. 24.
소프트웨어 공학 - 애자일 프로세스 모델(scrum) 오늘은 애자일 프로세스 모델 (애자일 개발 방법론)에 대해 알아보겠다. 그중 scrum에 대해 자세히 알아볼 예정이다. 애자일 프로새스 모델 일단 애자일의 사전적 의미를 먼저 알아보도록 하자. 사전적 의미는 '날렵한', '민첩한'이란 뜻이다. 그렇다면 이 애자일 프로세스 모델은 무엇일까? 이 모델은 고객의 요구에 '민첩'하게 대응하고 그때그때 주어지는 문제를 풀어나가는 방법론을 말한다. 등장 배경 폭포수 모델처럼 계획을 기반으로 하는 프로세스 중심의 전통적인 모델은 산출물 위주의 거대하고 무거운 방법론에 해당한다. 이러한 방법론들은 요구 사항의 변화에 유연하게 대처하기 어렵다는 큰 문제점이 있다. 따라서 가볍고 비교적 변화를 수용하기 쉬운 방법론이 필요하게 됐는데, 이것이 익스트림 프로그래밍( XP : .. 2022. 5. 19.
2022-05-16 공부 방향 요즘 취업공고를 살펴보며 내가 진행할 공부의 갈피를 찾고 있는 중인데, 내가 부족한 것들이 무엇인지 잘 깨닫게 되는 것 같다. 먼저 내가 찾아본 사항 중 우대사항은 다음과 같다. 안드로이드의 UI/UX 가이드라인에 대한 이해도 RxJava, RxAndroid 개발 경험 네트워크/앱 보안에 대한 이해도 RESTful API 및 WebSocket에 대한 이해도 Reactive 프로그래밍에 대한 이해 MVP, MVVM, MVC 등의 디자인 패턴 적용에 대한 경험 클린 아키텍처에 대한 이해 및 프로젝트 적용 경험 앱 최적화 및 Localization 경험 등등... 이 있던데 일단 당연한지는 모르겠는데 쉬운 부분이 없다. 그나마 쉬운 부분은 Restful API랑 WebSocket에 대한 이해도 아닐까 싶다. .. 2022. 5. 16.
에러 java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). 해결 오늘 bottomsheet를 쓰다가 style을 바꿀 일이 생겨 바꾼 다음 실행을 했는데, 이러한 장문의 에러가 발생하였다. 처음 만나보는 에러였기에 혼자 해결하지는 못했고 여러 가지를 열심히 검색해봤다. 처음에는 위에 있는 causeby인 Binary XML file line #29에 대해 찾아봤지만 해답이 나오지 않았다. 그래서 맨 위에 있는 java.lang.RuntimeException: Unable to start activity ComponentInfo~ 이 친구 때문인가하며 열심히 검색해보며 고쳤지만, 더더욱 삽질만 해댔다. 그러다 아래로 내려보니 또 다른 에러가 있었다. 바로 제목이기도 한 java.lang.IllegalArgumentException: The style on this co.. 2022. 5. 13.