분류 전체보기

    Kotlin 코틀린의 싱글톤(Singleton)

    Kotlin 코틀린의 싱글톤(Singleton)

    싱글톤 1. 싱글톤 정리 싱글톤이란 어떤 클래스가 최초 한번만 메모리를 할당하고 그 메모리에 객체를 만들어 사용하는 디자인 패턴을 말한다. 즉 생성자의 호출이 반복적으로 이루어 지더라도 실제로 생성되는 객체는 최초에 생성된 객체를 반환해 주는 것이다. 객체를 생성할 때 생성자가 호출되고 메모리에 올라가는 등 비용이 발생하게 된다. 만약 객체를 생성하는 비용이 크다고 한다면, 객체를 자주 생성하는 일은 시스템에 큰 부담을 가져올 수 있다. 싱글톤 패턴은 객체를 한번만 생성하고 생성된 객체를 재사용 하면서 객체의 재생성 비용을 줄이는 패턴이다. 하지만 여기서 고려해야될 점이 있다. 1. 인스턴스화 하는 비용을 줄일 수 있다는 장점을 가지고 있지만, 한번 생성한 인스턴스를 반납하지 않기 때문에 무분별한 싱글톤..

    Kotlin 코틀린의 object와 class 키워드

    Kotlin 코틀린의 object와 class 키워드

    object와 class 코틀린에서 클래스를 정의하는 키워드는 class 이다. 하지만 간혹 object 키워드를 이용하여 클래스를 정의하는것을 종종 볼 수 있다. object 키워드를 이용하여 클래스를 정의하면, 싱글턴 패턴이 적용되어 객체가 한번만 생성되도록 한다. object키워드는 이러한 싱글톤을 사용하는 방법 이외에도 익명객체를 생성할 때도 사용된다. 위 내용을 정리하면 object 키워드는 다음과 같은 두가지 용도로 사용된다. 1. 싱글턴 클래스를 만들때 2. 익명 클래스 객체를 생성할 때 1. object키워드를 이용하여 싱클턴 클래스 만들기 object로 싱클턴 클래스를 정의할 수 있다. 아래 코드처럼 CarFactory 클래스를 만들때 class 키워드 대신 object 키워드를 사용하면..

    Java 자바의 Static

    Java 자바의 Static

    Static 1. Static 정리 Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미한다. 이를 정확하게 이해하기 위해서는 메모리 영역에 대한 이해가 필요하다. 일반적으로 우리가 만든 Class는 Static 영역에 생성이 된다. 그리고 new 연산자를 통해 생성한 객체는 Heap 영역에 생성이 된다. 객체의 생성시에 할당이된 Heap 영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받는다. 하지만 Static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점이 있지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 메..

    Kotlin 코틀린의 Retrofit

    Kotlin 코틀린의 Retrofit

    더보기 본 포스팅은 FastCampus - 30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 를 바탕으로 학습된 내용을 요약 및 정리한 글입니다. Retrofit 1. Retrofit 이란? Retrofit 이란 간단하게 말하면 서버와 클라이언트 간 HTTP 통신을 할 수 있도록 도와주는 녀석이다. 우리들이 흔히 어플을 만들때 오픈API을 이용하여 데이터 정보를 가져오게 되는데 그때 Retrofit을 이용하면 편하게 코드를 작성할 수 있다. 물론 Retrofit을 사용하지 않더라도 HttpClient, Volley, OKhttp 등 통신을 편하게 할 수 있도록 도와주는 라이브러리 들이 존재 했었지만 요즘은 전부 Retrofit을 이용하는 추세이므로, HTTP 통신을 할때..

    Kotlin 코틀린의 RecyclerView

    Kotlin 코틀린의 RecyclerView

    더보기 이글은 냉동코더님의 유투브 내용을 보며 혼자 학습한 내용을 포스터 한것입니다. RecyclerView 1. 정의 및 특징 RecyclerView는 이미지나 텍스트를 리스트화해서 볼 수 있게 해주는 컨테이너로써 ListView의 확장판 개념이다. 기존 ListView보다 향상된 성능을 제공하는데 어떤식으로 성능이 향상된것인지 알아보자. 오른쪽에 보여지는 이미지가 RecyclerView의 모습인데 리스트뷰는 전체 데이터의 수 만큼 ViewHolder를 만들어야하지만 recyclerView는 이전에 사용했던 ViewHolder를 재사용함으로써 전체 데이터의 수 만큼 ViewHolder를 만들필요 없기 때문에 자원을 세이브할 수 있다는 점에서 기존 ListView보다 향상된 성능을 발휘한다. Recycl..

    성적 정렬하기 (내림차순)

    성적 정렬하기 (내림차순)

    문제 입출력 문제풀이 이 문제는 지난번에 만들었던 성적 정렬하기(오름차순)에서 내림차순으로 바꾸는 문제이다. 문제에서 내림차순으로 바꿀때 사용하는 방법은 Collections.reverseOrder() 함수를 사용하면 된다. 하지만 이때 주의 할점은 Collections.reverOrder() 함수는 Collection의 도움을 받아야 하기 때문에 기본형에는 사용할수 없고 Wrapper 클래스로 선언해야 한다. 따라서 int가 아닌 Integer로 선언해야한다. import java.util.Arrays; import java.util.Collections; class Main { public static void main(String[] args) { Integer array[] = {88, 50, 3..

    Kotlin 코틀린의 SharedPreferences

    Kotlin 코틀린의 SharedPreferences

    SharedPreferences 정의 간단한 데이터를 저장하고 불러올 수 있다. 어플을 꺼도 데이터가 유지된다는 점에서 간편한 데이터베이스 역할을 할 수 있다. ShardPreferences는 어플리케이션에서 파일 형태로 데이터를 저장한다. 데이터는 (key, value) 형태로 shared_prefs 폴더 안에 xml 파일로 저장된다. 해당 파일은 어플리케이션이 삭제되기 전까지 보존된다. SharedPreferences 사용방법 SharedPreferences는 app에서 전역적으로 사용한다. 따라서 싱글톤 패턴을 사용하여 앱 어디든 접근이 가능하게 만드는 것이 좋다. SharedPreferences 클래스는 앱에 있는 다른 액티비티보다 먼저 생성되어야 다른 곳에 데이터를 넘겨줄 수 있다. 따라서 Ap..

    Kotlin 코틀린의 Context

    Kotlin 코틀린의 Context

    Context 우선 공식문서에 따른 Context의 정의는 이렇게 정의되어있다. 영어로 정의되어있는 내용을 한국어로 해석하여 이해할때 여러 어려움이 존재한다. 그에 따라 지금부터 Context의 대한 내용을 조금더 찾아보며 정리하겠다. Context 란? Context 는 뜻 그대로 해석한다면 애플리케이션 현재 상태의 맥락(Context)를 뜻한다. 새롭게 생성된 객체가 지금 무슨일이 일어나고 잇는지를 알 수 있도록 한다. 그에 따라 애플리케이션과 액티비티에 대한 정보를 얻기 위해서는 Context를 사용하면 된다. Context는 크게 두가지의 역할을 하고 있는 추상 클래이이다. 앱에 관하여 시스템이 관리하고 있는 정보에 접근한다. (resource , class , 애플리케이션 환경 정보) 안드로이드..