오늘은 Solid 원칙에 대해 작성해보려고 한다. Solid 원칙은 코드를 더 깨끗하고 견고하게 만들기 위해 개발자들이 따라야 할 기본 가이드라인으로, Robert C. Martin이 제안했다. 객체 지향 프로그래밍에서 코드의 유지보수성, 확장성, 재사용성을 높이는 데 도움을 주는 다섯 가지 설계 원칙이다. 자세한 내용은 아래에 정리하려고 한다. 1. 단일 책임 원칙 (Single Responsibility Principle, SRP) "클래스는 하나의 책임만 가져야 한다." 하나의 객체는 하나의 책임만 담당책임을 적절히 분배하면서 책임 변경이 다른 책임의 변경으로 전파되지 않음.코드 가독성이 좋아지고, 유지보수가 쉬워짐책임을 드러낼 수 있는 명확한 이름으로 클래스를 생성하는게 좋음낮은 결합도와 높은 ..
전체 글
Android 주니어 개발자
오늘은 최근 처음 경험한 GitHub Copilot에 대한 내용을 작성해보려고 합니다. 현재 약 2달 무료 사용이 가능하고, 그 이후에는 자동 결제되니 체험만 해보실 분은 참고 부탁드립니다.아래 내용의 경우 IntelliJ로 체험해 보았고, Android Studio도 사용 방법은 동일합니다. GitHub Copilot?디버깅 시간을 보다 효율적으로 도와주는 도구 중 하나가 바로 GitHub Copilot입니다.AI를 기반으로 작성한 주석, 코드 등을 분석하여 코드를 자동완성 시켜주는 도구입니다. 사용법1. IntelliJ에서 GitHub Copilot 플러그인 설치 2. 설치 완료 후 IDE 재실행 및 코파일럿 로그인 버튼 클릭 3. Device Code 확인 후 GitHub 연동 4. GitHub 페..

서론안드로이드에서 다이얼로그(Dialog)는 사용자와 상호작용할 수 있는 중요한 UI 구성 요소입니다. 다이얼로그를 구현하는 방법에는 여러 가지가 있지만, 그중 AppCompatDialog와 DialogFragment는 자주 사용되는 두 가지 방법입니다. 두 가지 다이얼로그 구현 방식의 차이점과 각각의 장단점을 정리해보려고 합니다.1. AppCompatDialog란?AppCompatDialog는 androidx.appcompat.app.AppCompatDialog 클래스를 상속받아 구현되는 다이얼로그입니다. 이는 기존의 Dialog 클래스를 확장하여, 더 향상된 테마와 기능을 제공하며, 특히 앱의 전체 테마가 AppCompat 라이브러리를 사용하는 경우 일관된 스타일을 유지할 수 있습니다. 특징스타일 ..
서론오늘 코딩 테스트 연습을 하던 중 반복문이 아닌 정규식을 사용할 때 효율이 더 좋은 경우가 있어서 정규 표현식에 대해 정리해보려고 한다. 정규 표현식정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어이다.정규 표현식(Regular Expression, 줄여서 Regex)은 문자열에서 특정 패턴을 찾거나, 추출하거나, 교체하는 데 사용되는 강력한 도구이다.kotlin에서는 정규 표현식을 쉽게 다룰 수 있는 다양한 기능을 제공한다. 정규 표현식 문법^ : 문자열의 시작을 의미$ : 문자열의 끝을 의미. : 문자 한 개를 의미. '.'이 위치한 곳에 어떤 문자든지 1개의 문자가 들어감[ ] : 대괄호에 있는 문자 중 한 개를 의미. [abc]는 a, b, c ..

서론okHttp는 Square에서 개발한 java 및 android 용 HTTP 클라이언트 라이브러리이다. 위 라이브러리를 활용하면 HTTP 통신을 쉽고 효율적으로 처리할 수 있다. API 통신 시 Retrofit2와 결합하여 자주 사용되는데 okHttp에 대한 내용을 간단하게 정리해보려 한다.주요 기능 비동기 요청 지원 : okHttp3는 비동기 요청을 지원하여 네트워크 통신 중 UI 스레드를 블로킹하지 않음커넥션 풀링(Connection Pooling): HTTP/1.1의 Keep-Alive 기능과 HTTP/2의 멀티 플렉싱을 통해 효율적인 커넥션 풀링을 지원한다. 이는 네트워크 사용을 최적화하고 성능을 향상함투명한 GZIP 압축: 응답 본문을 자동으로 GZIP 압축 해제하여 네트워크 트래픽을 줄인다..
gitignore에 대한 추가 설명은 이전 포스팅 참고 부탁드립니다.https://ystech.tistory.com/entry/Git-gitignore-commit-%EC%8B%9C-%ED%8C%8C%EC%9D%BC-%EA%B4%80%EB%A6%AC [Git] gitignore - commit 시 파일 관리서론 기존 프로젝트를 진행하면서, 작업 내용을 git에 commit 할 때 작업한 내용 외에 불필요한 .gradle, .idle 등의 파일들이 노출되는 것을 본 적이 있을 것이다. 이를 제어할 수 있는 gitignore에 관해ystech.tistory.com gitignore가 제대로 작동하지 않아서 기존에 ignore 처리 했던 파일이 커밋 변경 내역에 노출될 때가 있는데, git의 캐시 때문에 발생..
서론코딩 테스트에서 자주 활용되는 filter() 함수에 대해 정리해보려고 한다. 코테 문제 풀이 시 자주 사용되는 함수이니 알아두면 도움이 될 거라고 생각한다. filter() 함수?filter() 함수는 컬렉션(배열, 리스트) 등에서 조건을 만족하는 모든 요소들을 필터링하여 새로운 컬렉션을 반환하는 함수이다. 이 함수는 람다식을 인자로 받아 각 요소를 평가하고, 조건을 만족하는 요소들만을 포함하는 새로운 컬렉션을 생성한다. 보통, 주어진 조건을 만족하는 요소를 선택적으로 추출할 때 자주 사용된다. 예를 들면, 특정 조건을 만족하는 숫자, 문자열 또는 사용자 정의 객체를 선택하고자 할 때 사용할 수 있다. 특징사용 방법 : filter() 함수는 컬렉션에 대해 호출되며, 람다식을 인자로 받는다. 이 람..

서론 지난 포스팅에 Jetpack navigation에 대해 정리해 보았다. 오늘은 navigation 사용 시 데이터 전달에 활용되는 Safe Args에 대해 정리해보려 한다. 이전 포스팅은 아래 내용 참고해주세요🤗 https://ystech.tistory.com/entry/Android-Jetpack-Navigation%EC%97%90-%EB%8C%80%ED%95%B4 [Android] Jetpack Navigation에 대해 서론 Android에서 자주 사용되는 Jetpack Navigation에 대해 정리해보려 한다. 기존 화면 전환 시 intent, transaction을 사용하지만, 앱 구성이 복잡해질수록 코드도 복잡해질 수 있다. 화면 구성 및 UI 전환 ystech.tistory.com S..

서론 Android에서 자주 사용되는 Jetpack Navigation에 대해 정리해보려 한다. 기존 화면 전환 시 intent, transaction을 사용하지만, 앱 구성이 복잡해질수록 코드도 복잡해질 수 있다. 화면 구성 및 UI 전환을 쉽게 구현할 수 있도록 도와주고, SAA 아키텍처에서 함께 사용되는 개념이라 기본적인 내용이지만 중요하다고 생각한다. Navigation이란? 먼저, Jetpack이란 Android 개발을 쉽고 빠르게 도와주는 라이브러리이다. Navigation은 UI(xml)을 통해 navigation 편집이 가능하게 해주는 라이브러리로 주로 BottomNavigation과 자주 사용된다. Fragment의 전환을 좀 더 간단하게 도와주는 도구로 생각하는 게 이해하기 가장 쉬울 ..

서론 요즘 Android Architecture에 대한 내용을 공부하던 중 SAA라는 새로운 아키텍처를 보게 되었다. Google I/O 2018 에서 언급된 내용으로 한참 지난 지금에서야 알게 된 점에 오늘도 반성중이다 ㅠ 사실 이전부터 Google에서는 Activity보다 Fragment 사용을 적극 권장했기 때문에 Single Activity 아키텍처의 사용을 권장하는 것은 당연하다고 느낀다. SAA에 대한 개념을 가볍게 정리해보려 한다. SAA란? SAA(Single Activity Architecure)는 하나 혹은 최소한의 Activity만을 사용하고 나머지 화면은 모두 Fragment로 구성한 구조로, 주로 JetPack Navigation과 함께 사용되는 아키텍처이다. Single Acti..