안드로이드 앱 개발을 공부하면서 디자인 패턴, 아키텍처 패턴이라는 단어를 많이 들어봤을 것이다. 대체 디자인 패턴, 아키텍처 패턴이란 게 무엇이고 이들을 알아야 하는 이유는 무엇인지 알아보자. 1. 디자인 패턴과 아키텍처 패턴의 개념 MVC, MVVM 패턴 등에 대한 검색을 했을 때 디자인 패턴이라고 하는 경우도 있고 아키텍처 패턴이라고 하는 경우도 있어서 둘의 차이가 무엇인지 궁금해서 알아보았다. 디자인 패턴: 소프트웨어 디자인에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책을 말한다. 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 템플릿을 의미한다. 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 패턴이다. 아키텍처 패턴:..
1. DI의 개념 DI란 Dependency Injection의 약자로 의존성 주입을 의미한다. 의존성 주입은 하나의 객체가 다른 객체의 의존성을 제공하는 기술이다. 비유하자면 '의존성'은 서비스로 사용할 수 있는 객체이고 '주입'은 의존성(서비스)을 사용하려는 객체로 전달하는 것을 의미한다. DI는 프로그래밍에 널리 사용되는 기법으로, DI의 원칙을 따르면 훌륭한 앱 아키텍처를 위한 토대를 마련할 수 있다. DI를 클래스들로 예를 들어 설명하자면, Car 클래스와 Engine 클래스가 있는 경우 Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 한다. 이러한 필요한 클래스(Engine)를 종속 항목(=의존성)이라고 한다. 클래스들은 흔히 다른 클래스 객체가 필요하다(의존적이다)...
깃허브에서 프로젝트를 클론해받아온 후 앱이 실행되지 못하고 다음과 같은 오류가 발생했다. java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'ja..
안드로이드 앱을 개발할 때 뷰의 크기나 거리에는 dp를 사용하고 텍스트 크기(TextView의 textSize)에는 sp를 사용한다. 여기에서 dp와 sp가 무엇을 의미하는지, 왜 뷰와 텍스트에 다른 단위를 사용하는지에 대해 알아보자. 0. px의 의미 본론에 들어가기에 앞서, 더 쉬운 설명을 위해 또 다른 크기 단위인 px에 대해 먼저 이야기하겠다. px이란 화면의 픽셀 수를 의미한다. 뷰의 크기를 픽셀 값(px)으로 지정하면 해상도에 따라 실제 크기가 다르게 보일 수 있기 때문에 뷰의 크기는 일반적으로 match_parent와 wrap_content로 지정하거나 dp와 같은 단위를 사용해 해상도가 다른 단말에서도 크기를 비슷해 보이도록 만든다. 1. dp와 sp의 의미 1) dp: 밀도 독립형 픽셀 ..
파일들이 멀쩡히 존재하는데 갑자기 not found 오류가 발생했다. * What went wrong: Execution failed for task ':app:processDebugResources'. > Android resource linking failed AAPT: error: resource drawable not found. Android resource linking failed error: resource drawable not found. 알고보니 xml 파일에서 을 두 번 써서 생기는 문제였다. 문제가 있는 파일이 아닌 다른 파일들만 linking failed 오류가 떠서 문제점을 발견하는게 오래걸렸다.
git에서 clone으로 받은 프로젝트를 실행했는데 다음과 같은 오류가 발생하였다. Error:Cause: org/jetbrains/plugins/gradle/tooling/ModelBuilderService Caused by: java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier; 검색해보니 .gradle 폴더를 삭제하면 된다고 해서(https://stackoverflow.com/questions/46791306/syncfailed-errorcause-org-j..
- Total
- Today
- Yesterday
- 변수
- java
- 아키텍처 패턴
- Algorithm
- 뷰모델
- 우선순위큐
- error
- 코틀린
- 라이브 데이터
- gradle
- 자바
- Android
- Naver AI Burning Day
- SCPC2021
- architectural pattern
- 백준
- 알고리즘
- MutableLiveData
- 안드로이드
- 후기
- 프로그래머스
- Kotlin
- heap
- livedata
- androidx.core
- 힙
- hilt
- viewmodel
- programmers
- BAEKJOON ONLINE JUDGE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |