일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- recyclerview
- DataBinding
- Algorithm
- 알고리즘
- sqlite
- CollapsingToolbarLayout
- 알림
- room
- BOJ
- Coroutine
- LiveData
- ViewModel
- notification
- onMeasure
- kotlin
- onLayout
- 코틀린
- Android
- Behavior
- View
- Navigation
- HTTP
- CoordinatorLayout
- activity
- CustomView
- lifecycle
- AppBarLayout
- 백준
- hilt
- 안드로이드
- Today
- Total
목록Programming (프로그래밍) (212)
개발일지
Hilt 기존의 Dagger2를 Android의 구조적으로 맞게 기능을 추가한 라이브러리이다. DI를 도와주며 Annotaion을 통해 보일러 플레이트 코드를 제거하고 쉽게 사용할 수 있다. DI (Dependency Injection) Android뿐만 아니라 프로그래밍에서 널리 사용되는 기법이고 다양한 이점이 있다. 코드의 재사용성 리팩토링 용이성 테스트 용이성 클래스에서 다른 클래스를 참조하는 방법은 크게 3가지가 있습니다. (Car와 Engine을 예시로) 1. 클래스에서 필요한 종속 클래스를 인스턴스화하는 방법 class Car { private val engine = Engine() fun start() { engine.start() } } fun main(args: Array) { val c..
QR Code QR Code란 흑백으로 이루어진 Matrix에 정보를 포함한 코드이다. zxing-android-embedded 라이브러리를 사용하여 Android에서 쉽게 QR Code를 읽고 만들 수 있다. Dependency dependencies { // QR implementation 'com.journeyapps:zxing-android-embedded:3.6.0' } Generate 한국어를 지원하기 위해 ISO 8859-1코드를 사용하여 포맷팅한다. object BindingAdapter { @JvmStatic @BindingAdapter("qrCode") fun setQRCode(view: ImageView, qrCode: String?) { if (qrCode == null) { vie..
Retrofit2 Android HTTP 통신에는 URLConnection, Volley Retrofi2 등이 존재합니다. Retrofit2는 동기/비동기 등 다양한 기능을 지원하고 Annotation을 통해 코드가 간결하다는 장점이 있습니다. Dependency gson : Response를 Google의 Gson을 통해 DTO로 매핑시켜줄 때 사용한다. scalars : String형식으로 Response를 받을 때 사용한다. dependencies { // Retrofit implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:converter-scalars:2.6.2' imp..
Volley Volley는 2013년 구글에서 발표한 Android HTTP 라이브러리 입니다. (JavaScript에 Ajax와 매우 비슷한 구조이다.) 기존의 URLConnnection은 Request를 위한 기본 설정과 Thread를 만들어서 처리하는 보일러 코드가 필요하다는 단점이 있습니다. Volley는 Callback으로 Response와 Error를 쉽게 처리할 수 있고, 비동기/동기 등 다양한 기능을 지원합니다. Volley는 간단한 HTTP 통신에는 적합하지만. 모든 응답을 메모리에 유지하기 때문에 대용량의 전송은 적합하지 않습니다. Dependency dependencies { // Volley implementation 'com.android.volley:volley:1.2.0' } ..
URLConnection Java에서 HTTP 통신을 제공하는 기본적인 라이브러리이다. JDK 1.1 시절부터 있던 라이브러리고 JDK 1.1은 1997년 2월 19일에 나왔다. 즉 1996년 HTTP/1.0을 기준으로 개발한 라이브러리기 때문에 버그가 있을 수도 있다. 코드 private fun getUrlencoded() { thread { (URL("${getURL()}?${getParameter()}").openConnection() as HttpURLConnection).apply { doInput = true doOutput = false requestMethod = "GET" connectTimeout = 3000 readTimeout = 3000 setRequestProperty("Cont..
HTTP (Hypertext Transfer Protocol) 웹 브라우저와 웹 서버 간의 통신을 하기 위한 규약이다. 특징 HTTP는 서버/클라이언트 모델을 따른다. 비연결 지향 클라이언트가 Request를 보내면, 서버는 클라이언트의 요청에 맞는 Response를 보내고 연결을 끊는다. 연결이 끊어지면 서로의 정보를 유지하기 때문에 정보를 잃는다. => 쿠키와 세션으로 해결가능 지속적으로 연결되는 형태가 아니기 때문에 불특정 다수를 대상으로 서비스하기 좋고, 많은 요청을 처리할 수 있다. HTTP Request Message Start Line : HTTP 시작부분 HTTP Method Request Target(목표 주소) HTTP Version HTTP Header Host : Host URL A..
TextInputLayout을 사용할 때 ExposedDropdownMenu와 MaterialAutoCompleteTextView를 사용하여DropdownMenu를 사용할 때 setSelection을 통해 코드로 Item을 선택할 경우 IndexBoundException이 발생한다. => setText를 사용한다.
개념 유한 집합의 합집합의 원소의 개수를 세는 기법이다. 작동원리 즉 겹치는 부분이 홀수면 더하고, 겹치는 부분이 짝수이면 뺀다. 시간복잡도 집합의 갯수가 N일 때 O(2^N) 문제 www.acmicpc.net/problem/17436 17436번: 소수의 배수 첫째 줄에 N(1 ≤ N ≤ 10)과 M(1 ≤ M ≤ 1012)이 주어진다. 둘째 줄에는 N개의 소수가 주어진다. 입력으로 주어지는 소수는 100보다 작거나 같으며, 같은 소수가 두 번 이상 주어지지 않는다. www.acmicpc.net 코드 #include using namespace std; using Int = int; using Long = long long; int main() { ios::sync_with_stdio(false); c..