Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

반응형

전체 글 447

kotlin koroutine 에 대한 이해.... 요약

코틀린 코루틴에서 런블로킹과 런칭의 차이점 이해 • 이 기사는 런블로킹과 론칭의 거동을 구체적으로 비교하면서 코틀린 코루틴의 메커니즘을 탐구한다. • 런블로킹은 코루틴 작업이 완료될 때까지 현재 스레드를 차단하는 코루틴을 실행하고, 런블로킹은 새로운 코루틴을 시작하고 라이프사이클을 나타내는 잡 인스턴스를 반환한다. • RunBlocking을 주된 방법으로 사용하고 Child RunBlocking 하위 작업을 시작할 때 모든 작업이 완료될 때까지 메인 스레드가 차단되어 순차적으로 실행됩니다. • 실행 차단 작업을 실행된 코루틴 내에서 포장하면 예상치 못한 행동이 발생하며, 실행되기 시작하지만 완료를 기다리지 않아 작업이 순서에 맞지 않게 실행됩니다. • job.join()을 호출하면 작업과 관련된 모든 코..

개인사업자 홈텍스 에서 전자 세금 계산서 발행을 위한 준비

오늘은 전자세금계산서 발급을 시도해 보겠습니다.   국세청 홈텍스에서 개인 사업자 인증이 완료된 경우 전자 세금 계산서 발행을 할 수 있습니다.  그전에 해야할 일이 있습니다.  전자 세금계산서 발행을 하려면 공동 인증서을 받아야 합니다.  물론 다른 방법으로 세무서에서 제공하는 보안카드을 이용할 수 있다고도 합니다. 하지만, 보안 카드을 받아야 하고 보관 해야 하는 번거러움을을 단순에 정리할 수 있습니다.  금융기관이 아닌 다른 인증 기관에서 발행 하는 개인사업장 공동인 인증서는 최소 연간 8만원 이상의 비용을 요구 하고 있습니다.  수입이 많고 해야할 일이 많다면 비용 지출을 하고 준비을 할 수 있겠지만, 아직 소소한 수입만으로 지탱하고 있는 중이라서 최소 비용(4,400원)으로 인증서을 받아 보려고..

jetpack compose 중첩 된 lazycolumn 오류 대처 방안 ... 요약

제트팩 구성에서 중첩된 게으름 칼럼 문제 해결• 이 기사에서는 제트팩 컴포즈 UI에서 중첩 목록 보기(LazyColumn)를 구현할 때 직면하는 일반적인 문제에 대해 논의하며, 이는 RecyclerView를 사용하여 Kotlin에서 직접 구현하는 것과 다르다.• 과제는  lazy column  내부에 있는 동안 외부 lazy column 의 스크롤 동작을 제어하는 데 있다.• 저자는 여러 목록으로 보기를 만드는 자세한 예를 제공하여 문제와 그 결과를 보여준다.• 가장 간단한 접근법은 자식 목록에 대해 부모 LazyColumn을 생성한 다음 다른 LazyColumn을 생성하는 것을 포함하지만 이는 무한대 최대 높이 제약과 관련된 오류를 초래한다.• 정적 높이와 동적 높이 솔루션이 탐색되지만 고정 높이와 하..

python web scraping ... 요약

파이썬 및 데이터 계약으로 웹 스크래핑 파이프라인 구축• 이 기사에서는 데이터 계약을 통합한 실용적인 종단 간 데이터 파이프라인 시연을 제시한다. 목표는 2023/24 시즌 프리미어리그 테이블 순위를 긁어내고 여러 단계를 거쳐 AWS S3 버킷에 데이터를 업로드하는 것이다.• 파이프라인은 웹 스크래핑이 허용되는지 확인하고 스크래핑 봇을 사용하여 데이터를 추출하고 데이터를 변환하여 AWS S3에 로드하는 것을 포함한다. 데이터 계약은 데이터가 데이터 소비자의 기대에 부합하도록 하기 위해 활용된다.• 데이터 출처는 프리미어리그 홈페이지이며, 셀레늄을 사용하여 데이터를 스크래핑한다. 데이터 계약은 추출 및 변환된 데이터에 대한 예상 스키마 및 데이터 품질 검사를 정의하는 데 사용된다.• 파이프라인은 파이썬과 ..

koroutine flow .... 요약

코틀린 코루틴 플로우와 안드로이드 서비스• 이 글에서는 클라이언트 구성 요소(활동, 뷰 모델 등)와 서비스 간의 양방향 통신 메커니즘에 대한 구현을 제시합니다.• 구현은 명령 패러다임과 달리 반응적 접근 방식을 취할 것입니다.• 현대 응용 프로그램은 여러 가지 이유로 명령형 구현 대신 반응형 구현을 사용하는 경향이 있습니다.• 구성 요소 간의 느슨한 결합: 구성 요소는 다른 구성 요소가 소비할 데이터를 생성할 뿐이며 데이터 소스는 소비자에 대한 지식이 없으며 그 반대의 경우도 마찬가지입니다.• 구성 요소 간의 유일한 계약은 데이터 정의입니다.• 구성 요소는 서로의 인스턴스가 필요하지 않으며 이상적으로는 다른 구성 요소 인터페이스에 의해 노출된 방법을 호출할 필요가 없습니다.• 역방향 호환성에 대한 문제는..

Jetpack compose spin wheel 만들기 ... 요약

Compose에서 스핀 휠 만들기• 블리츠위에서 빙고, 솔리테어, 매치3, 풀 등의 클래식 게임을 플레이할 수 있는 애플리케이션을 개발하고 있습니다. 또한 무작위 보너스 금액과 같은 무작위 아이템이 있으므로 사용자에게 일종의 행운의 바퀴를 표시하고 싶었습니다.• 안드로이드 앱은 전체 구성으로 되어 있습니다. 바퀴를 재창조하기 위해 라이브러리를 찾았지만 디자인이나 기술적인 측면에서 나에게 맞는 라이브러리는 없었습니다.• https://github.com/commandiron/SpinWheelCompose에서 약간의 영감을 얻었지만 거의 모든 것을 다시 작업했습니다. 내 물레바퀴는 매개변수로 섹션 목록을 받아들여야 합니다. 각 섹션에는 브러시 배경이 있으며 섹션에는 컴포저블 그림이 있습니다. 이 구성 가능한..

Jetpack compose Media3 사용 ... 요약

Jetpack Compose에서 Jetpack Media3를 사용하여 미디어 플레이어 앱 구축 • Jetpack Media3는 Android에서 미디어 플레이어 앱을 구축하기 위한 강력한 프레임워크를 제공하며, ExoPlayer는 플레이어 인터페이스의 기본 구현으로 사용됩니다. • ExoPlayer는 플레이리스트 지원, 다양한 스트리밍 포맷, DRM 보호, 광고 삽입 등 비디오 및 오디오 재생을 위한 포괄적인 기능을 제공하여 개발 프로세스를 단순화합니다. • 이 글은 Media3 ExoPlayer와 Jetpack Compose를 활용하여 알림 지원이 되는 기본 미디어 플레이어 앱을 만드는 과정을 안내해 드립니다. • Media3는 다른 미디어나 미디어2 라이브러리와 어떻게 다른가요? • Media3는 구..

안드로이드 Hilt에서 Koin으로 마이그레이션.... 요약

안드로이드: Hilt에서 Koin으로 마이그레이션 • 이 글에서는 의존성 주입(DI) 프레임워크를 훨씬 더 간단한 접근법으로 업그레이드하여 PokeAPI 프로젝트를 계속할 것입니다. 우리는 Hilt DI를 Koin으로 대체할 것입니다. • Hilt는 코드 생성 및 주석을 통해 각 구성 요소에 종속성을 주입하여 큰 역할을 하지만, 개발자가 너무 많은 상용판과 코드 생성으로 인해 제어의 일부를 잃음에 따라 종속성을 해결하는 것은 매우 혼란스러운 프로세스가 됩니다. • Koin은 코틀린 DSL(Domain-Specific-Language) 위에 구축되어 있으며 처리하기에 훨씬 간단한 프레임워크로 나타납니다. • 또한 Dagger/Hilt와 달리 Koin은 빌드 타임 대신 실행 타임에서 종속성을 해결합니다. •..

안드로이드 앱 만들기 ViewModel vs Remember function ... 요약

제트팩 구성의 상태 관리: ViewModel vs Remember function • 상태 관리는 동적이고 반응성이 좋은 사용자 인터페이스를 만들기 위해 제트팩 컴포즈에서 중요합니다. 뷰모델에 상태를 저장하는 것과 뷰 내에서 기억 함수를 사용하는 것 사이의 선택은 딜레마를 제시한다. • 전통적으로 MVVM과 MVI 패턴은 뷰모델이 로직과 상태를 처리하는 반면 뷰 계층은 프레젠테이션과 사용자 상호 작용에 중점을 두는 별도의 문제를 처리한다. • 제트팩 컴포즈의 반응형 UI 패러다임과 기억 기능은 스크롤 위치와 같은 일시적인 UI 상태를 관리하기 위한 대안을 제공하면서 이러한 분리에 도전한다. • 스크롤 상태에 대한 기억을 사용하면 코드가 단순화되지만 뷰모델과 뷰 사이의 분리가 흐려져 MVI 아키텍처가 잠재..

안드로이드 jetpack 생체인증 ... 요약

제트팩 컴포즈와 AES 암호화를 사용한 생체 인증 구현 • 안드로이드용 최신 UI 툴킷인 제트팩 컴포즈와 AES 암호화를 사용하여 생체 인증을 구현하는 방법을 설명합니다. • 생체 인증은 지문, 얼굴 특징 또는 홍채 패턴과 같은 고유한 생물학적 특성을 활용하여 신원을 검증하는 방법입니다. • AES 암호화는 민감한 데이터를 보호하는 데 사용되는 강력한 암호화 알고리즘입니다. • 생체 인증을 사용할 때 암호 솔루션이 필수적인 이유는 데이터 보호, 키 관리, 규정 준수 요건, 공격에 대한 방어 때문입니다. • 본 블로그 게시물에서는 지문 인증을 구현하는 데 초점을 맞춥니다. https://blog.canopas.com/how-to-implement-biometric-authentication-with-jet..

반응형