728x90

전체 글 163

[Java] Garbage Collector

이번 포스팅에서는 Garbage Collector에 대해 알아보자. Garbage Collector 직역하면 ' 쓰레기 수집가 ' Java의 메모리 관리 기법 중 하나이다. 프로그램이 할당했던 메모리 중에서 더 이상 사용되지 않는 메모리를 해제하는 기능이다. 더이상 사용되지 않는 메모리를 해제해주지 않으면 메모리가 계속 쌓이기만 하는 메모리 누수가 발생한다. C언어의 경우, 더 이상 사용되지 않는 메모리는 직접 해제해준다. 하지만 Java의 경우 개발자가 메모리를 직접 해제해주는 일이 없다. 그 이유가 바로 Garbage Collector의 존재 덕분이다. Heap 영역 / Minor GC · Major GC ✅ Garbage Collector는 JVM의 Heap 영역에서 동작한다. Heap 영역이 뭐에..

Java (자바) 2024.03.06

[Java] JVM 메모리 할당 방식 - Stack · Heap Memory

지난 포스팅에서 JDK · JRE · JVM에 대해 간단히 알아보았다. [Java] JDK · JRE · JVM JDK · JRE · JVM에 대해 알아보자. JDK Java Development Kit Java로 프로그램을 개발하는데 필요한 툴을 모아놓은 소프트웨어 패키지다. JDK는 JRE, JVM을 포함하고 있다. 그렇기에 JDK를 설치하면 JRE · JVM이 oscarstory.tistory.com 이번 포스팅에서는 JVM을 조금만 더 공부해보려 하는데, 그 중에서 JVM의 메모리 할당 방식에 대해 알아보겠다. JVM은 Stack Memory · Heap Memory라는 2가지 공간을 사용하여 메모리를 할당한다. ✅ Stack Memory 지난 포스팅을 보고 왔다면 알겠지만, 우리가 작성한 코드를..

Java (자바) 2024.03.05

[Java] JDK · JRE · JVM

JDK · JRE · JVM에 대해 알아보자. JDK Java Development Kit Java로 프로그램을 개발하는데 필요한 툴을 모아놓은 소프트웨어 패키지다. JDK는 JRE, JVM을 포함하고 있다. 그렇기에 JDK를 설치하면 JRE · JVM이 함께 설치된다고 볼 수 있다. 이외에도 다음과 같은 요소를 포함한다. - java : 자바 인터프리터 - javac : 자바 컴파일러 - jdb : 자바 디버거 - jar : 자바 클래스 압축 파일을 관리하는 프로그램 - javap : 컴파일된 클래스 파일을 원래의 소스 코드로 변환해주는 프로그램 등 ✅ JDK 버전 흔히 말하는 Java의 버전은 곧 JDK의 버전이다. JDK 버전 히스토리는 다음과 같다. Version Release Date JDK 1..

Java (자바) 2024.03.04

[Android] PaintFlag / SpannableString / 텍스트에 줄 긋기 / 밑줄 · 취소선 긋기 / 일부분만 적용

이번 포스팅에서는 텍스트에 줄 긋는 방법을 알아보겠다. ex)밑줄취소선    2가지 방법을 소개한다. ● View에 PaintFlag를 세팅하고 Paint 클래스 활용 ● SpannableString 클래스 활용    PaintFlag  기본 문법은 다음과 같다.TextView textView = findViewById(R.id.textView);...textView.setPaintFlags(Paint 클래스 내 속성 값);  Paint 클래스 내 속성 값은 해당 클래스를 들어가보면 확인할 수 있다.    ✅ 밑줄 TextView textView = findViewById(R.id.textView);...textView.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);   결과)..

[Android] Hilt / 힐트 / 예제 / 의존성 주입 라이브러리

지난 2편의 의존성 주입 포스팅에 이어 이번 포스팅에서는 Hilt 라이브러리에 대해 알아보자. Hilt 의존성 주입 목적 JetPack의 권장 라이브러리이며 Dagger를 기반으로 빌드되었다. Dagger와 마찬가지로 Annotation Processing을 사용한다. ✅ Dagger의 단점 부각 Dagger는 초기 DI 환경을 구축하는 비용이 비효율적이라는 의견이 많았다. Hilt를 사용하면 Dagger 관련 인프라를 간소화할 수 있다. 이는 기본적으로 Component를 제공해주기 때문이라고 볼 수 있다. Hilt의 내장 Component 관련해서는 예제를 따라가며 알아보자. 지난 Dagger 포스팅에서도 언급했지만, 공식 문서에서조차 Dagger가 아닌 Hilt 사용을 권장하고 있다. 사용해보자 ✅..

[Android] Dagger / 대거 / 예제 / 의존성 주입 라이브러리

지난 포스팅에서 의존성 주입에 대해 알아보았다. 이번에는 의존성 주입을 도와주는 라이브러리 중 하나인 Dagger에 대해 알아보자. Dagger 란? Google에서 유지 · 관리하는 의존성 주입 라이브러리다. Annotation Processing을 적용하는 정적 솔루션이다. *Annotation Processing 런타임 시점이 아닌 컴파일 시점에서 어노테이션을 읽고 관련 소스 코드를 생성할 수 있다. 런타임 시점에서 해왔던 작업을 컴파일 시점에서 미리 처리하기에, 런타임의 부담을 덜어줄 수 있다. Dagger는 다음과 같이 3가지로 구성하여 사용한다. ● Module 주입할 의존성을 세팅하는 곳이다. ● Component Module을 연결하고, 주입할 위치를 지정하는 곳이다. (위치라는 건, Ac..

[Android] 의존성 주입 / Dependency Injection

이번 포스팅에서는 의존성 주입이라는 개념을 알아보겠다. 의존성이란? (Dependency) 클래스에는 흔하게 다른 클래스의 참조가 필요하다. 예를 들어 Car라는 클래스는 Engine이라는 클래스 참조가 필요할 수 있다. 이때 필요한 클래스(Engine)가 의존성이 될 수 있다. 의존성 주입이란? (Dependency Injection) 공식 문서에서는 종속 항목 삽입이라고 표현하지만, 일반적으로는 의존성 주입이라 칭한다. Dependency Injection을 줄여서 DI라고 부르기도 한다. 클래스가 필요한 객체를 얻는 방법은 다음과 같다. 1. 클래스가 필요한 객체를 자체 구성한다. ex) Car클래스는 Engine 클래스의 인스턴스를 생성 · 초기화 한다. 2. 객체를 다른 곳으로부터 제공 받는다...

[Android] 디자인 패턴 - MVVM 패턴 / 예제

이번엔 MVVM 패턴에 대해 알아보자.  디자인 패턴이 뭔지 모르겠다면 다음 포스팅을 보고 오자.  디자인 패턴 & MVC 패턴에 대한 포스팅이다.  [Android] 디자인 패턴 - MVC 패턴 / 예제디자인 패턴 중 MVC 패턴에 대해 알아보자. 안드로이드에서 적용하는 MVC 패턴이다. 디자인 패턴이란? 소프트웨어의 개발 방식을 문서로 공식화 한 것. 개발 중 자주 나타나는 과제를 해결하기 위oscarstory.tistory.com   MVVM 패턴  MVP 패턴을 기반으로 생겨났으며,Presenter의 자리를 ViewModel이 대체했다고 볼 수 있다. Model + View + ViewModel 의 약어로 MVVM이라 칭한다.  ViewModel은 MVP 패턴의 Presenter와 동일한 역할을 ..

728x90