일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 안드로이드 디자인 패턴
- 안드로이드 개발
- CS지식
- reactnative
- 운영체제
- Android
- 개발
- 앱
- 액티비티
- Kotlin
- 코틀린
- OS
- 앱 개발
- 안드로이드
- 스레드
- cs
- 앱개발
- 데이터베이스
- 프로세스
- 메모리
- 디자인 패턴
- Operating System
- Database
- 디자인패턴
- github
- 리액트네이티브
- MVVM
- React
- db
- 리액트
- Today
- Total
목록분류 전체보기 (72)
Tech Log
안드로이드 개발을 하다보면, Jetpack에 대해서 많이 듣게 된다. Jetpack을 이용해서 개발을 한 적은 많은 것 같은데, Jetpack 정확하게 뭐냐고 물으면 대답을 확실하게 할 자신이 없다. 따라서 Jetpack이 도대체 무엇인지 알아보기로 했다. 1. 정의 먼저 Jetpack이라는 단어 자체의 의미만 생각해보자. 네이버 영어 사전에 의하면 Jetpack의 의미는 다음과 같다. 제트팩 ((등에 메는 개인용 분사 추진기, 우주 유영 등에 사용)) 그래서 안드로이드 Jetpack을 검색했을 때 나오는 이미지가 안드로이드에 부스터가 달린 것인 것을 확인할 수 있다. 이처럼 Jetpack은 안드로이드 개발을 할 때 부스터 역할을 하는 도구라고 볼 수 있다. Android Developers에서는 아래와..
안드로이드 Room DB의 인스턴스를 생성할 때 반드시 싱글톤 패턴으로 생성했던 것 같다. 그때는 강의에서 그렇게 하라고 해서 했었는데, 다른 곳에서도 사용할 일이 있을 것 같아서 싱글톤 패턴에 대해 정리해본다. 1. 정의 위키백과에서는 다음과 같이 싱글톤 패턴을 정의하고 있다. 소프트웨어 디자인에서 싱글톤 패턴을 따르는 클래스는, 생성자가 여러 차례에 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 위 정의에서 알 수 있듯이, 싱글톤 패턴에서는 객체(인스턴스)를 메모리에 하나만 생성한다. 그리고 이 객체를 여러 스레드에서 동시에 어디에서든지 참조할 수 있도록 하는 것이다. 전역 범위에서 이 객체에 접근할 수 있도록 하면 어디에서든지..
소프트웨어를 설계할 때 디자인 패턴이 중요하다는 얘기를 항상 들었지만, 왜 중요한 것이고 어떨 때 쓰이는 것인지 몰랐다. 그러다가 이번에 추천 시스템 어플리케이션을 만들면서, 디자인 패턴의 중요성을 크게 깨달았다. 프로젝트 내의 파일들이 많아지고, 한 클래스 내에서 너무 많은 기능들이 담겨있다보니 파일을 찾기 힘들고, 코드의 가독성이 좋지 않았다. 또한 클래스의 재사용성과 확장성이 좋지 않겠다는 생각이 들었다. 이래서 소프트웨어 설계를 철저히 하고 디자인 패턴을 적용시키는 것이구나하고 깨달았다... 이번에 제대로 디자인 패턴을 공부해서 적용시켜보려고 한다. 1. 디자인 패턴이란? 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 즉, 설계에서 ..
로그인 기능이 있는 어플리케이션을 만들 때, SharedPrefereces를 사용한 적이 있다. SharedPreferences는 DB를 라이트하게 쓰고 싶을 때 그리고 앱이 종료돼도 데이터를 저장하고 싶을 때? 사용하는 것으로 알고 있다. SharedPreferences에 대한 개념에 확신이 없어서 블로그에 글을 쓰면서 공부해본다. 1. SharedPreferences란? SharedPreferences는 데이터를 저장하는 안드로이드 API다. 우리는 보통 데이터를 저장할 때 DataBase를 사용한다. SQLite를 쓰거나 MySQL과 같은 DataBase에 많은 데이터를 보관한다. 이러한 DB들이 있는데도 SharedPreferences를 쓰는 것은, 간단한 저장을 하기 위해서이다. 간단한 설정 값..
1. 문제 전화번호 목록 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 전화번호 목록의 배열이 입력으로 주어진다. 전화번호 중에서 한 전화번호 전체를 접두어로 하는 다른 전화번호가 있는지 찾는다. 접두어로 하는 다른 전화번호가 있다면, false를 return한다. 접두어로 하는 다른 전화번호가 없다면, true를 return한다. 전화번호 목록 내에서 같은 전화번호가 중복해서 들어있지 않다. 2. 풀이 해쉬(Hash) 문제이므로, 해쉬 개념을 사용해야 할 것 같다. 물론 해쉬를 사용하지 않고도 풀 수 ..
안드로이드 프로젝트 파일 내에 이미지가 있다면, ImageView로 drawable 파일 내의 이미지를 가져오면 된다. 그러나 만약 서버에서 이미지를 이미지 주소의 형태로 보내게 된다면 어떤 방식으로 이미지를 불러와야 할까 고민했다. 이미지 로드 라이브러리 중 Glide라는 것을 알게 되었고, 프로젝트에서도 해당 라이브러리를 적용시켜보았다. Glide 사용 내용을 정리하기 위해 포스팅을 작성하게 되었다. 1. Glide란? Glide는 안드로이드에서 이미지를 빠르고 효율적으로 로드(load)할 수 있게 해주는 라이브러리다. 구글에서 공개한 라이브러리다. JPEG과 같은 이미지 뿐만 아니라 Gif와 같은 애니메이션 이미지도 불러올 수 있도록 해준다. 그리고 동영상의 스틸 로딩(loading), 디코딩, 캐..
다들 처음 git commit을 하고, push를 해줄 때 git push -u origin branch-named에서 -u라는 옵션을 본 적이 있을 것이다. -u 옵션 뿐만 아니라, 다른 옵션도 있는데 이게 무슨 명령을 의미하는 것인지 궁금했다. 따라서 git push cli에 대해서 전체적으로 다뤄보기로 했다. 1. git push란? git commit 을 하고나서, 로컬 저장소에 변경 이력이 저장이 된다. 이후에 git push를 하게 되면 로컬 저장소에 있는 변경 이력이 원격 저장소에도 반영된다. 2. 사용 방법 git push (원격 저장소 명) (브랜치 명) 일반적으로 git push는 두 가지 인자를 받는다. 원격 저장소 명과 브랜치 명을 두 가지 인자로 받는다. git push origi..
안드로이드를 공부하면서 안드로이드 내의 스레드 개념을 알게되고, 이때 Handler 라는 것이 있다는 것을 알게 되었다. 근데 당시에는 글을 읽어봐도 Handler에 대한 감이 잡히지 않았다. 그래서 다시 공부하며 직접 글을 쓰면서 정리하고자 한다. 1. 배경 어쩌다가 Handler라는 것이 만들어지게 된 것일까? 그리고 Handler라는 것은 어디에 쓰는 것일까? 앞에서 스레드를 공부하면서 Handler를 알게 되었다고 했다. 여기서 유추할 수 있듯이, Handler는 스레드와 관련된 일을 한다. 안드로이드에는 메인 스레드와 워커 스레드가 있다. 메인 스레드에서는 대게 UI 관련된 작업을 하고, 시간이 오래 걸리는 작업들은 워커 스레드에서 진행한다. 만약, 워커 스레드에서 UI를 처리하는 작업을 하거나..