본문 바로가기

전체 글

(107)
[TIL] Kotlin SharedViewModel 개념 Topic = 하나의 Activity에서 여러 Fragment를 사용하는 경우 ViewModel을 어떻게 작성하고 관리하면 좋을까 ✔️ 간단하게 SharedViewModel을 사용하고 생긴 문제들을 먼저 적어보고 SharedViewModel 에 대해서 정리 Why - SharedViewModel은 만능이 아니다. 글 작성일 기준 마지막으로 진행했었던 프로젝트에서는 Single Activity Architecture를 적용하여 프로젝트를 진행하였고 비즈니스 로직과 Fragment 간의 데이터 이동을 관리하는 SharedViewModel 하나로 여러 Fragment에서 사용할 수 있도록 해주었는데 아래와 같은 불편함이 있었다. 코드 가독성 저하 여러 Fragment에서 공유하지 않는 로직인데도 하나의 Vie.. 2023. 11. 21. 21:00
[TIL] Kotlin 단일 Activity ( Single Activity ) Topic = 단일 Activity를 왜 사용하는지에 대해서 학습해보자 단일 액티비티 ( Single Activity ) [ 단일 액티비티 개념 및 특징 ] 단일 액티비티 아키텍쳐는 Android 앱 개발에서 일반적으로 사용되는 패턴으로 앱의 모든 화면을 하나의 액티비티 내부에서 액티비티의 레이아웃의 Fragment 컨테이너를 통해 여러 Fragment를 화면 전환과 상호작용을 통해 관리하는 것을 말한다. Fragment 간의 화면 전환은 Fragment Manager의 Transaction 을 통해 이루어지며 Fragment 추가, 제거, 교체, 숨기기 등의 작업을 수행하며 setCustomAnimation() 메서드를 사용하는 등 화면 전환 애니메이션 효과를 적용할 수 있다. 하나의 액티비티 내부에 .. 2023. 11. 19. 22:27
[TIL] Github Readme 작성하기 마크다운 HTML 비교 [ 기본편 ] Topic = Github Readme를 보기 좋게 만들어보자 완성 코드 Github Readme 간단하게 Readme에 대해서 알아보고 사용법은 아래에 작성 [ Readme의 특징 ] Readme는 깃허브 Repository에 포함된 프로젝트에 대한 설명과 문서를 작성하는 마크다운 형식의 파일이다. 리드미 파일 추가 시 .md 형식의 파일이 생성되는 것을 확인할 수 있다. 마크다운 형식 외에도 CSS, HTML 형식의 코드를 통해 Readme를 작성할 수 있지만 *사용자의 안전을 위해 JavaScript를 실행하지 않아 일부 HTML 및 CSS 기능을 제한하고 있다. *JavaScript를 사용하게 될 경우 XSS( Cross Site Scripting ), CSRF ( Cross Site Reques.. 2023. 11. 14. 23:57
[TIL] Kotlin 의존성 주입 ( Dependency Injection ) 개념편 Topic = 의존성 주입의 개념에 대해서 학습해보자. DI 의존성 주입 ( Dependency Injection ) 의존성 주입이란?? OOP 원칙 중 DIP 원칙을 지키기 위해 사용되는 방법으로, 하나의 객체가 다른 객체의 의존성을 제공하는 방법을 일컫는다. '의존성'은 사용할 수 있는 객체라고 할 수 있다. 해당 객체를 사용하는 클라이언트가 어떤 사용할 수 있는 객체를 사용할 것인지 지정하는 대신 클라이언트에게 어떤 서비스를 사용할 것인지 알려주는 것이 의존성 주입이다 이때, 의존성(사용 가능한 객체) 을 클라이언트 (사용하는 객체)로 전달하는 것이 주입이라고 이해하면 좋을 것 같다. 사용할 수 있는 객체라는 단어에 추가적인 설명을 더하자면 의존성(사용 가능한 객체)은 자동차의 엔진, 바퀴와 같이 .. 2023. 11. 13. 22:43
[TIL] Android 이미지 포맷 형식 ( JPEG, PNG, AVIF, SVG ) Topic = 이미지 포맷 형식들에 대해서 알아보자 ( JPEG, PNG, AVIF, SVG ) 1. 이미지 형식 마다의 파일 용량 크기 차이 이처럼 이미지 파일 형식에 따라 용량이 다르고, 같은 이미지임에도 표현되는 방식 또한 제각각이다. 이미지 파일 형식의 종류에 대해서 알아보고 어떻게 사이즈를 줄일 수 있는지 알아보자. JPEG ( Joint Photographic Experts Group ) 용 량 : 높은 편 확장성 : 잦은 편집, 저장 시 품질 저하 JPEG는 픽셀 기반의 래스터 이미지로 구성되어 있으며 비트맵 이미지를 손실 압축 방식으로 압축할 때 일반적으로 사용되는 방식으로 특징은 다음과 같다. 파일 방식 - 비트맵 이미지로 원본 이미지에서 일부 정보를 제거함으로써 파일 크기를 줄이는 손실.. 2023. 11. 11. 02:26
[TIL] Kotlin 프로젝트 리팩토링 Topic = 프로젝트 리팩토링 - 진행 중 Why - 아직 리팩토링에 대해서 어떤 방식이 좋은진 모르지만 이번 프로젝트 진행하면서 다시 생각하게 된 내용들이 많아서 정리. 1. 초기에 디자인 패턴 등을 활용하여 객체지향적인 구조를 잘 만들어보자 기존의 문제점 기능 구현에만 급급하여서 작성한 코드 전반적으로 유지보수성이 굉장히 낮았다. 이로인해 리팩토링을 하기 위해 구조 자체를 바꾸어야 하는 문제등이 발생했다. 아래에 발생한 몇가지 케이스의 문제를 간단하게 적어두고 하단 리팩토링 코드에 추가로 작성. Case1 NaverMap API를 통해 지도를 사용하는데, 하나의 MapViewFragment로 관리하여 게시글 작성자의 경우 지도 클릭시 마커를 생성하여 마커 위치 정보를 담고, 담긴 마커 위치 정보와 .. 2023. 11. 7. 23:59
[TIL] Android 4가지 컴포넌트와 Intent 개념 Topic = Android Component와 Intent - 암시적 인텐트, 명시적 인텐트 개념에 대해서 학습 + 간단한 예제 Android 4대 컴포넌트 Android 4대 컴포넌트란? Android App 컴포넌트는 Activity, Service, Content Provider, Broadcast Receiver로 이루어져 있다. 각각의 컴포넌트는 앱 안에서 독립적인 고유의 기능, 실행 단위를 갖으며 서로 상호작용하여 앱의 다양한 기능을 제공한다. 4대 컴포는트 각각의 특징과 역할을 예지를 통해 확인하며 어떠한 상호작용으로 어떠한 기능을 제공하는지 알아보자. Activity Activity는 사용자 인터페이스를 담당하는 컴포넌트로 사용자와 시각적으로 상호작용 하는 로그인 화면, 홈 화면 등이 액.. 2023. 11. 6. 23:42
[TIL] 객체 지향 프로그래밍 ( Objective Oriented Programming ) Topic = 객체 지향 프로그래밍에 대해서 학습 객체 지향 프로그래밍 (OOP) OOP는 프로퍼티와 메서드를 갖는 데이터를 묶어서 정의하고, 그 정의된 내용을 객체라는 매개체를 생성하여 사용할 수 있게 한다. 그 객체들간 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법으로, 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합을 통한 프로그래밍 방법이다. 자동차를 통해 간단한 예제를 만들어 보자. 프로퍼티? class Car (val model: String, val engineDisplacement: Double){ var isEngineRunning: Boolean = false } 각기 다른 자동차에 대한 정보를 정의할 수 있도록 모델명, 배기량은 Car class의 () 내부.. 2023. 11. 4. 23:38