최신 글
- 암호화 비밀키 교환방식 (디피-헬만 , RSA ) 대칭키는 암호화와 복호화에 대한 문장이 동일한 형태이고,비대칭키는 암호화와 복호화 키가 다른것을 의미. 디피-헬만 키 교환 방식 이란?- 실제 키값을 바로 전달하는것이 아니라, 키 값을 만드는 방법을 전달하는 방식- 단점은 공개키가 믿을 수 있는 공개키인지 자체만으로는 신원 검증이 어렵고, 전자서명이 가능한 다른 암호화 방식과 섞어서 사용. 교환방식앨리스 - 1 , 밥 - 2 , 이브 - 해커1과 2는 통신을 성립하기 위한 비밀키를 교환하고자함.큰소수 P , 적절한 정수 G를 공개. P와 G는 공개되어도 상관없음 1은 P미만의 정수 a를 선택후 A = G^a(mod P)를 만족하는 A를 2에게 전송. 단 a는 1만 알아야함 , A는 누구한테 가던 상관없음2는 P미만 정수 b를 선택후 , B = ..
- kotlin언어 [Flow] Flow combine 에러시 미동작 관련 내부 동작 실제 두개의 액션을 실행시켜 동작시throw 즉 에러를 강제로 던지거나 예외사항이 발생했을때downStream으로 가지 않는 이슈가 있었다.combine( action1(query), action2(query)) { action1, action2 -> action1 to action2}.collect { entity -> ...} catch를 통해 upStream에 대한 예외처리를 하면 되지만 왜 그런지 내부를 살펴보자. 실제 combine 내부의 동작을 보면 내부에 result 액션에 대한 동작을 channel을 통해 가져와 동작시키게 되어있지만,결과 액션 이후 result를 transform 하여 변경된 응답값을 뱉는 과정을 타야하지만실제 while문 내부 resultChanne..
- 카테고리 없음 [Kotlin] Mockk 문서 확인해보기 안녕하세요 남갯입니다. 오늘은 mockk 문서를 확인해보고자 합니다. https://mockk.io/#constructor-mocks MockK Provides DSL to mock behavior. Built from zero to fit Kotlin language. Supports named parameters, object mocks, coroutines and extension function mocking mockk.io 그래들과 메이븐 세팅 방법 Annotation class CarTest { @MockK lateinit var car1: Car @RelaxedMockK lateinit var car2: Car @MockK(relaxUnitFun = true) lateinit var car3..
- kotlin언어 [flow] coroutine flow 문서 읽기 -2 안녕하세요 남갯입니다. https://developer.android.com/kotlin/flow/stateflow-and-sharedflow?hl=ko StateFlow 및 SharedFlow | Android 개발자 | Android Developers StateFlow 및 SharedFlow StateFlow와 SharedFlow는 흐름에서 최적으로 상태 업데이트를 내보내고 여러 소비자에게 값을 내보낼 수 있는 Flow API입니다. StateFlow StateFlow는 현재 상태와 새로운 상태 업데이트를 developer.android.com StateFlow StateFlow는 현재상태와 새로운 상태를 업데이트 수집하는 관찰 가능한 상태 홀더 flow입니다. 상태를 업데이트를 하기 위해서는 Mu..
- kotlin언어 [flow] coroutine flow 문서 읽기 -1 안녕하세요 남갯입니다. 오늘은 Coroutine flow 문서를 읽어볼 예정입니다. https://developer.android.com/kotlin/flow?hl=ko Flow란? flow는 기존 단일값만 반환하는 정지함수와는 달리 여러값을 순차적으로 보낼수 있는 유형입니다. 기존 Rx를 사용해보셨다면 비슷한 개념으로 이해할 수 있을것 같은데요. 코루틴기반으로 빌드되며, 여러값을 제공할 수 있는 데이터스트림의 개념입니다. Flow의 데이터 스트림 Flow의 데이터 스트림에는 3가지의 항목이 존재합니다. 1. 생산자 : 스트림에 추가되는 데이터를 생산합니다. 코루틴 덕분에 흐름을 비동기적으로 데이터가 생산 가능 2. 중개자(선택사항) : 스트림에 내보내는 값을 수정 가능 3. 소비자 : 스트림에서 받아온..
IT
- 안드로이드 관련 [안드로이드] 안드로이드 커스텀 달력 예제 (Android Custom CalendarView Example) 안녕하세요 YTS 입니다. 오늘은 제가 만든 Custom Calendar View에 대해 적어보려합니다. 기본적으로 Android 에서 제공하는 달력은 한계점이 많고 각 날짜에 꾸밈을 할 수없기 때문에 불편한점이 많습니다. 저의 방법은 RecyclerView를 이용하여 만든 방법입니다! 참고로 해당 방법을 이용하기위해선 RecyclerView와 RecyclerView.Adapter에 대한 사전지식이 조금 필요합니다. 1. RecyclerView에 ViewType 설정 2. StaggeredGridLayoutManager에 대한 Span 설정 ( 이 부분은 쉽습니다. ) 사전 지식을 아는 개발자라면 쉽게 따라 하실 수 있도록 가이드하겠습니다. 1. Xml에 RecyclerView를 선언한다. 저는 헤더, ..
- 안드로이드 관련 [안드로이드] 안드로이드 지문인식 변경점 안녕하세요 남갯입니다 블로그를 처음 글쓰면서 의미있는 글을 써보겠다 다짐하면서 지문인식이란 구글샘플의 fingerprintCompat으로 타겟을 변경하고 제공하는 앱을 선보였는데요? 오랜만에 앱을 개발하면서 다시 예전에 만든 소스를 검토하면서 이용하다보니 api 28에서는 fingerprint가 deprecated되고 biomatric으로 통합되었다는 정보를 알게되어 글을 쓰게 되었습니다. - fingerPrint의 변경점 Android 9 only includes fingerprint integration for BiometricPrompt. However, integrated support for other biometric modalities are forthcoming. In Android 9 a..
- 안드로이드 관련 [안드로이드] AlarmManager With Notification Example (알람매니저를 이용하여 푸쉬생성 예제) 안녕하세요 YTS 입니다. 오늘은 알람매니저(AlarmManager)를 이용하여 푸쉬(Notification)를 생성하는 예저를 다루어볼까합니다. 추가적으로 JobScheduler를 이용하여 백그라운드에서도 반응하도록 예제를 제작하였습니다. 우선적으로 사전지식이 필요한 JobScheduler는 안드로이드 API LEVEL 21부터 등장하였고, Android에서는 기존 무분별한 백그라운드 서비스를 제한하기위하여 JobScheduler로 대체를 하고있습니다. 저는 JobScheduler를 보다 쉽게 사용하기위해서 FireBase Jobdispatcher를 이용하였습니다. 보다 자세한 정보는 https://github.com/firebase/firebase-jobdispatcher-android 에서 확인할 ..
- Java언어 [안드로이드] 지문인식(fingerprint) 사용하기 (api<23도 가능) 안녕하세요 남갯입니다. 가입하고 처음 글을쓰게 되었는데요? 예전에 지문인식을 통한 어플리케이션을 개발했었는데, 구글에서 제공하는 지문인식 샘플을 이용하여 개발하였습니다. 구글에서 제공하는 지문인식 라이브러리 https://github.com/googlesamples/android-FingerprintDialog 저는 오늘 구글에서 샘플로 제공한 지문인식 라이브러리를 통한 개발방법을 소개해드리려 합니다. 먼져 위 사이트에 접속하여 위 빨간 버튼을 이용하여 다운하고 압축을 푼후 프로젝트를 열어보도록 하겠습니다. (file - open - gradle 모양의 프로젝트) 일단 열어서 실행을 실행을 해보면 맨 왼쪽의 화면이 나오게 됩니다. 구매(purchase)나 구매 무효화 (invaldated) 버튼을 클릭하..
- 안드로이드 관련 [안드로이드] 더보기 기능(TextView ReadMore) 안녕하세요. YTS 입니다. 오늘은 TextView의 더보기 기능에 대해 적어보려합니다. 더보기 기능은 페이스북, 인스타 등 기본적으로 SNS 에서 등장하는 기능인데요. 생각보다 마땅한 라이브러리가 없어 실제로 구현해봤습니다. public static void setReadMore(final TextView view, final String text, final int maxLine) { final Context context = view.getContext(); final String expanedText = " ... 더보기"; if (view.getTag() != null && view.getTag().equals(text)) { //Tag로 전값 의 text를 비교하여똑같으면 실행하지 않음. re..