전체 글 121

[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

[Java] 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와 동일한 역할을 한다. ..

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

이번엔 MVP 패턴에 대해 알아보자. 디자인 패턴이 뭔지 모르겠다면 아래 포스팅부터 보고 오면 도움이 될 것이다. 디자인 패턴 & MVC 패턴에 대한 포스팅이다. [Android] 디자인 패턴 - MVC 패턴 / 예제 디자인 패턴 중 MVC 패턴에 대해 알아보자. 안드로이드에서 적용하는 MVC 패턴이다. 디자인 패턴이란? 소프트웨어의 개발 방식을 문서로 공식화 한 것. 개발 중 자주 나타나는 과제를 해결하기 위 oscarstory.tistory.com MVP 패턴 MVC 패턴을 기반으로 생겨났으며, Controller의 개념을 삭제하고 Presenter가 추가된 디자인 패턴이다. Model + View + Presenter 의 약어로 MVP라 칭한다. Presenter가 중개자 역할을 해주기 때문에 Vi..

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

디자인 패턴 중 MVC 패턴에 대해 알아보자. 안드로이드에서 적용하는 MVC 패턴이다. 디자인 패턴이란? 소프트웨어의 개발 방식을 문서로 공식화 한 것. 개발 중 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 개발 과정에서의 불편한 점을 보완하는 등의 설계 노하우를 축적하여 이름을 붙인 형태로 정리한 것이다. ✅ 디자인 패턴을 사용하면? 선배 개발자들의 설계 노하우를 축적하였기에 대부분의 디자인 패턴은 재사용이 용이한 형태로 정리되어 있다. 그렇기에 추후 유지·보수가 편리한 것은 물론이고, 코드 가독성도 향상된다고 볼 수 있다. 또한, 일정한 개발 규칙을 정한 것이기에 협업도 편리해진다. ✅ 안드로이드에서의 디자인 패턴을 구분하는 기준 디자인 패턴은 대부분 재사용이 용이한 형태로 정리되었고, 코드..