4. 안드로이드의 특징 일반적인 애플리케이션 하나의 진입점을 가지고, 하나의 프로세스에서 실행 안드로이드 애플리케이션 액티비티, 서비스, 브로드케스트 리시버, 콘텐츠 프로바이더를 대표적인 컴포넌트로 구성 여러 프로세스로 실행가능 진입점 또한 다양 짧은 시간에 여러 어플과 상호 작용 인스타로 사진찍고 카카오톡으로 공유하는 도중에 전화가 걸려오면? 또는 메모리 부족으로 강제 종료되면? 그래도 사용자는 복귀후 작업을 재개하고 싶을 것이다. (이러한 처리를 잘 해주어야함) 컴포넌트의 생명 주기는 안드로이드 시스템이 제어권을 가지기 때문에 데이터 등을 컴포넌트에 저장하는 것은 치명적일 수 있다. 5. 안드로이드 애플리케이션 설계 원칙 액티비티와 프래그먼트의 클래스 의존성을 최소화하는 것이 좋다. 그 반대의 경우 ..
3. 클린 아키텍처 소프트웨어의 관심사를 계층별로 분리하는 소프트웨어 디자인 철학 주요 원칙 : 코드 종속성이 외부로부터 내부로 의존 내부 계층 코드는 외부 계층의 기능을 알 수 없음 외부 계층에 존재하는 변수, 함수, 클래스 등 모든 엔티티는 안쪽 계층에서 다시 등장 불가 데이터 형식도 계층 간에 별도로 유지하는 것이 좋아 가장 추상 적인 영역은 가장 가운데 있는 녀석 비즈니스 로직을 포함. 플랫폼, 프레임워크에 의존하면 안됨 외부 원은 네트워크, 데이터베이스 접근 등 플랫폼에 특정한 구체적 구현 세부사항이 포함됨. 내부로 갈 수록 추상화 캡슐화 수준이 높아짐 장점 : 계층을 분리. 계층 간의 의존성을 단방향으로 유지. 코드의 재사용성 용이 및 유닛 테스트가 쉬워짐 Entities 전사적 비즈니스 규칙..
1. 애플리케이션 설계란? 구성 요소간 유기적 관계를 표현 요구사항 해결을 위한 계획 및 과정 텍스트, 그림, 다이어그램 등으로 표현 애플리케이션은 일단 구현되고 나면 변경하는데 큰 비용이 듦 잘 설계된 어플리케이션은 유지 보수비를 줄여줌. 성능, 보안, 안정성 등 측면에서 많은 이점이 있음 앱의 경우 미래에 나오는 플랫폼 호환성, 정책 등으로 끊임없는 변화에 대한 대응이 필요함 2. 애플리케이션의 설계 원칙 로버트 C. 마틴의 객체지향 프로그래밍 및 설계에 대한 SOLID 원칙 1. 단일 책임 원칙(Single Responsibility Principle) 모든 클래스는 하나의 책임만 가져야하며, 클래스는 그 책임을 완전히 캡슐화해야 함. 어떤 클래스나 모듈 또는 매서드가 단 하나의 기능만을 가져야 한..
1. 안드로이드 4대 요소 Activity, Service, Broadcast Receiver, Content Provider 정리 안드로이드 앱을 만들고 프로그래밍 하기위해 기본이 되는 개념인 안드로이드 4대 요소인 엑티비티, 서비스, 방송 수신자, 컨텐츠 제공자에 대해서 정리하려고합니다. 🤓 안드로이드의 4대 요소 Activity Service Broadcast Receiver Content Provider 그외 알아두면 좋은 것 Intent View Fragment 아래는 이를 표현한 그림인데 발로그려서 그림 상태가 좋지 않아도 양해바랍니다. 그럼 하나씩 까보도록 하죠. 2. 엑티비티(Activity) 엑티비티는 사용자가 보게되는 인터페이스 화면을 가지고 있는 요소로 UI 화면을 구성하게 되며 ac..
1. 코틀린 버전 1.4 에서 1.5 대로 업데이트 후 코드 작동 안함 얼마전 배포된 코틀린 버전 15.2 을 받고 나서 원래는 1.4.30 버전에서 잘 동작하던 코드가 동작하지 않는 현상을 발견했다. 처음에는 intelij프로젝트 설정을 잘 못한건가 해서 계속 다시만들고 source root directory 도 바꿔가면서 몇 시간동안 삽질을 하였다. 해당 코드는 코테를 보면서 알고리즘 문제를 풀며 작성한 코드로 해당 테스트에서 사용한 코틀린 컴파일러 버전대는 1.3.x 이었던 걸로 기억한다. 불과 1~2주 정도 전이라 나의 ide도 코틀린 1.4 버전대를 사용하고 있어서 문제가 되지 않았다. 문제의 코드 class Solution { fun solution(bricks: IntArray, n: Int..