[Android] AlertDialog, DialogInterface 분석
·
Android
android.app.AlertDialog AlertDialog 클래스로 알림 창을 디스플레이할 수 있다. AlertDialog 클래스는 생성자가 protected 접근자라 직접 생성자를 호출해서 객체를 생성할 수 없습니다. 그 대신 AlertDialog.Builder 빌더를 이용해 알림 창을 만듭니다. public Builder(Context context) { this(context, resolveDialogTheme(context, Resources.ID_NULL));} AlertDialog.Builder(context: Context!) 인수로는 Context를 넣어줘야 합니다. 매개변수 보면 Context!라는 점을 알 수 있습니다. 따라서 Kotlin은 null인지 아닌지 확신을 못합..
[Kotlin] Data class에 대해
·
카테고리 없음
Data class란? 데이터를 보관하는 목적을 가진 클래스입니다. 자바에서 DTO와 매우 유사합니다. 코틀린의 Data 클래스는 자동으로 많은 기능들을 생성해 줍니다. data class User(val name: String, val age: Int) 자동으로 생성되는 함수들 data class는 컴파일러가 자동으로 다음 함수들을 생성합니다. ✅ equals() / hasCode()일반 Class에서는 프로퍼티 값이 같다고 동등한 인스턴스라고 나오지 않습니다.data class Person(val name: String, val age: Int)val person1 = Person("철수",25)val person2 = Person("영희", 20)val person3 = Person("영희"..
[디자인패턴] 옵저버 패턴
·
카테고리 없음
옵저버 패턴 옵저버 패턴은 특정 객체를 계속 감시하다가 변화가 일어나면 그 변화에 맞게 행동을 하는 패턴입니다. 간단한 예로 유튜브에 내가 구독한 채널에서 새로운 영상이 업로드되면 각 구독자들에게 새 영상이 올라왔다고 알람이 갑니다. 옵저버 패턴에서는 상속 관계의 단어들로 표현하지 않습니다.예를 들어 부모 상태가 바뀌면 자식이 바뀐다라는 말도 가능하지만 해당 단어들은 상속관계에 의미하기 때문에옵저버 패턴에서는 '방송국/구독자' 또는'주체/관찰자'라고 표현합니다. 옵저버 패턴의 2가지 방식 : Push VS Pull 1. Push 방식 (데이터 밀어 넣기) 주체가 알람을 보낼 때 데이터를 함께 넘겨주는 방식입니다. 2. Pull 방식 (데이터 당겨오기) 주체는 특정 변화가 일어났다고..
[Android] View Class
·
Android
뷰 클래스의 기본 구조 안드로이드에서 화면을 만들어 표시하는 컴포넌트는 액티비티이며 액티비티가 실행되면서 뷰 클래스를 이용해 화면을 구성합니다. 뷰 객체의 계층 구조 액티비티 화면을 구성할 때 사용하는 클래스는 모두 View의 하위 클래스입니다.그래서 화면을 구성과 관련한 클래스를 통칭하여 View Class라고 합니다. View 객체는 흔히 위젯이라고 합니다. Button, TextView 등 여러 하위 클래스들이 존재합니다.ViewGroup 객체는 레이아웃이라고 합니다. View 객체의 하위 클래스이고, 사용 목적은 컨테이너 기능을 담당합니다. 화면에 출력해도 아무것도 안 나오고 HTML에서 div 태그 같은 역할입니다. 즉, 다른 View 객체 여러 개를 담아서 한꺼번에 제어할 목적으로 ..
[Spring] @ComponentScan, @Configuration
·
Spring,SpringBoot
@ComponentScan 어노테이션은 Spring Framework 3.1 버전에서 도입된 어노테이션입니다. 해당 어노테이션의 역할은 다음과 같습니다. 역할: 지정된 패키지 및 그 하위 패키지에서 @Component 및 파생 어노테이션(@Service, @Repository 등)이 붙은 클래스를 찾아 Spring Bean으로 등록해 준다. 1. 컴포넌트 스캔이란? 컨포넌트 스캔은 자동적으로 특정 패키지를 훑어서(Scan) @Component 어노테이션이 사용된 클래스들을 찾아 스프링 컨테이너에 등록해 준다. 스캔 대상이 되는 주요 어노테이션@Component : 기본 스캔 대상.@Controller / @RestController : 스프링 MVC 컨트롤러로 인식.@Service : 특별한 비즈..
[SpringBoot] @Component
·
Spring,SpringBoot
@Component는 클래스 레벨에 붙이는 어노테이션입니다. 스프링이 애플리케이션을 실행할 때 "컴포넌트 스캔"을 통해 @Component 어노테이션이 붙은 클래스를 찾아 자동으로 인스턴스를 생성하고 컨테이너에서 lifecycle을 관리해 줍니다. 컴포넌트 메타 어노테이션들@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Indexedpublic @interface Component { /** * The value may indicate a suggestion for a logical component name, * to be turned into a Spring bean name in case of an autodete..
[SpringBoot] 스프링부트 제어 역전(IoC), 의존성 주입(DI)
·
Spring,SpringBoot
스프링 프레임워크 핵심 가치는 아래와 같다.애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있도록 한다. 스프링 프레임워크는 개발자가 비즈니스 로직 개발에만 집중할 수 있게 한다. IoC, DI, AOP 3대 기술들을 이용해 스프링 프레임워크의 철학과 목적을 구현하고 제공하고 있다. IoC(Inversion of Control): 제어의 역전IoC는 사용할 객체를 직접 생성하지 않고, 객체 생명주기를 외부(스프링 컨테이너)에 위임하는 것이다. 아래 코드처럼 일반적인 자바 프로그램에서는 객체의 생성과 관리의 주도권은 개발자에게 있다.public class IoCTest1 { MyServiceImpl myService = new MyServiceImpl(); ..
[디자인패턴] GoF 생성 패턴 5가지
·
카테고리 없음
Gang of Four(GoF) 패턴 중 생성 패턴(Creational Patterns)을 정리해 보겠다. 생성 패턴 1. 생성 패턴의 개념객체를 생성하는 것과 관련된 패턴이다.객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하도록 만들어주어 유연성을 높일 수 있고 코드를 유지하기 쉬워진다.객체의 생성과 참조 과정을 추상화함으로써 시스템 개발할 때 부담을 덜어준다. 2. GoF 생성 패턴 5가지 1. Singleton Pattern하나의 객체만 만들고 계속 돌려쓰는 패턴 ❓ 언제 사용?매번 객체를 만들 필요 없을 때설정값, 캐시, 공용 서비스 등에 활용 ✅SpringBoot에서의 활용Spring의 대부분 Bean(@Service, @Repositroy, @Component 등)은 기본적으로..