본문 바로가기

프로그래밍245

[Kotlin] Sealed Class 상황: 쇼핑몰 앱에서 상품의 배송 상태를 나타내는 기능을 구현한다고 가정해 보겠습니다.sealed class 정의sealed class DeliveryStatus { object Preparing : DeliveryStatus() data class Shipped(val trackingNumber:String) : DeliveryStatus() object Delivered : DeliveryStatus() data class Failed(val reason: String) : DeliveryStatus()} DeliveryStatus sealed class는 상품의 배송 상태를 나타내는 네 가지 가능한 상태를 정의합니다.Preparing: 배송 준비 중Shipped: 배송 시작됨 .. 2024. 8. 20.
[Android] Context와 메모리 누수 Context의 정의Context란 어플리케이션 환경에 대한 인터페이스이다. 그래서... 그게 무슨 말인데..?" Context는 어플리케이션 환경에 대한 인터페이스이다 " 라는 말은, Context라는 클래스가 어플리케이션 리소스와 시스템 서비스등에 접근할 수 있는 메소드들을 갖고 있다는 것이다.또한, Activity, Service, Application 들은 Context라는 추상클래스를 상속받은 구현체들이다. 앱 내에는 여러개의 Activity가 존재할 수 있고, 따라서 Activity Context도 여러개 생길 수 있다. 하지만, 어플리케이션은 하나이므로 Activity Context와는 다르게 Application Context는 1개만 존재한다.[Context의 상속트리]Context가 사.. 2024. 8. 1.
[Java] extends, implements, abstract 차이점 상속(Inheritance)이란?상속에 대해서 다루기 전에 우선, OOP(Object-Oriented Programming, 객체지향프로그래밍)가 무엇인지에 대해 알고 있어야한다.OOP는 다음과 같은 특징을 가지고 있다.상속과 인터페이스 (계층성)다형성, 사용편의성 (모듈화)캡슐화, 정보은닉자료 추상화 (모델링)동적 바인딩아래 그림을 통해, 상속에 대해 이해해보자. 상자 하나하나는 모두 객체(Object)이고, 자바 용어로는 Class이다.이러한 계층을 표현하기 위해 만들어진 것이 바로 상속이다.상속 시, 하위 객체(자식)는 상위 객체(부모)의 특징(메소드, 변수 등)을 물려받게 된다.이 때, 상위 객체(부모)의 특징(메소드, 변수 등)을 '새롭게 구현'하는가, '그대로 사용'하는가에 따라서 상속의 형태.. 2024. 7. 29.
[Android] Retrofit에 Header 추가하기 안드로이드에서 API 요청을 보낼때는 주로 retrofit2 라이브러리를 사용합니다. 토큰과 같은 정보들은 Request의 헤더에 포함되어서 서버로 전달되어야 하므로 헤더를 추가하는 방법을 알아보겠습니다. 헤더를 추가하는 방법에는 두가지가 있는데, 하나는 API 인터페이스에 직접 @Header 어노테이션을 붙인 파라미터를 추가하는 방법이고 다른 하나는 Interceptor를 사용하는 방법입니다. @Header 어노테이션 활용 import retrofit2.Call import retrofit2.http.GET import retrofit2.http.Query interface ItemListAPI { @GET("/api/itemlist") fun getItemList( @Header("token") to.. 2024. 3. 21.