- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jlpt
- Kotlin
- 일본어기초
- 책추천
- 코틀린
- blog
- ai
- github
- 진짜일본어
- suspend
- 일본어문법
- Android
- 학습지
- 진짜학습지후기
- coroutine
- GIT
- KotlinInAction
- 책리뷰
- pullrequest
- rxjava
- errorhandling
- androidstudio
- 인공지능
- PR
- webflux
- CustomTab
- n3문법
- posting
- 진짜학습지
- 안드로이드
목록분류 전체보기 (352)
코딩하는 개굴이
본 문서는 Firebase Console을 사용하여 Firebase를 추가하는 방법을 기술하고 있습니다. 시작하기 전에 Firebase를 적용하려는 프로젝트의 API Level이 16(Jelly Bean) 이상인지 확인한다. Gradle 4.1 이상인지 확인한다. com.android.tools.build:gradle v3.2.1, compileSdkVersion 28 이상의 Jetpack(AndroidX)인지 확인한다. Google 계정으로 Firebase에 로그인한다. Firebase Console을 사용하여 Firebase 추가하기 Firebase 에서 Android 앱에 연결할 Firebase 프로젝트를 만든다. Firebase 프로젝트에 앱을 등록한다. Firebase Console 에서 프로젝..
의존성 주입 (DI)이란? 외부에서 의존 객체를 생성하여 넘겨주는 것을 의미한다. 일반적인 객체 생성과 DI를 적용한 객체 생성을 비교하자면, 일반적인 객체 생성은 클래스 안에서 사용할 객체를 생성하지만, DI를 적용한 객체 생성은, 외부에서 생성된 객체를 주입 받는 방식이다. 의존성이란? class Doraemon { private Pocket pocket; public Doraemon() { this.pocket = new Pocket(); } public startDoremon() { this.pocket.searchPocket(); } } Doraemon 클래스의 startDoramon 함수의 호출을 위해서는 Pocket 클래스가 필수적이다. 이런 상황에서, Doraemon 클래스 Pocket 클..
Textview의 drawable 속성 UI 적용 시 아래와 같이 구성이 필요한 경우가 있다. 이때, 보통은 textview 와 imageview로 만들어 구현하지만, 한번에 textview 로 끝낼 수 있는 속성이 존재한다. Textview의 텍스트 주변에 이미지를 표시할 수 있는 속성 android : drawableLeft => 텍스트를 기준으로 왼쪽에 이미지 출력 android : drawableStart => 동일하나, API Level 17부터 가능 android : drawableRight => 텍스트를 기준으로 오른쪽에 이미지 출력 android : drawableEnd => 동일하나, API Level 17부터 가능 android : drawableTop => 텍스트를 기준으로 위쪽에 이..
코틀린의 확장 함수들 kotlin 은 확장함수들을 제공하여 객체를 사용 시 명령문들을 블록으로 묶어 간결하게 사용할 수 있게 해준다. let 매개 변수화 된 타입 T의 확장함수로, 자기 자신을 받아서 반환하는 람다 식의 형태이다. let 함수를 사용하여 해당 객체의 상태를 변경할 수 있다. ?.let {} 형태에서 let 블럭 안에는 non-null 만 들어올 수 있기 때문에 not-null 체크에 사용할 수 있다. elvis operator 를 사용해서 기본 값을 지정할 수 있다. 반환하는 값이 명시적으로 없을 경우, Unit 타입을 반환한다. val introducePerson = person.let { it.name = "Gaegul" it.height = 158 it } //Return 으로 본인..
정규식을 마스터해보자 본 내용은 elice 파이썬 정규표현식 강의를 기반으로 작성되었음을 알립니다. re 모듈에 대하여 정규식을 사용하기 위해 re 라는 모듈을 import 해야합니다. re.compile() 함수는 문자열 패턴을 컴파일해 정규식 객체를 반환한다. 특정 정규식을 코드 내에 여러번 사용하고자 할 때, re.compile()으로 정규식 객체를 만들어 활용한다.pattern = re.compile("hello") print("만든 정규식 객체 활용 : ", pattern.findall(text)) print("객체 사용하지 않음 : ", re.findall("hello",text)) re 모듈의 대표적인 함수 re.match(pattern, string) : string 시작에서부터 해당 pa..
안드로이드 앱 난독화 난독화의 목적은 앱 클래스, 메서드 및 필드의 이름을 단축해 앱 크기를 줄이는 것으로, 코드를 삭제하지는 않으면서 앱의 크기를 크게 절약할 수 있다. 난독화 장점 코드 축소 : 앱에서 사용하지 않는 클래스, 필드, 메서드, 라이브러리의 종속성을 감지하여 안전하게 삭제 리소스 축소 : 앱의 라이브러리 종속성에서 사용하지 않는 리소스를 포함하여 패키징된 앱에서 사용하지 않는 리소스 삭제 난독화 : 클래스와 멤버 이름을 줄여 DEX 파일 크기를 줄임, 네이밍을 바꿈으로써 가독성을 줄여 소스코드를 보호 최적화 : 코드 검사 후 다시 작성하여 DEX 파일 크기를 더 줄임 난독화 방법 release { minifyEnabled false proguardFiles getDefaultProguar..
Static static은 프로그램이 시작하고 종료될 때까지 살아있는 jvm의 static 메모리에 데이터를 올리는 것으로, 초기화 과정이 필요없어 static이 선언된 변수, 메서드에 바로 접근이 가능 static을 사용한다는 의미는, 해당 객체를 공유하겠다는 의미로 어디서 쓰이든 항상 동일한 객체이다. 따라서, static이 선언된 변수의 값을 바꿔버리면, 다른 곳에서 해당 변수의 값을 참조하는 부분 또한 영향을 받는다. ConcurrentModificationException (access) 오류, 연산 오류 등이 발생할 수 있다. 멀티스레드의 경우, synchronize 하여 다음 스레드가 해당 코드에 동시 진입하지 않고 먼저 실행된 스레드가 끝날 때 까지 기다렸다가 실행되도록 하여 보완할 수 있..
Singleton 패턴이란 Singleton이란 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴으로, 생성자의 호출이 반복적으로 이루어져도 실제로 생성되는 객체는 최초 생성된 객체를 반환해 주는 것 사용 장점 한번의 객체 생성으로 재사용이 가능하여, 메모리 낭비 방지 싱글톤으로 생성된 객체는 전역성을 띄기 때문에 다른 객체와 공유가 용이 예를들어, 그냥 생성자로 생성하는 방식이었다면 생성되는 객체가 여러개로, 동일한 객체를 공유하기 위해 번거로울 수 있으나, 싱글톤으로 생성된 객체는 getInstance 로 부르면 하나의 객체를 공유할 수 있다. 사용 단점 프로그램 전체에서 하나의 객체만을 공통으로 사용하기에, 다른 객체간의 결합도가 높아진다. ..
Android LayoutInflater LayoutInflater 란? 안드로이드에서 View를 만드는 방법 중 하나 xml에 정의된 Resource 를 View 객체로 반환해 주는 역할을 한다. xml 에 미리 정해둔 틀을 실제 메모리에 올려주는 역할을 한다. Inflate는 부풀리다라는 뜻으로 만들어둔 반죽을 빵처럼 부풀려 실제 식탁에 올려주는 역할로 묘사할 수 있다. Activity 를 만들면 onCreate 에 추가되는 setContentView 메서드와 유사한 역할 xml 레이아웃 파일에 대한 뷰를 생성할 때 LayoutInflater 를 이용해야 한다. LayoutInflater 객체의 inflate 메서드를 이용해 새로운 뷰를 생성할 수 있다. inflate(xml파일, 만든 뷰를 넣을 부..
Jekyll이란? 텍스트 변환 엔진으로, 마크업 언어로 글을 작성하면 미리 정의해 놓은 규칙에 따라서 정적인 웹사이트를 만들어준다. 이 과정에서 원하는 기능들을 구현할 수 있다. 정적 웹사이트를 만들기 때문에, PHP 등의 서버 소프트웨어가 필요 없어, 매우 빠르고 가볍다. 기본적인 형식 마크다운 언어로 작성한 포스트를 github에서 commit & push한다. 디렉토리 구조 파일/디렉토리 기능/역할 includes 재사용을 위한 파일들을 담는 디렉토리로, 포스트나 레이아웃을 쉽게 삽입할 수 있다 posts 내가 만든 컨텐츠를 담는 디렉토리로, 파일들의 명명 규칙에 따라 네이밍한다 layouts 포스트를 포장, 레이아웃을 선택을 위한 파일들을 담는 디렉토리 site JIKILL의 변환을 마친 파일들이..