본문 바로가기

분류 전체보기

(6)
패스트 캠퍼스 안드로이드 안드로이드의 이론을 ai에게 검색해보면서 공부 1. constraintlayout ConstraintLayout은 Android에서 강력하고 유연한 레이아웃 시스템을 제공하는 레이아웃 컨테이너입니다. ConstraintLayout을 사용하면 복잡한 레이아웃을 더 쉽고 효율적으로 구성할 수 있으며, 다양한 화면 크기와 밀도를 가진 장치에서 일관된 UI를 제공할 수 있습니다. 주요 특징 유연성과 표현력: ConstraintLayout은 다른 뷰에 대한 상대적인 위치 지정, 비율 기반 크기 조정, 체인(chain)을 사용한 뷰 그룹핑 등 다양한 레이아웃 기능을 제공합니다. 이를 통해 복잡한 레이아웃도 손쉽게 구성할 수 있습니다. 플랫 레이아웃 구조: 전통적으로 복잡한 레이아웃을 구성하기 위해서는 여러 겹의 레..
싱글톤이란? 모든 곳에서 접근 가능한 하나의 객체를 의미한다. 비슷한 예로는 전역 변수가 있다. 거의 전역변수랑 비슷하다고 생가하면 될 것 같다. 외부에서 생성 및 소멸할 수 없으며, 객체를 얻는 방법은 오직 getInstance() 뿐이다. 싱글톤 패턴이 필요한 상황 1. 전역적으로 접근 가능한 객체가 단 하나만 필요할 때 2. 전역 변수보다는 엄격한 객체가 필요할 때(외부에서의 생성과 소멸이 막힌다는 과정) 장점 - 어디에서나 가능 - 매니저급 객체를 쉽게 파악할 수 있음 - 다른 패턴과 혼합하기 쉬움 - 지연 초기화를 사용하므로 필요할 때 딱 한번만 초기화 됨 단점 - SRP를 어김, 코드가 지전분해지고 구조 분석이 어려워짐, 이로 인해 리팩토링을 어렵게 만들 수 있음 - Thread-Safe하게 하려면 쉽지 않음
AI로 정리해 본 안드로이드 개발 요즘은 ai를 사용하여 공부가 가능하다고 하여 ai에게 물어본 다음에 글로 정리할려고 한다. LinearLayout이란? Android에서 LinearLayout은 자식 뷰를 선형 방향(수직 또는 수평)으로 배열하는 레이아웃입니다. LinearLayout의 특징: 방향성: LinearLayout은 android:orientation 속성을 통해 자식 뷰를 수평(horizontal) 또는 수직(vertical)으로 배열할 수 있습니다. 가중치: android:layout_weight 속성을 사용하여 자식 뷰에 가중치를 부여할 수 있습니다. 이를 통해 남은 공간을 특정 비율로 분배하여 자식 뷰들 사이의 공간 배분을 조정할 수 있습니다. 중복: 여러 LinearLayout을 중첩하여 사용할 수 있지만, 성능에..
패스트 캠퍼스 안드로이드 공부 뭔가 알고리즘을 공부해도 너무 실력이 늘지 않는 것 같다. 그래서 클론 코딩을 하면서 모르는 용어를 공부하고 흐름을 파악하는 방법으로 공부를 해야 될 것 같다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContentView(R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(Win..
싱글톤 패턴 singleton : 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만 그렇게 하지 않고 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰이면 보통 데이터베이스 연결모듈에 많이 사용된다. 장점 : 하나의 인스턴스를 기반으로 해당 인스턴스를 다른 모듈들이 공유하여 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어든다. 그렇기 때문에 인스턴스생성에 많은 비용이 드는 I/O 바운드 작업에 많이 상용된다. - I/O 바운드 : 디스크 연결, 네트워크 연결, 데이터베이스 연결 단점 : 의존성이 높아지며 TDD를 할 떄 걸림돌이 된다. TDD를 할 떄 단위 테스트를 주로 하는데, 단위 테스트는 ..
스코프 함수와 확장 함수 원래는 문서를 보고 정리를 해보려고 했으나 영문 문서와 한글 번역 문서를 번갈아 보면서 읽고 이해하는 것이 생각보다 어렵다고 느껴 일단은 유튜브 영상과 google에서 긁어와 만들어 보기로 했다 람다함수의 특별한 케이스 1. 람다함수도 여러 구문의 사용이 가능 val c: (String) -> Unit = {str -> println("$str람다함수") println("여러구문을") println("사용가능합니다") } 마지막 구문이 반환값이다 2. 람다함수에 패러미터가 없다면 실행할 구문들만 나열하면 된다 val a: () -> Unit = {println("패러미터가 없다")} 3. 패러미터가 하나뿐이라면 it 사용 val c: (String) -> Unit = {println("$it 람다함수")..